Bootstrap fails with "credentials not found" for "local" cloud
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
Medium
|
Simon Richardson | ||
2.5 |
Fix Released
|
Medium
|
Simon Richardson | ||
2.6 |
Fix Committed
|
Medium
|
Simon Richardson |
Bug Description
Since upgrading to juju 2.5 I can no longer bootstrap against local provider.
This is my clouds.yaml file that I have since juju 2.1:
ubuntu@
clouds:
local:
type: lxd
config:
apt-
automatic
image-stream: daily
On juju 2.3.7 (one which comes with vanilla xenial install, but latest 2.4 also works fine), the bootstrap of 'local' cloud works fine: https:/
However, after upgrading to juju2.5, I can no longer bootstrap that cloud:
ubuntu@
19:29:57 INFO juju.cmd supercommand.go:57 running juju [2.5.0 gc go1.10.4]
19:29:57 DEBUG juju.cmd supercommand.go:58 args: []string{"juju", "bootstrap", "local", "--show-log", "--debug"}
19:29:57 INFO cmd cloudcredential
ERROR credentials for cloud "local" not found
19:29:57 DEBUG cmd supercommand.go:496 error stack:
/build/
/build/
/build/
/build/
ubuntu@
I tried changing the cloud name from 'local' to 'lxd' - this time boostrap starts, container is created, but is destroyed at the end: https:/
Changing the cloud name to something else (tried 'mariotest') yelds the same error message:
19:46:09 INFO cmd cloudcredential
ERROR credentials for cloud "mariotest" not found
tags: | added: bootstrap lxd |
Changed in juju: | |
status: | New → Triaged |
importance: | Undecided → Medium |
milestone: | none → 2.5.2 |
Changed in juju: | |
milestone: | 2.5.2 → 2.5.3 |
Changed in juju: | |
milestone: | 2.5.3 → 2.5.4 |
Changed in juju: | |
milestone: | 2.5.4 → 2.5.5 |
Changed in juju: | |
milestone: | 2.5.6 → 2.5.8 |
Changed in juju: | |
milestone: | 2.5.8 → 2.5.9 |
Changed in juju: | |
status: | Fix Committed → Fix Released |
When I change the cloud name to 'localhost' I can actually change the configuration via the yaml file, and everything works as expected:
ubuntu@ z-rotomvm05: ~$ cat .local/ share/juju/ clouds. yaml http-proxy: http:// 10.230. 56.3:3142 ally-retry- hooks: false
clouds:
localhost:
type: lxd
config:
apt-
automatic
image-stream: daily
ubuntu@ z-rotomvm05: ~$ juju show-cloud localhost 10.230. 56.3:3142 -retry- hooks: false z-rotomvm05: ~$ juju model-config | grep -E 'apt-http- proxy|retry' 10.230. 56.3:3142 retry-hooks controller false z-rotomvm05: ~$
defined: local
type: lxd
description: LXD Container Hypervisor
config:
apt-http-proxy: http://
automatically
image-stream: daily
ubuntu@
apt-http-proxy controller http://
automatically-
ubuntu@
So, it seems that the only way to use local lxd is to have cloud named 'localhost'. One can then deploy as much controllers as needed against that cloud.
The only issue I see here is that one can't have different localhost configurations under separate names (for instance, local-one cloud with one set of proxies, local-two cloud with another set of proxies - this was possible prior 2.5.0).
This should be better explained in the documentation. configured, it is a local lxd that it should connect to?
Or, maybe, juju should assume that for lxd type of cloud if no credentials are supplied/