From fe1422569bf694d806c6ff931c5ee13e5bbe8b4d Mon Sep 17 00:00:00 2001 From: Charles Butler Date: Tue, 25 Apr 2017 16:23:49 -0500 Subject: [PATCH] Closes #44392 Fix the pause action with regard to the new behavior where --delete-local-data=false by default. Historically --force was all that was required, this flag has changed to be more descriptive of the actions it's taking. --- .../layers/kubernetes-worker/actions.yaml | 11 ++++++++++ .../layers/kubernetes-worker/actions/pause | 21 ++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/cluster/juju/layers/kubernetes-worker/actions.yaml b/cluster/juju/layers/kubernetes-worker/actions.yaml index 4520354f2ca..94363e3a247 100644 --- a/cluster/juju/layers/kubernetes-worker/actions.yaml +++ b/cluster/juju/layers/kubernetes-worker/actions.yaml @@ -1,6 +1,17 @@ pause: description: | Cordon the unit, draining all active workloads. + params: + delete-local-data: + type: boolean + description: Force deletion of local storage to enable a drain + default: False + force: + type: boolean + description: | + Continue even if there are pods not managed by a RC, RS, Job, DS or SS + default: False + resume: description: | UnCordon the unit, enabling workload scheduling. diff --git a/cluster/juju/layers/kubernetes-worker/actions/pause b/cluster/juju/layers/kubernetes-worker/actions/pause index b3aba36baf8..7f1c66e8b73 100755 --- a/cluster/juju/layers/kubernetes-worker/actions/pause +++ b/cluster/juju/layers/kubernetes-worker/actions/pause @@ -4,6 +4,25 @@ set -ex export PATH=$PATH:/snap/bin +DELETE_LOCAL_DATA=$(action-get delete-local-data) +FORCE=$(action-get force) + +# placeholder for additional flags to the command +export EXTRA_FLAGS="" + +# Determine if we have extra flags +if [[ "${DELETE_LOCAL_DATA}" == "True" || "${DELETE_LOCAL_DATA}" == "true" ]]; then + EXTRA_FLAGS="${EXTRA_FLAGS} --delete-local-data=true" +fi + +if [[ "${FORCE}" == "True" || "${FORCE}" == "true" ]]; then + EXTRA_FLAGS="${EXTRA_FLAGS} --force" +fi + + +# Cordon and drain the unit kubectl --kubeconfig=/root/cdk/kubeconfig cordon $(hostname) -kubectl --kubeconfig=/root/cdk/kubeconfig drain $(hostname) --force +kubectl --kubeconfig=/root/cdk/kubeconfig drain $(hostname) ${EXTRA_FLAGS} + +# Set status to indicate the unit is paused and under maintenance. status-set 'waiting' 'Kubernetes unit paused'