35 lines
758 B
Plaintext
Executable File
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')
|