diff options
author | Peter Hunt <pehunt@redhat.com> | 2019-03-05 13:20:38 -0500 |
---|---|---|
committer | Peter Hunt <pehunt@redhat.com> | 2019-03-06 09:00:18 -0500 |
commit | b4e184a2ac4925d5c86270bf9d19c4eb836c07f8 (patch) | |
tree | 99e99186e9b0aef8a45ba003bc7fd656d787bd9b | |
parent | 7418ff988b520466d04cacf6d88b50d67bfa8ddf (diff) | |
download | podman-b4e184a2ac4925d5c86270bf9d19c4eb836c07f8.tar.gz podman-b4e184a2ac4925d5c86270bf9d19c4eb836c07f8.tar.bz2 podman-b4e184a2ac4925d5c86270bf9d19c4eb836c07f8.zip |
Fix incorrect pod create failure
Before, a pod create would fail if it was set to share no namespaces, but had an infra container. While inefficient (you add a container for no reason), it shouldn't be a fatal failure. Fix this by only failing if the pod was set to share namespaces, but had no infra container, and writing a warning if vice versa.
Signed-off-by: Peter Hunt <pehunt@redhat.com>
-rw-r--r-- | libpod/runtime_pod_linux.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libpod/runtime_pod_linux.go b/libpod/runtime_pod_linux.go index c378d18e4..9063390bd 100644 --- a/libpod/runtime_pod_linux.go +++ b/libpod/runtime_pod_linux.go @@ -95,9 +95,12 @@ func (r *Runtime) NewPod(ctx context.Context, options ...PodCreateOption) (*Pod, if pod.config.UsePodCgroup { logrus.Debugf("Got pod cgroup as %s", pod.state.CgroupPath) } - if pod.HasInfraContainer() != pod.SharesNamespaces() { + if !pod.HasInfraContainer() && pod.SharesNamespaces() { return nil, errors.Errorf("Pods must have an infra container to share namespaces") } + if pod.HasInfraContainer() && !pod.SharesNamespaces() { + logrus.Warnf("Pod has an infra container, but shares no namespaces") + } if err := r.state.AddPod(pod); err != nil { return nil, errors.Wrapf(err, "error adding pod to state") |