summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorAlban Bedel <albeu@free.fr>2020-03-30 02:53:43 +0200
committerAlban Bedel <albeu@free.fr>2020-04-03 02:47:30 +0200
commit77d19f847a7488ccaccae769cf6b27f880ebe07b (patch)
tree140a586c612398967704180f8edd9ca9712c5355 /libpod
parentccf0e0dd042d8a8d23dd0021ee267e7c9da9ff4a (diff)
downloadpodman-77d19f847a7488ccaccae769cf6b27f880ebe07b.tar.gz
podman-77d19f847a7488ccaccae769cf6b27f880ebe07b.tar.bz2
podman-77d19f847a7488ccaccae769cf6b27f880ebe07b.zip
If possible use the pod name when creating a network
When creating a network we pass down a name which end up in the K8S_POD_NAME argument to cni plugins. Currently this name is always filled with the container name, so for pods it is the name of the infra container, not really what one would expect. This mess up with the dnsname plugin as it doesn't receive the pod name in K8S_POD_NAME. To fix this pass the pod name when the container is part of a pod, otherwise use the container name like before. Signed-off-by: Alban Bedel <albeu@free.fr> --- v2: Only call GetPod() when a pod id is set
Diffstat (limited to 'libpod')
-rw-r--r--libpod/networking_linux.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/libpod/networking_linux.go b/libpod/networking_linux.go
index c3a90f481..83344ebbe 100644
--- a/libpod/networking_linux.go
+++ b/libpod/networking_linux.go
@@ -101,7 +101,19 @@ func (r *Runtime) configureNetNS(ctr *Container, ctrNS ns.NetNS) ([]*cnitypes.Re
requestedMAC = ctr.config.StaticMAC
}
- podNetwork := r.getPodNetwork(ctr.ID(), ctr.Name(), ctrNS.Path(), ctr.config.Networks, ctr.config.PortMappings, requestedIP, requestedMAC)
+ // If we are in a pod use the pod name for the network, otherwise the container name
+ var podName string
+ if ctr.PodID() != "" {
+ pod, err := r.GetPod(ctr.PodID())
+ if err == nil {
+ podName = pod.Name()
+ }
+ }
+ if podName == "" {
+ podName = ctr.Name()
+ }
+
+ podNetwork := r.getPodNetwork(ctr.ID(), podName, ctrNS.Path(), ctr.config.Networks, ctr.config.PortMappings, requestedIP, requestedMAC)
results, err := r.netPlugin.SetUpPod(podNetwork)
if err != nil {