mirror of https://github.com/k3s-io/k3s
Merge pull request #59396 from kwmonroe/bug/opts-before-login
Automatic merge from submit-queue (batch tested with PRs 59441, 58264, 59287, 59396, 59439). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Ensure docker daemon opts are in effect before docker login **What this PR does / why we need it**: Make sure the kubernetes-worker charm is using the configured `docker-opts` daemon options prior to running the `docker-logins` handler. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes # https://github.com/juju-solutions/layer-docker/issues/112 **Special notes for your reviewer**: **Release note**: ```release-note Fixed charm issue where docker login would run prior to daemon options being set. ```pull/6/head
commit
f2362ed6e5
|
@ -453,7 +453,27 @@ def extra_args_changed():
|
||||||
|
|
||||||
@when('config.changed.docker-logins')
|
@when('config.changed.docker-logins')
|
||||||
def docker_logins_changed():
|
def docker_logins_changed():
|
||||||
|
"""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()
|
config = hookenv.config()
|
||||||
|
|
||||||
|
if data_changed('docker-opts', config['docker-opts']):
|
||||||
|
hookenv.log('Found new docker daemon options. Requesting a restart.')
|
||||||
|
# State will be removed by layer-docker after restart
|
||||||
|
set_state('docker.restart')
|
||||||
|
|
||||||
|
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')
|
previous_logins = config.previous('docker-logins')
|
||||||
logins = config['docker-logins']
|
logins = config['docker-logins']
|
||||||
logins = json.loads(logins)
|
logins = json.loads(logins)
|
||||||
|
@ -474,6 +494,7 @@ def docker_logins_changed():
|
||||||
cmd = ['docker', 'login', server, '-u', username, '-p', password]
|
cmd = ['docker', 'login', server, '-u', username, '-p', password]
|
||||||
subprocess.check_call(cmd)
|
subprocess.check_call(cmd)
|
||||||
|
|
||||||
|
remove_state('kubernetes-worker.docker-login')
|
||||||
set_state('kubernetes-worker.restart-needed')
|
set_state('kubernetes-worker.restart-needed')
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue