summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUrvashi Mohnani <umohnani@redhat.com>2021-10-14 15:03:18 -0400
committerUrvashi Mohnani <umohnani@redhat.com>2021-10-14 17:03:14 -0400
commit16e7cc8bf17c88f2ec422037ab5a1fc640bfb800 (patch)
tree0d584f2ef1562d3d7f6bff416c14ceda2b773886
parent8d44c548c085c65cae33398b322eabadb6b237f7 (diff)
downloadpodman-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.go3
-rw-r--r--test/e2e/generate_kube_test.go22
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() {