Fix master upgrade cornercases

This commit is contained in:
Konstantinos Tsakalozos 2017-11-27 21:53:22 +02:00
parent e551886c5e
commit 280b833f39

View File

@ -102,12 +102,25 @@ def check_for_upgrade_needed():
add_rbac_roles()
set_state('reconfigure.authentication.setup')
remove_state('authentication.setup')
if should_reinstall_snaps():
set_upgrade_needed()
def should_reinstall_snaps():
''' Return true if we should redeploy snaps. '''
# Snaps should be upgrades if:
# a) channel changed, or
# b) the Charms attached snaps (resources) changed
config = hookenv.config()
previous_channel = config.previous('channel')
new_channel = hookenv.config('channel')
if new_channel != previous_channel:
return True
resources = ['kubectl', 'kube-apiserver', 'kube-controller-manager',
'kube-scheduler', 'cdk-addons']
paths = [hookenv.resource_get(resource) for resource in resources]
if any_file_changed(paths):
set_upgrade_needed()
return any_file_changed(paths)
def add_rbac_roles():
@ -360,6 +373,7 @@ def set_app_version():
@when('cdk-addons.configured', 'kube-api-endpoint.available',
'kube-control.connected')
@when_not('kubernetes-master.upgrade-needed')
def idle_status(kube_api, kube_control):
''' Signal at the end of the run that we are running. '''
if not all_kube_system_pods_running():