From 161540eb318f6829884b7e85465f192610d6346c Mon Sep 17 00:00:00 2001 From: Cory Johns Date: Wed, 22 Aug 2018 12:17:19 -0400 Subject: [PATCH] Fixes and improvements per review --- .../reactive/kubernetes_master.py | 26 ++++++++++--------- .../reactive/kubernetes_worker.py | 23 +++++++++------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py b/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py index 89a58475907..b9ca89ef32a 100644 --- a/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py +++ b/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py @@ -106,6 +106,15 @@ def check_for_upgrade_needed(): '''An upgrade charm event was triggered by Juju, react to that here.''' hookenv.status_set('maintenance', 'Checking resources') + # migrate to new flags + if is_state('kubernetes-master.restarted-for-cloud'): + remove_state('kubernetes-master.restarted-for-cloud') + set_state('kubernetes-master.cloud.ready') + if is_state('kubernetes-master.cloud-request-sent'): + # minor change, just for consistency + remove_state('kubernetes-master.cloud-request-sent') + set_state('kubernetes-master.cloud.request-sent') + migrate_from_pre_snaps() add_rbac_roles() set_state('reconfigure.authentication.setup') @@ -1691,6 +1700,8 @@ def set_cloud_pending(): azure_joined = is_state('endpoint.azure.joined') if (vsphere_joined and not k8s_1_12) or (azure_joined and not k8s_1_11): set_state('kubernetes-master.cloud.blocked') + else: + remove_state('kubernetes-master.cloud.blocked') set_state('kubernetes-master.cloud.pending') @@ -1744,10 +1755,9 @@ def request_integration(): 'endpoint.openstack.joined', 'endpoint.vsphere.joined', 'endpoint.azure.joined') -@when('kubernetes-master.cloud-request-sent') -def clear_requested_integration(): +def clear_cloud_flags(): remove_state('kubernetes-master.cloud.pending') - remove_state('kubernetes-master.cloud-request-sent') + remove_state('kubernetes-master.cloud.request-sent') remove_state('kubernetes-master.cloud.blocked') remove_state('kubernetes-master.cloud.ready') @@ -1758,8 +1768,7 @@ def clear_requested_integration(): 'endpoint.vsphere.ready', 'endpoint.azure.ready') @when_not('kubernetes-master.cloud.blocked', - 'kubernetes-master.cloud.ready', - 'kubernetes-master.restarted-for-cloud') # compat. TODO: remove + 'kubernetes-master.cloud.ready') def cloud_ready(): if is_state('endpoint.gcp.ready'): _write_gcp_snap_config('kube-apiserver') @@ -1778,13 +1787,6 @@ def cloud_ready(): remove_state('kubernetes-master.components.started') # force restart -@when('kubernetes-master.restarted-for-cloud') -@when_not('kubernetes-master.cloud.ready') -def convert_cloud_flag(): - remove_state('kubernetes-master.restarted-for-cloud') - set_state('kubernetes-master.cloud.ready') - - def _snap_common_path(component): return Path('/var/snap/{}/common'.format(component)) diff --git a/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py b/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py index 3bf60106b46..59302a2c660 100644 --- a/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py +++ b/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py @@ -64,6 +64,15 @@ db = unitdata.kv() @hook('upgrade-charm') def upgrade_charm(): + # migrate to new flags + if is_state('kubernetes-worker.restarted-for-cloud'): + remove_state('kubernetes-worker.restarted-for-cloud') + set_state('kubernetes-worker.cloud.ready') + if is_state('kubernetes-worker.cloud-request-sent'): + # minor change, just for consistency + remove_state('kubernetes-worker.cloud-request-sent') + set_state('kubernetes-worker.cloud.request-sent') + # Trigger removal of PPA docker installation if it was previously set. set_state('config.changed.install_from_upstream') hookenv.atexit(remove_state, 'config.changed.install_from_upstream') @@ -1278,6 +1287,8 @@ def set_cloud_pending(): azure_joined = is_state('endpoint.azure.joined') if (vsphere_joined and not k8s_1_12) or (azure_joined and not k8s_1_11): set_state('kubernetes-worker.cloud.blocked') + else: + remove_state('kubernetes-worker.cloud.blocked') set_state('kubernetes-worker.cloud.pending') @@ -1327,7 +1338,7 @@ def request_integration(): 'endpoint.azure.joined') def clear_cloud_flags(): remove_state('kubernetes-worker.cloud.pending') - remove_state('kubernetes-worker.cloud-request-sent') + remove_state('kubernetes-worker.cloud.request-sent') remove_state('kubernetes-worker.cloud.blocked') remove_state('kubernetes-worker.cloud.ready') @@ -1338,8 +1349,7 @@ def clear_cloud_flags(): 'endpoint.vsphere.ready', 'endpoint.azure.ready') @when_not('kubernetes-worker.cloud.blocked', - 'kubernetes-worker.cloud.ready', - 'kubernetes-worker.restarted-for-cloud') # compat. TODO: remove + 'kubernetes-worker.cloud.ready') def cloud_ready(): remove_state('kubernetes-worker.cloud.pending') if is_state('endpoint.gcp.ready'): @@ -1352,13 +1362,6 @@ def cloud_ready(): set_state('kubernetes-worker.restart-needed') # force restart -@when('kubernetes-master.restarted-for-cloud') -@when_not('kubernetes-master.cloud.ready') -def convert_cloud_flag(): - remove_state('kubernetes-worker.restarted-for-cloud') - set_state('kubernetes-worker.cloud.ready') - - def _snap_common_path(component): return Path('/var/snap/{}/common'.format(component))