From d5e690914dc78eca8664442e7677eb5004522bfd Mon Sep 17 00:00:00 2001 From: haircommander Date: Fri, 27 Jul 2018 13:58:50 -0400 Subject: Added option to share kernel namespaces in libpod and podman A pause container is added to the pod if the user opts in. The default pause image and command can be overridden. Pause containers are ignored in ps unless the -a option is present. Pod inspect and pod ps show shared namespaces and pause container. A pause container can't be removed with podman rm, and a pod can be removed if it only has a pause container. Signed-off-by: haircommander Closes: #1187 Approved by: mheon --- libpod/runtime.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libpod/runtime.go') diff --git a/libpod/runtime.go b/libpod/runtime.go index 73f516cd5..7e006b1fc 100644 --- a/libpod/runtime.go +++ b/libpod/runtime.go @@ -56,6 +56,11 @@ const ( // configuration file. If OverrideConfigPath exists, it will be used in // place of the configuration file pointed to by ConfigPath. OverrideConfigPath = "/etc/containers/libpod.conf" + + // DefaultPauseImage to use for pause container + DefaultPauseImage = "k8s.gcr.io/pause:3.1" + // DefaultPauseCommand to be run in a pause container + DefaultPauseCommand = "/pause" ) // A RuntimeOption is a functional option which alters the Runtime created by @@ -152,6 +157,10 @@ type RuntimeConfig struct { // and all containers and pods will be visible. // The default namespace is "". Namespace string `toml:"namespace,omitempty"` + // PauseImage is the image a pod pause container will use to manage namespaces + PauseImage string `toml:"pause_image"` + // PauseCommand is the command run to start up a pod pause container + PauseCommand string `toml:"pause_command"` } var ( @@ -186,6 +195,8 @@ var ( NoPivotRoot: false, CNIConfigDir: "/etc/cni/net.d/", CNIPluginDir: []string{"/usr/libexec/cni", "/usr/lib/cni", "/opt/cni/bin"}, + PauseCommand: DefaultPauseCommand, + PauseImage: DefaultPauseImage, } ) -- cgit v1.2.3-54-g00ecf