summaryrefslogtreecommitdiff
path: root/pkg/varlinkapi/pods.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/varlinkapi/pods.go')
-rw-r--r--pkg/varlinkapi/pods.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/pkg/varlinkapi/pods.go b/pkg/varlinkapi/pods.go
index 6252d815b..657aa0baf 100644
--- a/pkg/varlinkapi/pods.go
+++ b/pkg/varlinkapi/pods.go
@@ -21,6 +21,20 @@ func (i *LibpodAPI) CreatePod(call iopodman.VarlinkCall, create iopodman.PodCrea
if create.Name != "" {
options = append(options, libpod.WithPodName(create.Name))
}
+ if len(create.Share) > 0 && !create.Pause {
+ return call.ReplyErrorOccurred("You cannot share kernel namespaces on the pod level without a pause container")
+ }
+ if len(create.Share) == 0 && create.Pause {
+ return call.ReplyErrorOccurred("You must share kernel namespaces to run a pause container")
+ }
+ if create.Pause {
+ options = append(options, libpod.WithPauseContainer())
+ nsOptions, err := shared.GetNamespaceOptions(create.Share)
+ if err != nil {
+ return err
+ }
+ options = append(options, nsOptions...)
+ }
options = append(options, libpod.WithPodCgroups())
pod, err := i.Runtime.NewPod(getContext(), options...)