summaryrefslogtreecommitdiff
path: root/libpod/runtime.go
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2019-06-13 14:21:13 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2019-06-13 14:21:13 +0200
commit13e1afdb02592ab4b0e4e7fb936c76f5c7dda20a (patch)
treedd21a1e14c8895d01cbf8ce8ac193dc33e2f7917 /libpod/runtime.go
parent6e4ce54d33df0c43392fd247d42106802ca556df (diff)
downloadpodman-13e1afdb02592ab4b0e4e7fb936c76f5c7dda20a.tar.gz
podman-13e1afdb02592ab4b0e4e7fb936c76f5c7dda20a.tar.bz2
podman-13e1afdb02592ab4b0e4e7fb936c76f5c7dda20a.zip
oci: allow to specify what runtimes support JSON
add a new configuration `runtime_supports_json` to list what OCI runtimes support the --log-format=json option. If the runtime is not listed here, libpod will redirect stdout/stderr from the runtime process. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'libpod/runtime.go')
-rw-r--r--libpod/runtime.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go
index 098607b63..24bb5f61c 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -151,6 +151,8 @@ type RuntimeConfig struct {
OCIRuntime string `toml:"runtime"`
// OCIRuntimes are the set of configured OCI runtimes (default is runc)
OCIRuntimes map[string][]string `toml:"runtimes"`
+ // RuntimeSupportsJSON is the list of the OCI runtimes that support --format=json
+ RuntimeSupportsJSON []string `toml:"runtime_supports_json"`
// RuntimePath is the path to OCI runtime binary for launching
// containers.
// The first path pointing to a valid file will be used
@@ -830,12 +832,21 @@ func makeRuntime(ctx context.Context, runtime *Runtime) (err error) {
}
}
+ supportsJSON := false
+ for _, r := range runtime.config.RuntimeSupportsJSON {
+ if r == runtime.config.OCIRuntime {
+ supportsJSON = true
+ break
+ }
+ }
+
// Make an OCI runtime to perform container operations
ociRuntime, err := newOCIRuntime(runtime.ociRuntimePath,
runtime.conmonPath, runtime.config.ConmonEnvVars,
runtime.config.CgroupManager, runtime.config.TmpDir,
runtime.config.MaxLogSize, runtime.config.NoPivotRoot,
- runtime.config.EnablePortReservation)
+ runtime.config.EnablePortReservation,
+ supportsJSON)
if err != nil {
return err
}