mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +00:00
Fix handling of kubernetes-worker.restart-needed state
Credit to @tvansteenburgh, thanks!
This commit is contained in:
parent
6e831d6fe9
commit
86415961d5
@ -275,11 +275,27 @@ def send_data(tls):
|
|||||||
tls.request_server_cert(common_name, sans, certificate_name)
|
tls.request_server_cert(common_name, sans, certificate_name)
|
||||||
|
|
||||||
|
|
||||||
|
@when('kube-api-endpoint.available', 'kube-control.dns.available',
|
||||||
|
'cni.available')
|
||||||
|
def watch_for_changes(kube_api, kube_control, cni):
|
||||||
|
''' Watch for configuration changes and signal if we need to restart the
|
||||||
|
worker services '''
|
||||||
|
servers = get_kube_api_servers(kube_api)
|
||||||
|
dns = kube_control.get_dns()
|
||||||
|
cluster_cidr = cni.get_config()['cidr']
|
||||||
|
|
||||||
|
if (data_changed('kube-api-servers', servers) or
|
||||||
|
data_changed('kube-dns', dns) or
|
||||||
|
data_changed('cluster-cidr', cluster_cidr)):
|
||||||
|
|
||||||
|
set_state('kubernetes-worker.restart-needed')
|
||||||
|
|
||||||
|
|
||||||
@when('kubernetes-worker.snaps.installed', 'kube-api-endpoint.available',
|
@when('kubernetes-worker.snaps.installed', 'kube-api-endpoint.available',
|
||||||
'tls_client.ca.saved', 'tls_client.client.certificate.saved',
|
'tls_client.ca.saved', 'tls_client.client.certificate.saved',
|
||||||
'tls_client.client.key.saved', 'tls_client.server.certificate.saved',
|
'tls_client.client.key.saved', 'tls_client.server.certificate.saved',
|
||||||
'tls_client.server.key.saved', 'kube-control.dns.available',
|
'tls_client.server.key.saved', 'kube-control.dns.available',
|
||||||
'cni.available')
|
'cni.available', 'kubernetes-worker.restart-needed')
|
||||||
def start_worker(kube_api, kube_control, cni):
|
def start_worker(kube_api, kube_control, cni):
|
||||||
''' Start kubelet using the provided API and DNS info.'''
|
''' Start kubelet using the provided API and DNS info.'''
|
||||||
servers = get_kube_api_servers(kube_api)
|
servers = get_kube_api_servers(kube_api)
|
||||||
@ -295,20 +311,15 @@ def start_worker(kube_api, kube_control, cni):
|
|||||||
hookenv.log('Waiting for cluster cidr.')
|
hookenv.log('Waiting for cluster cidr.')
|
||||||
return
|
return
|
||||||
|
|
||||||
if (is_state('kubernetes-worker.restart-needed') or
|
# set --allow-privileged flag for kubelet
|
||||||
data_changed('kube-api-servers', servers) or
|
set_privileged()
|
||||||
data_changed('kube-dns', dns) or
|
|
||||||
data_changed('cluster-cidr', cluster_cidr)):
|
|
||||||
|
|
||||||
# set --allow-privileged flag for kubelet
|
create_config(servers[0])
|
||||||
set_privileged()
|
configure_worker_services(servers, dns, cluster_cidr)
|
||||||
|
set_state('kubernetes-worker.config.created')
|
||||||
create_config(servers[0])
|
restart_unit_services()
|
||||||
configure_worker_services(servers, dns, cluster_cidr)
|
update_kubelet_status()
|
||||||
set_state('kubernetes-worker.config.created')
|
remove_state('kubernetes-worker.restart-needed')
|
||||||
restart_unit_services()
|
|
||||||
update_kubelet_status()
|
|
||||||
remove_state('kubernetes-worker.restart-needed')
|
|
||||||
|
|
||||||
|
|
||||||
@when('cni.connected')
|
@when('cni.connected')
|
||||||
@ -624,7 +635,7 @@ def remove_nrpe_config(nagios=None):
|
|||||||
|
|
||||||
|
|
||||||
def set_privileged():
|
def set_privileged():
|
||||||
"""Update the allow-privileged flag for kube-apiserver.
|
"""Update the allow-privileged flag for kubelet.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
privileged = hookenv.config('allow-privileged')
|
privileged = hookenv.config('allow-privileged')
|
||||||
@ -698,6 +709,7 @@ def enable_gpu():
|
|||||||
|
|
||||||
@when('kubernetes-worker.gpu.enabled')
|
@when('kubernetes-worker.gpu.enabled')
|
||||||
@when_not('kubernetes-worker.privileged')
|
@when_not('kubernetes-worker.privileged')
|
||||||
|
@when_not('kubernetes-worker.restart-needed')
|
||||||
def disable_gpu():
|
def disable_gpu():
|
||||||
"""Disable GPU usage on this node.
|
"""Disable GPU usage on this node.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user