summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hunt <pehunt@redhat.com>2019-03-05 13:20:38 -0500
committerPeter Hunt <pehunt@redhat.com>2019-03-06 09:00:18 -0500
commitb4e184a2ac4925d5c86270bf9d19c4eb836c07f8 (patch)
tree99e99186e9b0aef8a45ba003bc7fd656d787bd9b
parent7418ff988b520466d04cacf6d88b50d67bfa8ddf (diff)
downloadpodman-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.go5
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")