Fix charms leaving services running after unit removal

pull/6/head
George Kraft 2017-07-03 13:29:31 -05:00
parent 74bde7f7ff
commit f0e08818d8
2 changed files with 14 additions and 6 deletions

View File

@ -45,6 +45,7 @@ from charms.kubernetes.flagmanager import FlagManager
from charmhelpers.core import hookenv from charmhelpers.core import hookenv
from charmhelpers.core import host from charmhelpers.core import host
from charmhelpers.core import unitdata from charmhelpers.core import unitdata
from charmhelpers.core.host import service_stop
from charmhelpers.core.templating import render from charmhelpers.core.templating import render
from charmhelpers.fetch import apt_install from charmhelpers.fetch import apt_install
from charmhelpers.contrib.charmsupport import nrpe from charmhelpers.contrib.charmsupport import nrpe
@ -694,6 +695,16 @@ def disable_gpu_mode():
remove_state('kubernetes-master.gpu.enabled') remove_state('kubernetes-master.gpu.enabled')
@hook('stop')
def shutdown():
""" Stop the kubernetes master services
"""
service_stop('snap.kube-apiserver.daemon')
service_stop('snap.kube-controller-manager.daemon')
service_stop('snap.kube-scheduler.daemon')
def arch(): def arch():
'''Return the package architecture as a string. Raise an exception if the '''Return the package architecture as a string. Raise an exception if the
architecture is not supported by kubernetes.''' architecture is not supported by kubernetes.'''

View File

@ -157,15 +157,12 @@ def install_snaps():
def shutdown(): def shutdown():
''' When this unit is destroyed: ''' When this unit is destroyed:
- delete the current node - delete the current node
- stop the kubelet service - stop the worker services
- stop the kube-proxy service
- remove the 'kubernetes-worker.cni-plugins.installed' state
''' '''
if os.path.isfile(kubeconfig_path): if os.path.isfile(kubeconfig_path):
kubectl('delete', 'node', gethostname()) kubectl('delete', 'node', gethostname())
service_stop('kubelet') service_stop('snap.kubelet.daemon')
service_stop('kube-proxy') service_stop('snap.kube-proxy.daemon')
remove_state('kubernetes-worker.cni-plugins.installed')
@when('docker.available') @when('docker.available')