diff options
author | Urvashi Mohnani <umohnani@redhat.com> | 2021-10-14 15:03:18 -0400 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2021-10-19 15:56:35 -0400 |
commit | 9168db8bc0b1158389801c2fa53563a4ced3aea5 (patch) | |
tree | bb1eee05d3c85c79e759e6d2118040e30897e854 | |
parent | b5dd62f31558caeb3c8cb4b83c0563db9f07cf20 (diff) | |
download | podman-9168db8bc0b1158389801c2fa53563a4ced3aea5.tar.gz podman-9168db8bc0b1158389801c2fa53563a4ced3aea5.tar.bz2 podman-9168db8bc0b1158389801c2fa53563a4ced3aea5.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 72d2f8e96..ad70dd2cf 100644 --- a/libpod/kube.go +++ b/libpod/kube.go @@ -578,7 +578,8 @@ func ocicniPortMappingToContainerPort(portMappings []ocicni.PortMapping) ([]v1.C 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 8f3d5027d..7b0ed144d 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() { |