#!/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')