diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2021-06-29 14:18:46 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2021-06-30 13:32:27 -0400 |
commit | 092902b455551d7353163c1e6d322f3605b9a897 (patch) | |
tree | 40b067377bda67d7d4002100e7210547bf4317f5 /pkg/specgen/namespaces.go | |
parent | 61b7beaf8e595bdc1305a12b49e26a25bbc2bc42 (diff) | |
download | podman-092902b455551d7353163c1e6d322f3605b9a897.tar.gz podman-092902b455551d7353163c1e6d322f3605b9a897.tar.bz2 podman-092902b455551d7353163c1e6d322f3605b9a897.zip |
Handle advanced --network options in podman play kube
Since Podman create/run can support this, so should play.
Fixes: https://github.com/containers/podman/issues/10807
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'pkg/specgen/namespaces.go')
-rw-r--r-- | pkg/specgen/namespaces.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pkg/specgen/namespaces.go b/pkg/specgen/namespaces.go index 80852930a..76fa66bc7 100644 --- a/pkg/specgen/namespaces.go +++ b/pkg/specgen/namespaces.go @@ -68,6 +68,11 @@ func (n *Namespace) IsHost() bool { return n.NSMode == Host } +// IsBridge returns a bool if the namespace is a Bridge +func (n *Namespace) IsBridge() bool { + return n.NSMode == Bridge +} + // IsPath indicates via bool if the namespace is based on a path func (n *Namespace) IsPath() bool { return n.NSMode == Path @@ -301,3 +306,20 @@ func ParseNetworkNamespace(ns string, rootlessDefaultCNI bool) (Namespace, []str return toReturn, cniNetworks, nil } + +func ParseNetworkString(network string) (Namespace, []string, map[string][]string, error) { + var networkOptions map[string][]string + parts := strings.SplitN(network, ":", 2) + + ns, cniNets, err := ParseNetworkNamespace(network, containerConfig.Containers.RootlessNetworking == "cni") + if err != nil { + return Namespace{}, nil, nil, err + } + + if len(parts) > 1 { + networkOptions = make(map[string][]string) + networkOptions[parts[0]] = strings.Split(parts[1], ",") + cniNets = nil + } + return ns, cniNets, networkOptions, nil +} |