mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 06:54:01 +00:00
split docker-logins logic into 2 handlers
Previous commit relied on non-obvious reactive behavior, with the 'docker.restart' flag being exploited to re-execute docker_logins_changed in a single hook execution. Split this into 2 handlers: - when docker-logins config changes, set one flag to handle the login and another to request a daemon restart (if needed). - run docker login after any potential daemon restarts have occurred.
This commit is contained in:
parent
4af548bb5a
commit
fa440c8dd2
@ -451,16 +451,27 @@ def extra_args_changed():
|
||||
|
||||
|
||||
@when('config.changed.docker-logins')
|
||||
@when_not('docker.restart')
|
||||
def docker_logins_changed():
|
||||
"""Login to a docker registry with configured credentials."""
|
||||
"""Set a flag to handle new docker login options.
|
||||
|
||||
If docker daemon options have also changed, set a flag to ensure the
|
||||
daemon is restarted prior to running docker login.
|
||||
"""
|
||||
config = hookenv.config()
|
||||
|
||||
if data_changed('docker-opts', config['docker-opts']):
|
||||
hookenv.log('Skipping docker login until daemon is restarted.')
|
||||
hookenv.log('Found new docker daemon options. Requesting a restart.')
|
||||
# State will be removed by layer-docker after restart
|
||||
set_state('docker.restart')
|
||||
return
|
||||
|
||||
set_state('kubernetes-worker.docker-login')
|
||||
|
||||
|
||||
@when('kubernetes-worker.docker-login')
|
||||
@when_not('docker.restart')
|
||||
def run_docker_login():
|
||||
"""Login to a docker registry with configured credentials."""
|
||||
config = hookenv.config()
|
||||
|
||||
previous_logins = config.previous('docker-logins')
|
||||
logins = config['docker-logins']
|
||||
@ -482,6 +493,7 @@ def docker_logins_changed():
|
||||
cmd = ['docker', 'login', server, '-u', username, '-p', password]
|
||||
subprocess.check_call(cmd)
|
||||
|
||||
remove_state('kubernetes-worker.docker-login')
|
||||
set_state('kubernetes-worker.restart-needed')
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user