diff options
author | Alban Bedel <albeu@free.fr> | 2020-03-30 02:53:43 +0200 |
---|---|---|
committer | Alban Bedel <albeu@free.fr> | 2020-04-03 02:47:30 +0200 |
commit | 77d19f847a7488ccaccae769cf6b27f880ebe07b (patch) | |
tree | 140a586c612398967704180f8edd9ca9712c5355 /libpod/networking_linux.go | |
parent | ccf0e0dd042d8a8d23dd0021ee267e7c9da9ff4a (diff) | |
download | podman-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/networking_linux.go')
-rw-r--r-- | libpod/networking_linux.go | 14 |
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 { |