Merge pull request #12943 from machacekondra/nil_fix

Fix nil pointer dereference for configmap optional
This commit is contained in:
OpenShift Merge Robot 2022-01-21 07:29:25 -05:00 committed by GitHub
commit 3074a98378
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 1 deletions

View file

@ -122,7 +122,7 @@ func VolumeFromConfigMap(configMapVolumeSource *v1.ConfigMapVolumeSource, config
if configMap == nil {
// If the volumeSource was optional, move on even if a matching configmap wasn't found
if *configMapVolumeSource.Optional {
if configMapVolumeSource.Optional != nil && *configMapVolumeSource.Optional {
kv.Source = configMapVolumeSource.Name
kv.Optional = *configMapVolumeSource.Optional
return kv, nil

View file

@ -78,6 +78,25 @@ spec:
- 24h
status: {}
`
var podWithoutConfigMapDefined = `
apiVersion: v1
kind: Pod
metadata:
name: testpod1
spec:
containers:
- name: alpine
image: quay.io/libpod/alpine:latest
volumeMounts:
- name: mycm
mountPath: /mycm
volumes:
- name: mycm
configMap:
name: mycm
`
var sharedNamespacePodYaml = `
apiVersion: v1
kind: Pod
@ -1235,6 +1254,16 @@ var _ = Describe("Podman play kube", func() {
}
})
It("podman play kube with non-existing configmap", func() {
err := writeYaml(podWithoutConfigMapDefined, kubeYaml)
Expect(err).To(BeNil())
kube := podmanTest.Podman([]string{"play", "kube", kubeYaml})
kube.WaitWithDefaultTimeout()
Expect(kube).Should(Exit(125))
Expect(kube.ErrorToString()).To(ContainSubstring("failed to create volume \"mycm\": no such ConfigMap \"mycm\""))
})
It("podman play kube test HostAliases with --no-hosts", func() {
pod := getPod(withHostAliases("192.168.1.2", []string{
"test1.podman.io",