From 8c7b01be4808924da1dcda6444fba50f8d9fa8ec Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Mon, 28 Sep 2015 14:38:25 -0700 Subject: [PATCH] Add post-start hooks Signed-off-by: Alexander Morozov --- runtime-config.md | 15 ++++++++++++++- runtime_config.go | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/runtime-config.md b/runtime-config.md index 68662ac7..8c48dfc7 100644 --- a/runtime-config.md +++ b/runtime-config.md @@ -3,9 +3,10 @@ ## Hooks Lifecycle hooks allow custom events for different points in a container's runtime. -Presently there are `Prestart` and `Poststop`. +Presently there are `Prestart`, `Poststart` and `Poststop`. * [`Prestart`](#pre-start) is a list of hooks to be run before the container process is executed +* [`Poststart`](#post-start) is a list of hooks to be run immediately after the container process is started * [`Poststop`](#post-stop)is a list of hooks to be run after the container process exits Hooks allow one to run code before/after various lifecycle events of the container. @@ -22,6 +23,13 @@ In Linux, for e.g., the network namespace could be configured in this hook. If a hook returns a non-zero exit code, then an error including the exit code and the stderr is returned to the caller and the container is torn down. +### Post-start + +The post-start hooks are called after the user process is started. +For example this hook can notify user that real process is spawned. + +If a hook returns a non-zero exit code, then an error is logged and the remaining hooks are executed. + ### Post-stop The post-stop hooks are called after the container process is stopped. @@ -42,6 +50,11 @@ If a hook returns a non-zero exit code, then an error is logged and the remainin "path": "/usr/bin/setup-network" } ], + "poststart": [ + { + "path": "/usr/bin/notify-start", + }, + ], "poststop": [ { "path": "/usr/sbin/cleanup.sh", diff --git a/runtime_config.go b/runtime_config.go index 1ea6640a..21ed20b0 100644 --- a/runtime_config.go +++ b/runtime_config.go @@ -22,6 +22,8 @@ type Hooks struct { // Prestart is a list of hooks to be run before the container process is executed. // On Linux, they are run after the container namespaces are created. Prestart []Hook `json:"prestart"` + // Poststart is a list of hooks to be run after the container process is started. + Poststart []Hook `json:"poststart"` // Poststop is a list of hooks to be run after the container process exits. Poststop []Hook `json:"poststop"` }