--bootstrap-series can cause "no matching tools available" error

Bug #1538735 reported by Aaron Bentley
28
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Canonical Juju
Fix Released
High
Cheryl Jennings

Bug Description

When both --bootstrap-series and the "default-series" environment variable are different, juju fails to bootstrap with "no matching tools." When they match, or one is not specified, the bootstrap succeeds.

This was observed with revision-build 3545 and 3513.

Full log:

$ JUJU_HOME=$JUJU_HOME/jes-homes/bootstrap-args-ab /home/abentley/canonical/juju-versions/2.0-alpha2-3545/usr/lib/juju-2.0-alpha2/bin/juju --debug bootstrap -e bootstrap-args-ab --bootstrap-series trusty
2016-01-27 20:33:54 INFO juju.cmd supercommand.go:58 running juju [2.0-alpha2 gc]
2016-01-27 20:33:54 WARNING juju.environs config.go:168 Config attribute "tools-metadata-url" (https://us-east.manta.joyent.com/cpcjoyentsupport/public/juju-dist/parallel-testing/agents) is deprecated.
It is replaced by "agent-metadata-url" attribute.
Your configuration should be updated to set "agent-metadata-url" as follows
agent-metadata-url: https://us-east.manta.joyent.com/cpcjoyentsupport/public/juju-dist/parallel-testing/agents.
2016-01-27 20:33:54 WARNING juju.environs config.go:168 Config attribute "tools-metadata-url" (https://us-east.manta.joyent.com/cpcjoyentsupport/public/juju-dist/parallel-testing/agents) is deprecated.
It is replaced by "agent-metadata-url" attribute.
Your configuration should be updated to set "agent-metadata-url" as follows
agent-metadata-url: https://us-east.manta.joyent.com/cpcjoyentsupport/public/juju-dist/parallel-testing/agents.
2016-01-27 20:33:56 DEBUG juju.environs.configstore disk.go:326 writing cache file
2016-01-27 20:33:56 DEBUG juju.environs imagemetadata.go:111 using image datasource "default cloud images"
2016-01-27 20:33:56 DEBUG juju.environs imagemetadata.go:111 using image datasource "default ubuntu cloud images"
2016-01-27 20:33:58 DEBUG juju.environs.simplestreams simplestreams.go:430 read metadata index at "http://cloud-images.ubuntu.com/releases/streams/v1/index.sjson"
2016-01-27 20:33:58 DEBUG juju.environs.simplestreams simplestreams.go:969 metadata: &{map[com.ubuntu.cloud:server:15.04:amd64:{vivid 15.04 amd64 map[20150807:0xc82044c6c0 20160114.1:0xc82044c600]} com.ubuntu.cloud:server:12.04:amd64:{precise 12.04 amd64 map[20140806:0xc820311380 20160114:0xc8203114a0 20140408:0xc820311560 20140227:0xc820311680 20150127:0xc820311740 20140926:0xc820311a40 20150225.1:0xc8203111a0 20140519:0xc8203112c0 20150709:0xc820311800 20140929:0xc8203118c0 20140608:0xc820311980]} com.ubuntu.cloud:server:14.04:amd64:{trusty 14.04 amd64 map[20140519:0xc820311c80 20150225.2:0xc820311d40 20140608:0xc82044c180 20140926:0xc82044c240 20160114.5:0xc820311e00 20140416:0xc820311f20 20140729:0xc82044c000 20140929:0xc82044c0c0 20150708:0xc82044c300]} com.ubuntu.cloud:server:15.10:amd64:{wily 15.10 amd64 map[20151021:0xc82044c420 20160114:0xc82044c4e0]}] map[crsn:map[euww1:map[endpoint:https://eu-ams-1.api.joyentcloud.com region:eu-ams-1] ussw1:map[region:us-sw-1 endpoint:https://us-sw-1.api.joyentcloud.com] usee3:map[region:us-east-3 endpoint:https://us-east-3.api.joyentcloud.com] usee2:map[region:us-east-2 endpoint:https://us-east-2.api.joyentcloud.com] usee1:map[region:us-east-1 endpoint:https://us-east-1.api.joyentcloud.com] usww1:map[region:us-west-1 endpoint:https://us-west-1.api.joyentcloud.com]]] Mon, 25 Jan 2016 14:14:06 +0000 products:1.0 com.ubuntu.cloud:released:joyent }
2016-01-27 20:33:59 INFO juju.cmd.juju bootstrap.go:297 combined bootstrap constraints:
2016-01-27 20:33:59 INFO juju.network network.go:248 setting prefer-ipv6 to true
2016-01-27 20:34:02 INFO cmd cmd.go:129 Bootstrapping environment "bootstrap-args-ab"
2016-01-27 20:34:02 DEBUG juju.environs.bootstrap bootstrap.go:137 environment "bootstrap-args-ab" supports service/machine networks: false
2016-01-27 20:34:02 DEBUG juju.environs.bootstrap bootstrap.go:139 network management by juju enabled: true
2016-01-27 20:34:02 INFO juju.environs.bootstrap tools.go:89 looking for bootstrap tools: version=2.0-alpha2
2016-01-27 20:34:02 INFO juju.environs.tools tools.go:86 finding tools in stream "revision-build-3545"
2016-01-27 20:34:02 INFO juju.environs.tools tools.go:88 reading tools with major.minor version 2.0
2016-01-27 20:34:02 INFO juju.environs.tools tools.go:96 filtering tools by version: 2.0-alpha2
2016-01-27 20:34:02 INFO juju.environs.tools tools.go:99 filtering tools by series: trusty
2016-01-27 20:34:02 DEBUG juju.environs.tools urls.go:108 trying datasource "keystone catalog"
2016-01-27 20:34:03 DEBUG juju.environs.simplestreams simplestreams.go:430 read metadata index at "https://us-east.manta.joyent.com/cpcjoyentsupport/public/juju-dist/parallel-testing/agents/streams/v1/index2.json"
2016-01-27 20:34:04 DEBUG juju.environs.simplestreams simplestreams.go:969 metadata: &{map[com.ubuntu.juju:14.04:ppc64:{trusty ppc64 map[20160125:0xc820475920]} com.ubuntu.juju:15.04:i386:{vivid i386 map[20160125:0xc82044c660]} com.ubuntu.juju:15.10:ppc64el:{wily ppc64el map[20160125:0xc82044d140]} com.ubuntu.juju:win2012hv:amd64:{win2012hv amd64 map[20160126:0xc82044de60 20160125:0xc82044dda0]} com.ubuntu.juju:14.04:arm64:{trusty arm64 map[20160125:0xc8204753e0]} com.ubuntu.juju:14.10:i386:{utopic i386 map[20160125:0xc820475f80]} com.ubuntu.juju:14.10:ppc64el:{utopic ppc64el map[20160125:0xc82044c1e0]} com.ubuntu.juju:15.04:arm64:{vivid arm64 map[20160125:0xc82044c420]} com.ubuntu.juju:15.10:armhf:{wily armhf map[20160125:0xc82044cde0]} com.ubuntu.juju:16.04:amd64:{xenial amd64 map[20160125:0xc82044d260 20160126:0xc82044d320]} com.ubuntu.juju:16.04:ppc64el:{xenial 1.25.3 ppc64el map[20160125:0xc82044d8c0]} com.ubuntu.juju:win8:amd64:{win8 amd64 map[20160125:0xc820404720 20160126:0xc8204047e0]} com.ubuntu.juju:13.10:armhf:{saucy armhf map[20160125:0xc820474f00]} com.ubuntu.juju:14.04:amd64:{trusty amd64 map[20160125:0xc8204751a0 20160126:0xc820475260]} com.ubuntu.juju:14.04:armhf:{trusty armhf map[20160125:0xc820475500]} com.ubuntu.juju:14.10:amd64:{utopic amd64 map[20160125:0xc820475c20]} com.ubuntu.juju:14.10:arm64:{utopic arm64 map[20160125:0xc820475d40]} com.ubuntu.juju:14.10:ppc64:{utopic ppc64 map[20160125:0xc82044c0c0]} com.ubuntu.juju:15.10:ppc64:{wily ppc64 map[20160125:0xc82044d020]} com.ubuntu.juju:16.04:arm64:{xenial 1.25.3 arm64 map[20160125:0xc82044d440]} com.ubuntu.juju:12.04:i386:{precise i386 map[20160125:0xc820474720]} com.ubuntu.juju:15.04:ppc64:{vivid ppc64 map[20160125:0xc82044c780]} com.ubuntu.juju:centos7:amd64:{centos7 amd64 map[20160125:0xc82044d9e0 20160126:0xc82044daa0]} com.ubuntu.juju:13.04:amd64:{raring amd64 map[20160125:0xc820474ae0]} com.ubuntu.juju:13.10:i386:{saucy i386 map[20160125:0xc820475080]} com.ubuntu.juju:14.04:i386:{trusty i386 map[20160125:0xc820475620 20160126:0xc8204756e0]} com.ubuntu.juju:14.04:powerpc:{trusty powerpc map[20160125:0xc820475800]} com.ubuntu.juju:15.10:amd64:{wily amd64 map[20160125:0xc82044c9c0 20160126:0xc82044cae0]} com.ubuntu.juju:15.10:i386:{wily i386 map[20160125:0xc82044cf00]} com.ubuntu.juju:win2012hvr2:amd64:{win2012hvr2 amd64 map[20160125:0xc82044df80 20160126:0xc820404060]} com.ubuntu.juju:12.04:armhf:{precise armhf map[20160125:0xc8204743c0]} com.ubuntu.juju:14.10:armhf:{utopic armhf map[20160125:0xc820475e60]} com.ubuntu.juju:15.04:amd64:{vivid amd64 map[20160125:0xc82044c300]} com.ubuntu.juju:15.04:armhf:{vivid armhf map[20160125:0xc82044c540]} com.ubuntu.juju:win2012r2:amd64:{win2012r2 amd64 map[20160125:0xc820404180 20160126:0xc820404240]} com.ubuntu.juju:12.04:amd64:{precise amd64 map[20160125:0xc8204741e0 20160126:0xc8204742a0]} com.ubuntu.juju:12.10:i386:{quantal i386 map[20160125:0xc8204749c0]} com.ubuntu.juju:13.04:i386:{raring i386 map[20160125:0xc820474c00]} com.ubuntu.juju:13.10:amd64:{saucy amd64 map[20160125:0xc820474d80]} com.ubuntu.juju:14.04:ppc64el:{trusty ppc64el map[20160125:0xc820475a40 20160126:0xc820475b00]} com.ubuntu.juju:15.10:arm64:{wily arm64 map[20160125:0xc82044cc00 20160126:0xc82044ccc0]} com.ubuntu.juju:16.04:i386:{xenial 1.25.3 i386 map[20160125:0xc82044d680]} com.ubuntu.juju:16.04:ppc64:{xenial 1.25.3 ppc64 map[20160125:0xc82044d7a0]} com.ubuntu.juju:12.10:amd64:{quantal amd64 map[20160125:0xc8204748a0]} com.ubuntu.juju:win81:amd64:{win81 amd64 map[20160125:0xc820404540 20160126:0xc820404600]} com.ubuntu.juju:win7:amd64:{win7 amd64 map[20160125:0xc820404360 20160126:0xc820404420]} com.ubuntu.juju:16.04:armhf:{xenial 1.25.3 armhf map[20160125:0xc82044d560]} com.ubuntu.juju:win2012:amd64:{win2012 amd64 map[20160126:0xc82044dc80 20160125:0xc82044dbc0]} com.ubuntu.juju:15.04:ppc64el:{vivid ppc64el map[20160125:0xc82044c8a0]}] map[] Tue, 26 Jan 2016 23:20:42 +0000 products:1.0 com.ubuntu.juju:revision-build-3545:tools }
2016-01-27 20:34:04 DEBUG juju.environs imagemetadata.go:111 using image datasource "default cloud images"
2016-01-27 20:34:04 DEBUG juju.environs imagemetadata.go:111 using image datasource "default ubuntu cloud images"
2016-01-27 20:34:06 DEBUG juju.environs.simplestreams simplestreams.go:430 read metadata index at "http://cloud-images.ubuntu.com/releases/streams/v1/index.sjson"
2016-01-27 20:34:06 DEBUG juju.environs.simplestreams simplestreams.go:969 metadata: &{map[com.ubuntu.cloud:server:12.04:amd64:{precise 12.04 amd64 map[20140806:0xc820671ec0 20160114:0xc820671f80 20140408:0xc82090a060 20140926:0xc82090a4e0 20150225.1:0xc820671d40 20140519:0xc820671e00 20140227:0xc82090a120 20150127:0xc82090a1e0 20150709:0xc82090a2a0 20140929:0xc82090a360 20140608:0xc82090a420]} com.ubuntu.cloud:server:14.04:amd64:{trusty 14.04 amd64 map[20150225.2:0xc82090a6c0 20140416:0xc82090a840 20140729:0xc82090a900 20140929:0xc82090a9c0 20140608:0xc82090aa80 20140519:0xc82090a600 20140926:0xc82090ab40 20150708:0xc82090ac00 20160114.5:0xc82090a780]} com.ubuntu.cloud:server:15.10:amd64:{wily 15.10 amd64 map[20151021:0xc82090ad20 20160114:0xc82090ade0]} com.ubuntu.cloud:server:15.04:amd64:{vivid 15.04 amd64 map[20160114.1:0xc82090af00 20150807:0xc82090afc0]}] map[crsn:map[usee2:map[region:us-east-2 endpoint:https://us-east-2.api.joyentcloud.com] usee1:map[region:us-east-1 endpoint:https://us-east-1.api.joyentcloud.com] usww1:map[region:us-west-1 endpoint:https://us-west-1.api.joyentcloud.com] euww1:map[region:eu-ams-1 endpoint:https://eu-ams-1.api.joyentcloud.com] ussw1:map[endpoint:https://us-sw-1.api.joyentcloud.com region:us-sw-1] usee3:map[region:us-east-3 endpoint:https://us-east-3.api.joyentcloud.com]]] Mon, 25 Jan 2016 14:14:06 +0000 products:1.0 com.ubuntu.cloud:released:joyent }
2016-01-27 20:34:06 INFO cmd cmd.go:129 Starting new instance for initial state server
2016-01-27 20:34:06 DEBUG juju.cmd.juju common.go:101 Destroying environment.
2016-01-27 20:34:06 INFO cmd cmd.go:129 Bootstrap failed, destroying environment
2016-01-27 20:34:06 INFO juju.provider.common destroy.go:22 destroying environment "bootstrap-args-ab"
2016-01-27 20:34:06 INFO juju.provider.common destroy.go:33 destroying instances
2016-01-27 20:34:08 INFO juju.provider.common destroy.go:53 destroying storage
2016-01-27 20:34:09 ERROR cmd supercommand.go:448 failed to bootstrap environment: no matching tools available

Revision history for this message
Aaron Bentley (abentley) wrote :
Changed in juju-core:
milestone: none → 2.0-alpha2
Revision history for this message
Aaron Bentley (abentley) wrote :

Although both default-series and --bootstrap-series can determine which series is used for the initial controller, they do not mean the same thing. Default-series is also an ongoing default for all instances. I think it is reasonable for them to have different values, but if not, then the failure mode should be better.

Revision history for this message
David Britton (dpb) wrote :

In my testing, if I have a blank default-series for the lxd provider, I could not use --bootstrap-series for 'wily' or 'xenial'.

When I switched to setting 'default-series' in the environments.yaml to xenial or wily, it appears to be working fine.

I'm guessing that the 'default-series' if unspecified in the environments.yaml gets a default value of 'trusty'?

David Britton (dpb)
tags: added: landscape
tags: added: juju-release-support
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 2.0-alpha2 → 2.0-beta1
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 2.0-beta1 → 2.0-beta2
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 2.0-beta2 → 2.0-beta3
summary: - default-series breaks --bootstrap-series
+ --bootstrap-series not honored
Revision history for this message
Cheryl Jennings (cherylj) wrote : Re: --bootstrap-series not honored

The problem is that the bootstrap-series is used to filter tools before starting the bootstrap instance, but then the bootstrap-series is not passed into the provider when calling bootstrap. The provider then uses either the specified default-series, or the default default-series (currently trusty) to choose tools.

The BootstrapParams struct needs to be extended to include the bootstrap series.

summary: - --bootstrap-series not honored
+ --bootstrap-series can cause "no matching tools available" error
tags: added: conjure
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 2.0-beta3 → 2.0-beta4
Changed in juju-core:
assignee: nobody → Cheryl Jennings (cherylj)
status: Triaged → In Progress
Revision history for this message
Cheryl Jennings (cherylj) wrote :
tags: added: 2.0-count
Changed in juju-core:
status: In Progress → Fix Committed
Curtis Hovey (sinzui)
Changed in juju-core:
status: Fix Committed → Fix Released
affects: juju-core → juju
Changed in juju:
milestone: 2.0-beta4 → none
milestone: none → 2.0-beta4
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.