Charmed-Kubernetes/kubernetes-worker/actions/pause

35 lines
758 B
Plaintext
Executable File

#!/usr/local/sbin/charm-env python3
import os
import subprocess
from charms.layer.kubernetes_common import (
get_node_name,
kubectl,
)
from charmhelpers.core.hookenv import (
action_fail,
action_get,
status_set,
)
# Make sure the kubectl snap can be found
os.environ['PATH'] += os.pathsep + os.path.join(os.sep, 'snap', 'bin')
drain_args = ['--ignore-daemonsets']
if action_get('delete-local-data'):
drain_args.append('--delete-local-data=true')
if action_get('force'):
drain_args.append('--force')
try:
kubectl('drain', get_node_name(), *drain_args)
except subprocess.CalledProcessError as e:
action_fail('{}. See unit logs for details.'.format(str(e)))
raise
status_set('waiting', 'Kubernetes unit paused')