Merge pull request #48446 from Cynerva/gkk/stop-snaps

Automatic merge from submit-queue (batch tested with PRs 47043, 48448, 47515, 48446)

Fix charms leaving services running after remove-unit

**What this PR does / why we need it**:

This fixes a case where removed charm units can sometimes leave behind running services that interfere with the rest of the cluster.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
Fix charms leaving services running after remove-unit
```
This commit is contained in:
Kubernetes Submit Queue 2017-07-04 09:12:57 -07:00 committed by GitHub
commit 3823270b9e
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
@ -695,6 +696,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

@ -158,15 +158,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')