Zip archived tools needed for bootstrap on windows

Bug #1463420 reported by Bogdan Teleaga
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-core
Fix Released
Low
Bogdan Teleaga

Bug Description

Windows needs to migrate tools to .zip archives

This problem rises because windows has no native capabilities for unarchiving
anything besides zip files. Since we want to support clouds which do not
provide cloudbase-init(which bundles python and is what we use right now to
untar tools), we need native support for this:

What has been done so far:

- https://github.com/juju/juju/compare/master...bogdanteleaga:zipwindows

This takes care of generating the proper metadata as well as providing the
proper path for tools. It has been tested on windows, where the tools get
unzipped properly at boot time.

One of the problems that I'm still aware of is upgrades. At the moment, to the
best of my knowledge, the state machine keeps a record of the tools, while the
upgraded machines can download the tools and they use
go(https://github.com/juju/juju/blob/master/agent/tools/toolsdir.go#L93) to
untar them. So the two alternatives would be to either teach the client to
unzip and provide both .tar.gz's and .zip's for windows for the proper versions
or to always send them as .tar.gz's during upgrades and use .zip's only for
bootstrapping. Note that none of these 2 solutions are not implemented above.

Changed in juju-core:
assignee: nobody → Bogdan Teleaga (bteleaga)
Martin Packman (gz)
tags: added: simplestreams tools windows
summary: - Zip archived tools needed for bootstrap on winows
+ Zip archived tools needed for bootstrap on windows
Changed in juju-core:
importance: Undecided → High
milestone: none → 1.25.0
status: New → Triaged
Revision history for this message
Bogdan Teleaga (bteleaga) wrote :

So the current implementation of this is here: http://reviews.vapour.ws/r/2050/.

This presents some problems however: We *have* to upgrade to a version that can find zip tools before actually using them. Now we could do this by putting support in 1.25 and releasing zip for 1.26, but anything below 1.25 trying to upgrade using --version to anything greater than 1.25 would fail without any real way of preventing this except not allowing upgrades after 1.25 before going in 1.25.

Now the problem that this was trying to solve was that we cannot untar files on bootstrap on windows natively right now.

Another way to do this would be to build another tool with juju, let's call it juju-unarchive-tools, or something. We could package this in simplestreams and download it on both platforms and use that to unarchive the tools on bootstrap.

Any comments/ideas are welcome.

Revision history for this message
Bogdan Teleaga (bteleaga) wrote :

Using the juju-unarchive-tools idea does mean completely ditching .zip for windows and continuing to use tgz for both platforms, thus not affecting upgrades.

Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 1.25.0 → none
Curtis Hovey (sinzui)
Changed in juju-core:
importance: High → Low
Revision history for this message
Bogdan Teleaga (bteleaga) wrote :

This was fixed by embedding untar support in the userdata

Changed in juju-core:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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