diff --git a/docs/deployment/zero-downtime-deploys.md b/docs/deployment/zero-downtime-deploys.md index c1b24c9d5..69c05730b 100644 --- a/docs/deployment/zero-downtime-deploys.md +++ b/docs/deployment/zero-downtime-deploys.md @@ -6,6 +6,7 @@ checks Show zero-downtime status checks:disable [process-type(s)] Disable zero-downtime deployment for all processes (or comma-separated process-type list) ***WARNING: this will cause downtime during deployments*** checks:enable [process-type(s)] Enable zero-downtime deployment for all processes (or comma-separated process-type list) +checks:report [] [] Displays a checks report for one or more apps checks:run [process-type(s)] Runs zero-downtime checks for all processes (or comma-separated process-type list) checks:skip [process-type(s)] Skip zero-downtime checks for all processes (or comma-separated process-type list) ``` @@ -61,6 +62,46 @@ dokku checks:disable node-js-app worker DOKKU_CHECKS_SKIPPED: web ``` +### Displaying checks reports about an app + +> New as of 0.8.1 + +You can get a report about the app's checks status using the `checks:report` command: + +```shell +dokku checks:report +``` + +``` +=====> search checks information + Checks disabled list: none + Checks skipped list: none +=====> python-sample checks information + Checks disabled list: none + Checks skipped list: none +=====> ruby-sample checks information + Checks disabled list: _all_ + Checks skipped list: none +``` + +You can run the command for a specific app also. + +```shell +dokku checks:report node-js-sample +``` + +``` +=====> node-js-sample checks information + Checks disabled list: none + Checks skipped list: none +``` + +You can pass flags which will output only the value of the specific information you want. For example: + +```shell +dokku checks:report node-js-sample --checks-disabled-list +``` + ## Customizing Checks If your application needs a longer period to boot up - perhaps to load data into memory, or because of slow boot time - you may also use dokku's `checks` functionality to more precisely check whether an application can serve traffic or not. diff --git a/plugins/checks/commands b/plugins/checks/commands index 5f27055ac..0aed38a1b 100755 --- a/plugins/checks/commands +++ b/plugins/checks/commands @@ -1,30 +1,11 @@ #!/usr/bin/env bash [[ " help checks:help " == *" $1 "* ]] || exit "$DOKKU_NOT_IMPLEMENTED_EXIT" +source "$PLUGIN_AVAILABLE_PATH/checks/internal-functions" set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x case "$1" in help | checks:help) - help_content_func () { - declare desc="return checks plugin help content" - cat<, Show zero-downtime status - checks:disable [process-type(s)], Disable zero-downtime deployment for all processes (or comma-separated process-type list) ***WARNING: this will cause downtime during deployments*** - checks:enable [process-type(s)], Enable zero-downtime deployment for all processes (or comma-separated process-type list) - checks:run [process-type(s)], Runs zero-downtime checks for all processes (or comma-separated process-type list) - checks:skip [process-type(s)], Skip zero-downtime checks for all processes (or comma-separated process-type list) -help_content - } - - if [[ $1 = "checks:help" ]] ; then - echo -e 'Usage: dokku checks[:COMMAND]' - echo '' - echo 'Manage zero-downtime settings.' - echo '' - echo 'Additional commands:' - help_content_func | sort | column -c2 -t -s, - else - help_content_func - fi + checks_help_cmd "$@" ;; *) diff --git a/plugins/checks/internal-functions b/plugins/checks/internal-functions new file mode 100755 index 000000000..d0ebad465 --- /dev/null +++ b/plugins/checks/internal-functions @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" + +checks_help_content_func() { + declare desc="return checks plugin help content" + cat<, [DEPRECATED] Alternative for checks:report + checks:disable [process-type(s)], Disable zero-downtime deployment for all processes (or comma-separated process-type list) ***WARNING: this will cause downtime during deployments*** + checks:enable [process-type(s)], Enable zero-downtime deployment for all processes (or comma-separated process-type list) + checks:report [] [], Displays a checks report for one or more apps + checks:run [process-type(s)], Runs zero-downtime checks for all processes (or comma-separated process-type list) + checks:skip [process-type(s)], Skip zero-downtime checks for all processes (or comma-separated process-type list) +help_content +} + +checks_help_cmd() { + if [[ $1 = "checks:help" ]] ; then + echo -e 'Usage: dokku checks[:COMMAND]' + echo '' + echo 'Manage zero-downtime settings.' + echo '' + echo 'Additional commands:' + checks_help_content_func | sort | column -c2 -t -s, + elif [[ $(ps -o command= $PPID) == *"--all"* ]]; then + checks_help_content_func + else + cat<