diff options
author | Urvashi Mohnani <umohnani@redhat.com> | 2021-10-14 15:03:18 -0400 |
---|---|---|
committer | Urvashi Mohnani <umohnani@redhat.com> | 2021-10-14 17:03:14 -0400 |
commit | 16e7cc8bf17c88f2ec422037ab5a1fc640bfb800 (patch) | |
tree | 0d584f2ef1562d3d7f6bff416c14ceda2b773886 | |
parent | 8d44c548c085c65cae33398b322eabadb6b237f7 (diff) | |
download | podman-16e7cc8bf17c88f2ec422037ab5a1fc640bfb800.tar.gz podman-16e7cc8bf17c88f2ec422037ab5a1fc640bfb800.tar.bz2 podman-16e7cc8bf17c88f2ec422037ab5a1fc640bfb800.zip |
Do not add TCP to protocol in generated kube yaml
As the default protocol in k8s is TCP, don't add it
to the generate yaml when using protocol.
Add UDP to the protocol of the generated yaml when udp
is being used.
Add tests for this as well.
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
-rw-r--r-- | libpod/kube.go | 3 | ||||
-rw-r--r-- | test/e2e/generate_kube_test.go | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/libpod/kube.go b/libpod/kube.go index d68140d5e..5a33bc968 100644 --- a/libpod/kube.go +++ b/libpod/kube.go @@ -578,7 +578,8 @@ func ocicniPortMappingToContainerPort(portMappings []types.OCICNIPortMapping) ([ var protocol v1.Protocol switch strings.ToUpper(p.Protocol) { case "TCP": - protocol = v1.ProtocolTCP + // do nothing as it is the default protocol in k8s, there is no need to explicitly + // add it to the generated yaml case "UDP": protocol = v1.ProtocolUDP default: diff --git a/test/e2e/generate_kube_test.go b/test/e2e/generate_kube_test.go index d48e3b2cd..d4d0c2fbd 100644 --- a/test/e2e/generate_kube_test.go +++ b/test/e2e/generate_kube_test.go @@ -451,6 +451,10 @@ var _ = Describe("Podman generate kube", func() { foundOtherPort := 0 for _, ctr := range pod.Spec.Containers { for _, port := range ctr.Ports { + // Since we are using tcp here, the generated kube yaml shouldn't + // have anything for protocol under the ports as tcp is the default + // for k8s + Expect(port.Protocol).To(BeEmpty()) if port.HostPort == 4000 { foundPort4000 = foundPort4000 + 1 } else if port.HostPort == 5000 { @@ -463,6 +467,24 @@ var _ = Describe("Podman generate kube", func() { Expect(foundPort4000).To(Equal(1)) Expect(foundPort5000).To(Equal(1)) Expect(foundOtherPort).To(Equal(0)) + + // Create container with UDP port and check the generated kube yaml + ctrWithUDP := podmanTest.Podman([]string{"create", "--pod", "new:test-pod", "-p", "6666:66/udp", ALPINE, "top"}) + ctrWithUDP.WaitWithDefaultTimeout() + Expect(ctrWithUDP).Should(Exit(0)) + + kube = podmanTest.Podman([]string{"generate", "kube", "test-pod"}) + kube.WaitWithDefaultTimeout() + Expect(kube).Should(Exit(0)) + + pod = new(v1.Pod) + err = yaml.Unmarshal(kube.Out.Contents(), pod) + Expect(err).To(BeNil()) + + containers := pod.Spec.Containers + Expect(len(containers)).To(Equal(1)) + Expect(len(containers[0].Ports)).To(Equal(1)) + Expect(containers[0].Ports[0].Protocol).To(Equal(v1.ProtocolUDP)) }) It("podman generate and reimport kube on pod", func() { |