diff options
author | Christoph Petrausch <chrobbert@gmail.com> | 2022-01-01 14:03:34 +0100 |
---|---|---|
committer | Christoph Petrausch <chrobbert@gmail.com> | 2022-01-06 16:48:20 +0100 |
commit | 4191616cc567d553776001d640e7f2d945a4fae7 (patch) | |
tree | 7ebabd5b81e0dec7accce58d14db8bccf9f2bf54 /test/e2e/play_kube_test.go | |
parent | c0b3df805999551db1da8ec2866457c555e627c7 (diff) | |
download | podman-4191616cc567d553776001d640e7f2d945a4fae7.tar.gz podman-4191616cc567d553776001d640e7f2d945a4fae7.tar.bz2 podman-4191616cc567d553776001d640e7f2d945a4fae7.zip |
Don't rename pod if container has the same name
We enforce the naming scheme "<podname>-<containername>" here [1].
Therefore we must not rename the pod in case of a naming conflict
between pod name and container name. Not renaming the pod increases the
usability for the user and easies scripting based on the name. Otherwise
a user must set some label to reliable find a pod after creation. Or
have to implement the renaming logic in the script.
[1] https://github.com/containers/podman/blob/main/pkg/specgen/generate/kube/kube.go#L140
Fixes #12722
Signed-off-by: Christoph Petrausch <chrobbert@gmail.com>
Diffstat (limited to 'test/e2e/play_kube_test.go')
-rw-r--r-- | test/e2e/play_kube_test.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/e2e/play_kube_test.go b/test/e2e/play_kube_test.go index f79710ee6..1c7eb09a4 100644 --- a/test/e2e/play_kube_test.go +++ b/test/e2e/play_kube_test.go @@ -37,6 +37,31 @@ metadata: spec: hostname: unknown ` + +var podnameEqualsContainerNameYaml = ` +apiVersion: v1 +kind: Pod +metadata: + name: podnameEqualsContainerNameYaml +spec: + containers: + - name: podnameEqualsContainerNameYaml + image: quay.io/libpod/alpine:latest + ports: + - containerPort: 80 +` + +var podWithoutAName = ` +apiVersion: v1 +kind: Pod +spec: + containers: + - name: podDoesntHaveAName + image: quay.io/libpod/alpine:latest + ports: + - containerPort: 80 +` + var checkInfraImagePodYaml = ` apiVersion: v1 kind: Pod @@ -1278,6 +1303,39 @@ var _ = Describe("Podman play kube", func() { Expect(sharednamespaces).To(ContainSubstring("pid")) }) + It("podman play kube should not rename pod if container in pod has same name", func() { + err := writeYaml(podnameEqualsContainerNameYaml, kubeYaml) + Expect(err).To(BeNil()) + + kube := podmanTest.Podman([]string{"play", "kube", kubeYaml}) + kube.WaitWithDefaultTimeout() + Expect(kube).Should(Exit(0)) + + testPodCreated := podmanTest.Podman([]string{"pod", "exists", "podnameEqualsContainerNameYaml"}) + testPodCreated.WaitWithDefaultTimeout() + Expect(testPodCreated).Should(Exit(0)) + + inspect := podmanTest.Podman([]string{"inspect", "podnameEqualsContainerNameYaml"}) + inspect.WaitWithDefaultTimeout() + podInspect := inspect.InspectPodArrToJSON() + Expect(podInspect).Should(HaveLen(1)) + var containerNames []string + for _, container := range podInspect[0].Containers { + containerNames = append(containerNames, container.Name) + } + Expect(containerNames).To(ContainElement("podnameEqualsContainerNameYaml-podnameEqualsContainerNameYaml")) + }) + + It("podman play kube should error if pod dont have a name", func() { + err := writeYaml(podWithoutAName, kubeYaml) + Expect(err).To(BeNil()) + + kube := podmanTest.Podman([]string{"play", "kube", kubeYaml}) + kube.WaitWithDefaultTimeout() + Expect(kube).Should(Exit(125)) + + }) + It("podman play kube support container liveness probe", func() { err := writeYaml(livenessProbePodYaml, kubeYaml) Expect(err).To(BeNil()) |