summaryrefslogtreecommitdiff
path: root/libpod/options.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-09-29 15:34:37 +0000
committerGitHub <noreply@github.com>2020-09-29 15:34:37 +0000
commit63f0bb93f8b51945e37ad04e977d57942f4dd148 (patch)
tree621c068638bb457f3695407b77bfb5ce7de4f0e5 /libpod/options.go
parent53aa9764c48783814710919f1b78185cd13db35c (diff)
parentb6176d8987a0049a253fd7a70b2cd8e17bd50b53 (diff)
downloadpodman-63f0bb93f8b51945e37ad04e977d57942f4dd148.tar.gz
podman-63f0bb93f8b51945e37ad04e977d57942f4dd148.tar.bz2
podman-63f0bb93f8b51945e37ad04e977d57942f4dd148.zip
Merge pull request #7783 from ashley-cui/slirp
Add support for slirp network for pods
Diffstat (limited to 'libpod/options.go')
-rw-r--r--libpod/options.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/libpod/options.go b/libpod/options.go
index f7b3419e5..f7190d0e3 100644
--- a/libpod/options.go
+++ b/libpod/options.go
@@ -2203,3 +2203,23 @@ func WithPodInfraExitCommand(exitCmd []string) PodCreateOption {
return nil
}
}
+
+// WithPodSlirp4netns tells the pod to use slirp4netns.
+func WithPodSlirp4netns(networkOptions map[string][]string) 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 networking as no infra container is being created")
+ }
+ if pod.config.InfraContainer.HostNetwork {
+ return errors.Wrapf(define.ErrInvalidArg, "cannot set both HostNetwork and Slirp4netns")
+ }
+ pod.config.InfraContainer.Slirp4netns = true
+ pod.config.InfraContainer.NetworkOptions = networkOptions
+
+ return nil
+ }
+}