mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 12:07:47 +00:00
Fix master upgrade cornercases
This commit is contained in:
parent
e551886c5e
commit
280b833f39
@ -102,12 +102,25 @@ def check_for_upgrade_needed():
|
|||||||
add_rbac_roles()
|
add_rbac_roles()
|
||||||
set_state('reconfigure.authentication.setup')
|
set_state('reconfigure.authentication.setup')
|
||||||
remove_state('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',
|
resources = ['kubectl', 'kube-apiserver', 'kube-controller-manager',
|
||||||
'kube-scheduler', 'cdk-addons']
|
'kube-scheduler', 'cdk-addons']
|
||||||
paths = [hookenv.resource_get(resource) for resource in resources]
|
paths = [hookenv.resource_get(resource) for resource in resources]
|
||||||
if any_file_changed(paths):
|
return any_file_changed(paths)
|
||||||
set_upgrade_needed()
|
|
||||||
|
|
||||||
|
|
||||||
def add_rbac_roles():
|
def add_rbac_roles():
|
||||||
@ -360,6 +373,7 @@ def set_app_version():
|
|||||||
|
|
||||||
@when('cdk-addons.configured', 'kube-api-endpoint.available',
|
@when('cdk-addons.configured', 'kube-api-endpoint.available',
|
||||||
'kube-control.connected')
|
'kube-control.connected')
|
||||||
|
@when_not('kubernetes-master.upgrade-needed')
|
||||||
def idle_status(kube_api, kube_control):
|
def idle_status(kube_api, kube_control):
|
||||||
''' Signal at the end of the run that we are running. '''
|
''' Signal at the end of the run that we are running. '''
|
||||||
if not all_kube_system_pods_running():
|
if not all_kube_system_pods_running():
|
||||||
|
Loading…
Reference in New Issue
Block a user