in a kubernetes Deployment yaml file is there a simple way to run multiple commands in the postStart hook of a container?
I'm trying to do something like this:
lifecycle: postStart: exec: command: ["/bin/cp", "/webapps/myapp.war", "/apps/"] command: ["/bin/mkdir", "-p", "/conf/myapp"] command: ["touch", "/conf/myapp/ready.txt"]
But it doesn't work. (looks like only the last command is executed)
I know I could embed a script in the container image and simply call it there... But I would like to be able to customize those commands in the yaml file without touching the container image.
thanks
PreStop. This hook is called immediately before a container is terminated due to an API request or management event such as a liveness/startup probe failure, preemption, resource contention and others.
The idea is that poststop tasks can gives users the ability to catch and hande errors internally within an allocation. For some use cases (eg Artifact upload below), the poststop hook is a critical part of the overall allocation.
4 - Kubernetes waits for a grace period At this point, Kubernetes waits for a specified time called the termination grace period. By default, this is 30 seconds. It's important to note that this happens in parallel to the preStop hook and the SIGTERM signal. Kubernetes does not wait for the preStop hook to finish.
The postStart handler runs asynchronously relative to the Container's code, but Kubernetes' management of the container blocks until the postStart handler completes. The Container's status is not set to RUNNING until the postStart handler completes.
Only one command
allowed, but you can use sh -c
like this
lifecycle: postStart: exec: command: - "sh" - "-c" - > if [ -s /var/www/mybb/inc/config.php ]; then rm -rf /var/www/mybb/install; fi; if [ ! -f /var/www/mybb/index.php ]; then cp -rp /originroot/var/www/mybb/. /var/www/mybb/; fi
You also can create a bash or make script to group all those commands.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With