diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-02-02 14:57:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-02 14:57:37 -0500 |
commit | aab8a934f5bd9bc58959c49f334d3ba57a0f5135 (patch) | |
tree | 0870e9b21e64d4347ea8024ccc8dba0ff3a263e0 /libpod/options.go | |
parent | 628b0d79b523953cc6aa9b48bd91d04d0843353b (diff) | |
parent | 931ea939ac85bc0e64d12dc34ac920e9e91c4277 (diff) | |
download | podman-aab8a934f5bd9bc58959c49f334d3ba57a0f5135.tar.gz podman-aab8a934f5bd9bc58959c49f334d3ba57a0f5135.tar.bz2 podman-aab8a934f5bd9bc58959c49f334d3ba57a0f5135.zip |
Merge pull request #9185 from mheon/pod_no_network
Allow pods to use --net=none
Diffstat (limited to 'libpod/options.go')
-rw-r--r-- | libpod/options.go | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/libpod/options.go b/libpod/options.go index c7bac7e1f..20f62ee37 100644 --- a/libpod/options.go +++ b/libpod/options.go @@ -2190,13 +2190,37 @@ func WithPodNetworks(networks []string) PodCreateOption { } } +// WithPodNoNetwork tells the pod to disable external networking. +func WithPodNoNetwork() PodCreateOption { + return func(pod *Pod) error { + if pod.valid { + return define.ErrPodFinalized + } + + if !pod.config.InfraContainer.HasInfraContainer { + return errors.Wrapf(define.ErrInvalidArg, "cannot disable pod networking as no infra container is being created") + } + + if len(pod.config.InfraContainer.PortBindings) > 0 || + pod.config.InfraContainer.StaticIP != nil || + pod.config.InfraContainer.StaticMAC != nil || + len(pod.config.InfraContainer.Networks) > 0 || + pod.config.InfraContainer.HostNetwork { + return errors.Wrapf(define.ErrInvalidArg, "cannot disable pod network if network-related configuration is specified") + } + + pod.config.InfraContainer.NoNetwork = true + + return nil + } +} + // WithPodHostNetwork tells the pod to use the host's network namespace. func WithPodHostNetwork() PodCreateOption { return func(pod *Pod) error { if pod.valid { return define.ErrPodFinalized } - if !pod.config.InfraContainer.HasInfraContainer { return errors.Wrapf(define.ErrInvalidArg, "cannot configure pod host networking as no infra container is being created") } @@ -2204,7 +2228,8 @@ func WithPodHostNetwork() PodCreateOption { if len(pod.config.InfraContainer.PortBindings) > 0 || pod.config.InfraContainer.StaticIP != nil || pod.config.InfraContainer.StaticMAC != nil || - len(pod.config.InfraContainer.Networks) > 0 { + len(pod.config.InfraContainer.Networks) > 0 || + pod.config.InfraContainer.NoNetwork { return errors.Wrapf(define.ErrInvalidArg, "cannot set host network if network-related configuration is specified") } |