maas datasource needs support for vendor-data
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cloud-init |
Fix Released
|
Medium
|
Scott Moser | ||
cloud-init (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Xenial |
Fix Released
|
Medium
|
Unassigned |
Bug Description
==== Begin SRU Template ====
[Impact]
This is a new feature adding 'vendor data' support to MAAS.
MAAS in 2.X will make use of this feature in cloud-init.
[Test Case]
There are unit tests to test this, actual integration test is not easily
done outside of MAAS.
[Regression Potential]
Very low chance of regression. Cloud-init will try once to retrive
vendor-data and if it is present use it. If not, it will go on.
The regression possibility would then be in cases when interacting
with old maas if the request failed causing cloud-init to fail.
In testing of yakkety, this has not been seen to be a problem.
==== End SRU Template ====
maas datasource does not support vendor-data.
We would like to take advantage of vendordata in maas, and thus cloud-init needs it.
Changed in cloud-init: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in cloud-init: | |
status: | Confirmed → Fix Committed |
Changed in cloud-init (Ubuntu): | |
status: | New → Fix Released |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu Xenial): | |
importance: | Undecided → Medium |
status: | New → In Progress |
description: | updated |
This is fixed in d9537aaa37f1e17 db334c7cf8888ea 3c4dcf1436
cloud-init will now support MAAS having a 'vendor-data' key under meta-data/.
If it is present and non-empty, then it must be yaml loadable string (recognize that json is valid yaml, so sending json is valid).
The object represented by the yaml should be a dictionary with a 'cloud-init' key.
Example valid data to affect the 'packages' setting, would be:
{ config\ npackages= ['pastebinit' ]\n", key-is- ignored" : "something here"
"cloud-init": "#cloud-
"this-
}
Note that the 'cloud-init' is a *string*. It is not a dictionary.
It can also be a list, in which case each of the pieces will be consumed as a cloud-init part (much as it would read multipart-mime input).