mirror of
https://github.com/containers/podman.git
synced 2025-05-21 00:56:36 +08:00
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
This commit is contained in:
@ -101,7 +101,19 @@ func (r *Runtime) configureNetNS(ctr *Container, ctrNS ns.NetNS) ([]*cnitypes.Re
|
|||||||
requestedMAC = ctr.config.StaticMAC
|
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)
|
results, err := r.netPlugin.SetUpPod(podNetwork)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user