diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-06-30 17:13:28 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-30 17:13:28 -0400 |
commit | fd1715568b7c14451dcf2581c385c8d3e307d30e (patch) | |
tree | 40b067377bda67d7d4002100e7210547bf4317f5 /pkg/domain/infra/abi/play.go | |
parent | 61b7beaf8e595bdc1305a12b49e26a25bbc2bc42 (diff) | |
parent | 092902b455551d7353163c1e6d322f3605b9a897 (diff) | |
download | podman-fd1715568b7c14451dcf2581c385c8d3e307d30e.tar.gz podman-fd1715568b7c14451dcf2581c385c8d3e307d30e.tar.bz2 podman-fd1715568b7c14451dcf2581c385c8d3e307d30e.zip |
Merge pull request #10816 from rhatdan/network
Handle advanced --network options in podman play kube
Diffstat (limited to 'pkg/domain/infra/abi/play.go')
-rw-r--r-- | pkg/domain/infra/abi/play.go | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/pkg/domain/infra/abi/play.go b/pkg/domain/infra/abi/play.go index 0ac9b5d8d..4782f0d01 100644 --- a/pkg/domain/infra/abi/play.go +++ b/pkg/domain/infra/abi/play.go @@ -182,20 +182,22 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY return nil, err } if options.Network != "" { - switch strings.ToLower(options.Network) { - case "bridge", "host": + ns, cniNets, netOpts, err := specgen.ParseNetworkString(options.Network) + if err != nil { + return nil, err + } + + if (ns.IsBridge() && len(cniNets) == 0) || ns.IsHost() { return nil, errors.Errorf("invalid value passed to --network: bridge or host networking must be configured in YAML") - case "": - return nil, errors.Errorf("invalid value passed to --network: must provide a comma-separated list of CNI networks") - default: - // We'll assume this is a comma-separated list of CNI - // networks. - networks := strings.Split(options.Network, ",") - logrus.Debugf("Pod joining CNI networks: %v", networks) - p.NetNS.NSMode = specgen.Bridge - p.CNINetworks = append(p.CNINetworks, networks...) + } + logrus.Debugf("Pod %q joining CNI networks: %v", podName, cniNets) + p.NetNS.NSMode = specgen.Bridge + p.CNINetworks = append(p.CNINetworks, cniNets...) + if len(netOpts) > 0 { + p.NetworkOptions = netOpts } } + if len(options.StaticIPs) > *ipIndex { p.StaticIP = &options.StaticIPs[*ipIndex] } else if len(options.StaticIPs) > 0 { |