SRU templated added and ready for upload/sponsorship. Scott, can you ack the upload? Ben, can you sponsor this?
Thanks. ** Description changed: + [Impact] + + * Cloud-init does not support the datasource presented to LX-Brand + zones in SmartOS. Without this support cloud-init does not work + on the Joyent cloud platform's container service. + + * The metadata is provided in the same format as already supported + for KVM-based instances for the SmartOS datasource (with + communication over a serial port). For LX-Brand zones the + metadata is accessed via a socket file. + + [Test Case] + + * Install cloud-init on an lx-brand zone image and + run 'cloud-init init'. No metadata will be found without + this patch. + + * With the patched cloud-init, run 'cloud-init init' on the + new lx-brand zones images. The metadata should be discovered + and the instance should be recognized as being provisioned. + Perform the same testing on existing KVM-based SmartOS instances + to ensure there is no regression. + + [Regression Potential] + + * [Trusty only] This SRU backports support for the V2 metadata format + that has been present since the Vivid release. This is well tested + code and has no user-facing impact. This was done because the + V2 datasource allows for serial or socket communication. The existing + Joyent datasource uses the serial port provided in KVM instances, + however LX-brand zones have a socket instead @ + /native/.zonecontrol/metadata.sock. Additionally the V2 datasource + provides checksums and response length fields that allow for + validation of results. Additional testing was performed on Trusty + SmartOS and KVM instances to validate these changes. + + * To keep code common for KVM (serial) and LX-Brand (socket) + communication the code had to switch to read byte-by-byte from + the metadata source file object to avoid reading past the end of + input on the socket which would block indefinitely. This is a change + from using readline and will be slower but not significantly so. + + * This builds on the existing SmartOS datasource to enable LX-Brand. + There is risk that this will break the datasouce on existing KVM + instances. To mitigate this risk testing has been performed on + both environments with Trusty, Vivid (out of support today), + Wily, and Xenial. + + [Other Info] + + * This is python 2/3 byte/string safe on Vivid, Wily, and Trusty + where cloud-init supports python 3. + + ==== Original Description ==== + The Joyent Metadata Protocol Specification (Version 2)[1] allows for serial or socket communication. The existing Joyent datasource uses the serial port provided in KVM instances, however LX-brand zones have a socket instead @ /native/.zonecontrol/metadata.sock. Detecting we are in a Joyent LX-brand zone is possible by looking at '/bin/uname -v' which will report "BrandZ virtual linux" or checking for the existence of a /native mount where '/native/usr/bin/uname -s' reports SunOS. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1540965 Title: Support Joyent lx-brand environment in smartos datasource To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1540965/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs