feat: allow overriding the scheduler globally

Being able to override globally is useful for cases where a user will _always_ want their applications to be globally distributed
This commit is contained in:
Jose Diaz-Gonzalez
2018-09-30 21:36:53 -04:00
parent fabb18c55c
commit ed190527ce
12 changed files with 31 additions and 20 deletions

View File

@@ -9,7 +9,7 @@ dokku_run_cmd() {
verify_app_name "$APP"
shift 2
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-run "$DOKKU_SCHEDULER" "$APP" "$@"
}

View File

@@ -36,7 +36,7 @@ apps_destroy() {
echo "Destroying $APP (including all add-ons)"
plugn trigger pre-delete "$APP" "$IMAGE_TAG"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
local REMOVE_CONTAINERS="true"
plugn trigger scheduler-stop "$DOKKU_SCHEDULER" "$APP" "$REMOVE_CONTAINERS"
plugn trigger post-delete "$APP" "$IMAGE_TAG"
@@ -63,4 +63,4 @@ apps_maybe_create() {
suppress_output apps_create "$APP"
fi
fi
}
}

View File

@@ -221,6 +221,22 @@ get_app_image_name() {
echo "$IMAGE"
}
get_app_scheduler() {
declare desc="fetch the scheduler for a given application"
declare APP="$1"
local DOKKU_SCHEDULER
DOKKU_APP_SCHEDULER="$(config_get "$APP" DOKKU_SCHEDULER || true)"
DOKKU_GLOBAL_SCHEDULER="$(config_get --global DOKKU_SCHEDULER || true)"
DOKKU_SCHEDULER=${DOKKU_APP_SCHEDULER:="$DOKKU_GLOBAL_SCHEDULER"}
if [[ -z "$DOKKU_SCHEDULER" ]]; then
DOKKU_SCHEDULER="docker-local"
fi
echo "$DOKKU_SCHEDULER"
}
get_running_image_tag() {
declare desc="retrieve current image tag for a given app. returns empty string if no deployed containers are found"
local APP="$1"
@@ -559,7 +575,7 @@ dokku_deploy_cmd() {
declare APP="$1" IMAGE_TAG="$2"
source "$PLUGIN_AVAILABLE_PATH/config/functions"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-deploy "$DOKKU_SCHEDULER" "$APP" "$IMAGE_TAG"
}
@@ -633,8 +649,7 @@ docker_cleanup() {
fi
dokku_log_info1 "Cleaning up..."
local DOKKU_SCHEDULER="docker-local"
[[ -n "$APP" ]] && DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-docker-cleanup "$DOKKU_SCHEDULER" "$APP" "$FORCE_CLEANUP"
# delete all non-running containers

View File

@@ -26,7 +26,7 @@ fn-logs-failed-single() {
local DOKKU_SCHEDULER
dokku_log_info2_quiet "${APP} failed deploy logs"
DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-logs-failed "$DOKKU_SCHEDULER" "$APP"
}

View File

@@ -119,7 +119,7 @@ ps_stop() {
! (is_deployed "$APP") && dokku_log_warn "App $APP has not been deployed" && exit 0
dokku_log_quiet "Stopping $APP ..."
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-stop "$DOKKU_SCHEDULER" "$APP"
plugn trigger post-stop "$APP"
}
@@ -208,4 +208,4 @@ fn-ps-is-app-running() {
declare APP="$1"
APP_STATUS=$(fn-ps-app-status "$APP")
echo "$APP_STATUS" | cut -d ' ' -f 2
}
}

View File

@@ -10,11 +10,7 @@ ps_restore_cmd() {
local APP="$2"
local DOKKU_SCHEDULER
DOKKU_SCHEDULER=$(config_get --global DOKKU_SCHEDULER || echo "docker-local")
if [[ -n "$APP" ]]; then
DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
fi
DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger pre-restore "$DOKKU_SCHEDULER"
if [[ -n "$APP" ]]; then

View File

@@ -43,7 +43,7 @@ scheduler-docker-local-check-deploy() {
local trigger="scheduler-docker-local-check-deploy"
local APP="$1"; local DOKKU_APP_CONTAINER_ID="$2"; local DOKKU_APP_CONTAINER_TYPE="$3"; local DOKKU_APP_LISTEN_PORT="$4"; local DOKKU_APP_LISTEN_IP="$5"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then
return
fi

View File

@@ -9,7 +9,7 @@ scheduler-docker-local-core-post-deploy() {
declare APP="$1";
local APP_ROOT="$DOKKU_ROOT/$APP"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then
return
fi

View File

@@ -8,7 +8,7 @@ scheduler-docker-local-post-delete() {
declare trigger="scheduler-docker-local post-delete"
declare APP="$1"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then
return
fi

View File

@@ -11,7 +11,7 @@ scheduler-docker-local-pre-deploy() {
local IMAGE DISABLE_CHOWN DOCKER_ARGS DOKKU_APP_TYPE DOKKU_APP_USER APP_PATHS CONTAINER_PATHS
declare -a ARG_ARRAY
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then
return
fi

View File

@@ -10,7 +10,7 @@ tags_create_cmd() {
local APP="$2"; local IMAGE_TAG="$3"; local IMAGE_REPO=$(get_app_image_repo "$APP")
verify_app_name "$APP"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-tags-create "$DOKKU_SCHEDULER" "$APP" "$IMAGE_REPO:latest" "$IMAGE_REPO:$IMAGE_TAG"
dokku_log_info2_quiet "Added $IMAGE_TAG tag to $IMAGE_REPO"

View File

@@ -16,7 +16,7 @@ tags_destroy_cmd() {
;;
*)
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
plugn trigger scheduler-tags-destroy "$DOKKU_SCHEDULER" "$APP" "$IMAGE_REPO" "$IMAGE_TAG"
;;
esac