diff options
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/kube.go | 11 | ||||
-rw-r--r-- | libpod/network/netavark/run.go | 8 |
2 files changed, 18 insertions, 1 deletions
diff --git a/libpod/kube.go b/libpod/kube.go index 850f2493c..351c49c9a 100644 --- a/libpod/kube.go +++ b/libpod/kube.go @@ -427,7 +427,9 @@ func simplePodWithV1Containers(ctx context.Context, ctrs []*Container) (*v1.Pod, hostNetwork := true podDNS := v1.PodDNSConfig{} kubeAnnotations := make(map[string]string) + ctrNames := make([]string, 0, len(ctrs)) for _, ctr := range ctrs { + ctrNames = append(ctrNames, strings.ReplaceAll(ctr.Name(), "_", "")) // Convert auto-update labels into kube annotations for k, v := range getAutoUpdateAnnotations(removeUnderscores(ctr.Name()), ctr.Labels()) { kubeAnnotations[k] = v @@ -484,8 +486,15 @@ func simplePodWithV1Containers(ctx context.Context, ctrs []*Container) (*v1.Pod, } } // end if ctrDNS } + podName := strings.ReplaceAll(ctrs[0].Name(), "_", "") + // Check if the pod name and container name will end up conflicting + // Append _pod if so + if util.StringInSlice(podName, ctrNames) { + podName = podName + "_pod" + } + return newPodObject( - strings.ReplaceAll(ctrs[0].Name(), "_", ""), + podName, kubeAnnotations, kubeInitCtrs, kubeCtrs, diff --git a/libpod/network/netavark/run.go b/libpod/network/netavark/run.go index 54917a981..0ac20daee 100644 --- a/libpod/network/netavark/run.go +++ b/libpod/network/netavark/run.go @@ -55,7 +55,15 @@ func (n *netavarkNetwork) Setup(namespacePath string, options types.SetupOptions result := map[string]types.StatusBlock{} err = n.execNetavark([]string{"setup", namespacePath}, netavarkOpts, &result) + if err != nil { + // lets dealloc ips to prevent leaking + if err := n.deallocIPs(&options.NetworkOptions); err != nil { + logrus.Error(err) + } + return nil, err + } + // make sure that the result makes sense if len(result) != len(options.Networks) { logrus.Errorf("unexpected netavark result: %v", result) return nil, fmt.Errorf("unexpected netavark result length, want (%d), got (%d) networks", len(options.Networks), len(result)) |