config-drive support is broken

Bug #1673411 reported by James Page
36
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Ubuntu Cloud Archive
Fix Released
Undecided
Unassigned
Newton
Fix Released
Undecided
Unassigned
Ocata
Fix Released
Undecided
Unassigned
cloud-init
Fix Released
Medium
Unassigned
nova-lxd
Status tracked in Trunk
Newton
Fix Released
Medium
Unassigned
Ocata
Fix Released
Medium
Unassigned
Trunk
Fix Released
Medium
Unassigned
cloud-init (Ubuntu)
Fix Released
Medium
Unassigned
Xenial
Fix Released
Medium
Unassigned
Yakkety
Fix Released
Medium
Unassigned
Zesty
Fix Released
Medium
Unassigned
nova-lxd (Ubuntu)
Fix Released
Medium
Unassigned
Xenial
Invalid
Undecided
Unassigned
Yakkety
Fix Released
Medium
Unassigned
Zesty
Fix Released
Medium
Unassigned

Bug Description

=== Begin cloud-init SRU Template ===
[Impact]
nova-lxd can provide data to instances in 2 ways:
 a.) metadata service
 b.) config drive

The support for reading the config drive in cloud-init was never
functional. Nova-lxd has changed the way they're presenting the config
drive to the guest. Now they are doing so by populating a directory in
the container /config-drive with the information.
The change added to cloud-init was to extend support read config drive
information from that directory.

[Test Case]
With a nova-lxd that contains the fix this can be fully tested
by launching an instance with updated cloud-init and config drive
attached.

For cloud-init, the easiest way to demonstrate this is to
create a lxc container and populate it with a '/config-drive'.

lxc-proposed-snapshot is
  https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
It publishes an image to lxd with proposed enabled and cloud-init upgraded.

$ release=xenial
$ ref=xenial-proposed
$ name=$release-lp1673411
$ lxc-proposed-snapshot --proposed --publish $release $ref
$ lxc init $ref $name

# lxc will create the 'NoCloud' seed, and the normal search
# path looks there first, so remove it.

$ lxc file pull $name/etc/cloud/cloud.cfg.d/90_dpkg.cfg - |
    sed 's/NoCloud, //' |
    lxc file push - $name/etc/cloud/cloud.cfg.d/90_dpkg.cfg

## populate a /config-drive with attached 'make-config-drive-dir'
## and push it to the container

$ d=$(mktemp -d)
$ make-config-drive-dir "$d" "$name"
$ rm -Rf "$d"

## start it and look around
$ lxc start $name
$ sleep 10
$ lxc exec $name cat /run/cloud-init/result.json
{
 "v1": {
  "datasource": "DataSourceConfigDrive [net,ver=2][source=/config-drive]",
  "errors": []
 }
}

[Regression Potential]
There is a potentiali false positive where a user had data in
/config-drive and now that information is read as config drive data.

That would require a directory tree like:
  /config-drive/openstack/2???-??-??/meta_data.json
or
  /config-drive/openstack/latest/meta_data.json

Which seems like a small likelyhood of non-contrived hit.

[Other Info]
Upstream commit:
 https://git.launchpad.net/cloud-init/commit/?id=443095f4d4b6fe

=== End cloud-init SRU Template ===

After reviewing https://review.openstack.org/#/c/445579/ and doing some testing, it would appear that the config-drive support in the nova-lxd driver is not functional.

cloud-init ignores the data presented in /var/lib/cloud/data and reads from the network accessible metadata-service.

To test this effectively you have to have a fully offline instance (i.e. no metadata service access).

Related branches

James Page (james-page)
Changed in nova-lxd:
importance: Undecided → Medium
Revision history for this message
James Page (james-page) wrote :

Booting an instance on an isolated network confirms that cloud-init will not directly read /var/lib/cloud/data.

Changed in nova-lxd:
status: New → Confirmed
status: Confirmed → Triaged
Scott Moser (smoser)
Changed in cloud-init:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Lubosz Kosnik (diltram) wrote :

You can always reconfigure cloud-init (dpkg-reconfigure cloud-init) to use just ConfigDrive datasource.

Revision history for this message
Scott Moser (smoser) wrote :

Attached in deb and merge proposal is cloud-init that will look in /config-drive for openstack config drive data.

The change in nova-lxd needed is just to populate the /config-drive directory in the guest.
One thing to point out, though is that directory should be considered "owned" by the host.
Ie, if it is present on new-instance, it should be blown away. Other wise snapshot, then create would have that directory present.

So a 'ls /config-drive' would then look like:
  openstack/
  ec2

Revision history for this message
Lubosz Kosnik (diltram) wrote :

Scott just saw your patch. There is one mistake. You're still using self.seed_dir and you should change this for sdir.

Revision history for this message
Scott Moser (smoser) wrote :
Revision history for this message
Scott Moser (smoser) wrote :

Lubosz, thanks for catching. updated MP and deb here.

Revision history for this message
Lubosz Kosnik (diltram) wrote :

@Scott Moser - I have also a question about backporting this into some previous version of cloud-init. We need to somehow install it - without installing it manually. Is there any idea for how to provide the access to this change?

Revision history for this message
Scott Moser (smoser) wrote :

Lubosz, I'm not sure I understand the question.

If the suggested merge proposal works for you, please update it and Approve.

Then, the fix will be SRU'd into stable ubuntu releases and new images will come with it built in.

You'll only need to test the deb attached above for verification.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-lxd (master)

Reviewed: https://review.openstack.org/449472
Committed: https://git.openstack.org/cgit/openstack/nova-lxd/commit/?id=991b2bd550ab967df398dd038d927980489d111e
Submitter: Jenkins
Branch: master

commit 991b2bd550ab967df398dd038d927980489d111e
Author: James Page <email address hidden>
Date: Fri Mar 24 08:06:55 2017 +0000

    Fix config-drive support inline with cloud-init

    Proposed changes to cloud-init under the same bug will
    introduce behaviour to support a config-drive type concept
    for LXD containers at /config-drive.

    The current path is broken; switch to this new path to
    support offline configuration of cloud instances.

    Change-Id: I4996a34f84eb088c408a6454de9281908490a8eb
    Closes-Bug: 1673411

Changed in nova-lxd:
status: Triaged → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-lxd (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/449522

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-lxd (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/449523

Revision history for this message
James Page (james-page) wrote :

config-drive support was introduced in newton; raising bug tasks for >= Newton related targets

Changed in nova-lxd (Ubuntu Xenial):
importance: Undecided → High
status: New → Triaged
no longer affects: nova-lxd (Ubuntu Xenial)
no longer affects: nova-lxd/mitaka
Changed in nova-lxd (Ubuntu Yakkety):
importance: Undecided → Medium
Changed in nova-lxd (Ubuntu Zesty):
importance: Undecided → Medium
Changed in nova-lxd (Ubuntu Yakkety):
status: New → Triaged
Changed in nova-lxd (Ubuntu Zesty):
status: New → Triaged
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-lxd (stable/ocata)

Reviewed: https://review.openstack.org/449522
Committed: https://git.openstack.org/cgit/openstack/nova-lxd/commit/?id=e8a7e81cb9847a56da6a633a139ac0104aaa3ca6
Submitter: Jenkins
Branch: stable/ocata

commit e8a7e81cb9847a56da6a633a139ac0104aaa3ca6
Author: James Page <email address hidden>
Date: Fri Mar 24 08:06:55 2017 +0000

    Fix config-drive support inline with cloud-init

    Proposed changes to cloud-init under the same bug will
    introduce behaviour to support a config-drive type concept
    for LXD containers at /config-drive.

    The current path is broken; switch to this new path to
    support offline configuration of cloud instances.

    Change-Id: I4996a34f84eb088c408a6454de9281908490a8eb
    Closes-Bug: 1673411
    (cherry picked from commit 991b2bd550ab967df398dd038d927980489d111e)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-lxd (stable/newton)

Reviewed: https://review.openstack.org/449523
Committed: https://git.openstack.org/cgit/openstack/nova-lxd/commit/?id=5dd2bbaa14648b36d8cb0cd4c28c571533031452
Submitter: Jenkins
Branch: stable/newton

commit 5dd2bbaa14648b36d8cb0cd4c28c571533031452
Author: James Page <email address hidden>
Date: Fri Mar 24 08:06:55 2017 +0000

    Fix config-drive support inline with cloud-init

    Proposed changes to cloud-init under the same bug will
    introduce behaviour to support a config-drive type concept
    for LXD containers at /config-drive.

    The current path is broken; switch to this new path to
    support offline configuration of cloud instances.

    Change-Id: I4996a34f84eb088c408a6454de9281908490a8eb
    Closes-Bug: 1673411
    (cherry picked from commit 991b2bd550ab967df398dd038d927980489d111e)

Revision history for this message
James Page (james-page) wrote :

Scott

I've tested the in-branch changes to nova-lxd using our branch testing PPA's - I can confirm that with the proposed deb, I can see that instances are using /config-drive as the source for metadata for the instance:

2017-03-24 11:00:38,195 - handlers.py[DEBUG]: start: init-local/search-ConfigDrive: searching for local data from DataSourceConfigDrive
2017-03-24 11:00:38,195 - __init__.py[DEBUG]: Seeing if we can get any data from <class 'cloudinit.sources.DataSourceConfigDrive.DataSourceConfigDrive'>
2017-03-24 11:00:38,196 - openstack.py[DEBUG]: Selected version '2015-10-15' from ['2012-08-10', '2013-04-04', '2013-10-17', '2015-10-15', '2016-06-30', '2016-10-06', '2017-02-22', 'latest']
2017-03-24 11:00:38,196 - util.py[DEBUG]: Reading from /config-drive/openstack/2015-10-15/network_data.json (quiet=False)
2017-03-24 11:00:38,196 - util.py[DEBUG]: Read 311 bytes from /config-drive/openstack/2015-10-15/network_data.json
2017-03-24 11:00:38,197 - util.py[DEBUG]: Reading from /config-drive/openstack/2015-10-15/meta_data.json (quiet=False)
2017-03-24 11:00:38,197 - util.py[DEBUG]: Read 927 bytes from /config-drive/openstack/2015-10-15/meta_data.json
2017-03-24 11:00:38,197 - util.py[DEBUG]: Reading from /config-drive/openstack/2015-10-15/user_data (quiet=False)
2017-03-24 11:00:38,198 - util.py[DEBUG]: Read 307 bytes from /config-drive/openstack/2015-10-15/user_data
2017-03-24 11:00:38,198 - util.py[DEBUG]: Reading from /config-drive/openstack/2015-10-15/vendor_data.json (quiet=False)
2017-03-24 11:00:38,198 - util.py[DEBUG]: Read 2 bytes from /config-drive/openstack/2015-10-15/vendor_data.json
2017-03-24 11:00:38,198 - util.py[DEBUG]: Reading from /config-drive/ec2/latest/meta-data.json (quiet=False)
2017-03-24 11:00:38,198 - util.py[DEBUG]: Read 487 bytes from /config-drive/ec2/latest/meta-data.json
2017-03-24 11:00:38,199 - util.py[DEBUG]: Reading from /var/lib/cloud/data/instance-id (quiet=False)
2017-03-24 11:00:38,199 - util.py[DEBUG]: Read 37 bytes from /var/lib/cloud/data/instance-id
2017-03-24 11:00:38,199 - handlers.py[DEBUG]: finish: init-local/search-ConfigDrive: SUCCESS: found local data from DataSourceConfigDrive
2017-03-24 11:00:38,200 - stages.py[INFO]: Loaded datasource DataSourceConfigDrive - DataSourceConfigDrive [net,ver=2][source=/config-drive]

This was tested on a nova-lxd instance on an isolated-network (i.e. no network metadata service accessible)

Scott Moser (smoser)
Changed in cloud-init:
status: Confirmed → Fix Committed
Changed in cloud-init (Ubuntu Xenial):
importance: Undecided → Medium
status: New → Confirmed
Changed in cloud-init (Ubuntu Yakkety):
importance: Undecided → Medium
status: New → Confirmed
Changed in cloud-init (Ubuntu Zesty):
importance: Undecided → Medium
status: New → Fix Released
Revision history for this message
Lubosz Kosnik (diltram) wrote :

Scott, so what are the next step to enable installation of this cloud-init version on Xenial? Do I need to make anything special, any other review required?

Revision history for this message
Scott Moser (smoser) wrote :

Lubosz, this will get SRU'd probably in the next 2 weeks or so.
When it enters xenial-proposed there will be comments on this bug asking for verification, and your verification will be much appreciated.

Scott

James Page (james-page)
Changed in nova-lxd (Ubuntu Xenial):
status: New → Invalid
Chuck Short (zulcss)
Changed in nova-lxd (Ubuntu Zesty):
status: Triaged → Fix Committed
Revision history for this message
Scott Moser (smoser) wrote :
description: updated
description: updated
description: updated
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello James, or anyone else affected,

Accepted cloud-init into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-90-g61eb03fe-0ubuntu1~16.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in cloud-init (Ubuntu Yakkety):
status: Confirmed → Fix Committed
tags: added: verification-needed
Revision history for this message
Brian Murray (brian-murray) wrote :

Hello James, or anyone else affected,

Accepted cloud-init into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-90-g61eb03fe-0ubuntu1~16.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in cloud-init (Ubuntu Xenial):
status: Confirmed → Fix Committed
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Verified on yakkety with a yakkety lxd container and the provided instructions:

 *** 0.7.9-90-g61eb03fe-0ubuntu1~16.10.1 500
        500 http://archive.ubuntu.com/ubuntu yakkety-proposed/main amd64 Packages

Created a config-drive and verified the result.json file:

$ lxc file pull $name/run/cloud-init/result.json -
{
 "v1": {
  "datasource": "DataSourceConfigDrive [net,ver=2][source=/config-drive]",
  "errors": []
 }
}

/config-drive was there:
root@foohost:~# find /config-drive/ -type f
/config-drive/openstack/latest/meta_data.json
/config-drive/openstack/latest/network_data.json
/config-drive/openstack/latest/vendor_data.json
/config-drive/openstack/latest/user_data
/config-drive/openstack/2015-10-15/network_data.json
/config-drive/openstack/2015-10-15/user_data
/config-drive/openstack/2015-10-15/vendor_data.json
/config-drive/openstack/2015-10-15/meta_data.json

To be sure my config-drive was being read, in another attempt I injected a failure into it by setting a link of an unknown type:

$ lxc file pull $name/run/cloud-init/result.json -
{
 "v1": {
  "datasource": null,
  "errors": [
   "Unknown network_data link type: dvs-andreas-was-here",
   "Unknown network_data link type: dvs-andreas-was-here",
   "('ssh-authkey-fingerprints', KeyError('getpwnam(): name not found: ubuntu',))"
  ]
 }
}

As a side note, that prevented the ubuntu user from being created (and probably other things which do not concern us here).

tags: added: verification-done-yakkety
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Verified on xenial with a xenial lxd container and the provided instructions:

  Version table:
 *** 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-proposed/main amd64 Packages

$ lxc exec x1-fixed cat /run/cloud-init/result.json
{
 "v1": {
  "datasource": "DataSourceConfigDrive [net,ver=2][source=/config-drive]",
  "errors": []
 }
}

Inside the container:
root@foohost:~# find /config-drive/ -type f
/config-drive/openstack/latest/network_data.json
/config-drive/openstack/latest/vendor_data.json
/config-drive/openstack/latest/user_data
/config-drive/openstack/latest/meta_data.json
/config-drive/openstack/2015-10-15/meta_data.json
/config-drive/openstack/2015-10-15/network_data.json
/config-drive/openstack/2015-10-15/vendor_data.json
/config-drive/openstack/2015-10-15/user_data

And again, to make sure my config-drive was being read, I injected a failure:
$ lxc exec x1-fixed cat /run/cloud-init/result.json
{
 "v1": {
  "datasource": null,
  "errors": [
   "Unknown network_data link type: dvs-andreas-was-here-again",
   "Unknown network_data link type: dvs-andreas-was-here-again",
   "('ssh-authkey-fingerprints', KeyError('getpwnam(): name not found: ubuntu',))"
  ]
 }
}

All good.

tags: added: verification-done-xenial
tags: removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.4 KiB)

This bug was fixed in the package cloud-init - 0.7.9-90-g61eb03fe-0ubuntu1~16.10.1

---------------
cloud-init (0.7.9-90-g61eb03fe-0ubuntu1~16.10.1) yakkety; urgency=medium

  * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  * New upstream snapshot.
    - OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
    - Fix bug that resulted in an attempt to rename bonds or vlans.
      (LP: #1669860)
    - tests: update OpenNebula and Digital Ocean to not rely on host
      interfaces.
    - net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    - doc: correct grammar in capabilities.rst [David Tagatac]
    - ds-identify: fix detecting of maas datasource. (LP: #1677710)
    - netplan: remove debugging prints, add debug logging [Ryan Harper]
    - ds-identify: do not write None twice to datasource_list.
    - support resizing partition and rootfs on system booted without
      initramfs. [Steve Langasek] (LP: #1677376)
    - apt_configure: run only when needed. (LP: #1675185)
    - OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    - GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
    - Fix filesystem creation when using "partition: auto"
      [Jonathan Ballet] (LP: #1634678)
    - ConfigDrive: support reading config drive data from /config-drive.
      (LP: #1673411)
    - ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    - test: add running of pylint [Joshua Powers]
    - ds-identify: fix bug where filename expansion was left on.
    - advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    - Bigstep: fix bug when executing in python3. [root]
    - Fix unit test when running in a system deployed with cloud-init.
    - Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)
    - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
    - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
    - net: add renderers for automatically selecting the renderer.
    - doc: fix config drive doc with regard to unpartitioned disks.
      (LP: #1673818)
    - test: Adding integratiron test for password as list [Joshua Powers]
    - render_network_state: switch arguments around, do not require target
    - support 'loopback' as a device type.
    - Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
    - gitignore: adding doc/rtd_html [Joshua Powers]
    - doc: add instructions for running integration tests via tox.
      [Joshua Powers]
    - test: avoid differences in 'date' output due to daylight savings.
    - Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
    - Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
    - tox: add a citest environment
    - Support chpasswd/list being a list in addition to a string.
      [Sergio Lystopad] (LP: #1665694)
    - doc: Fix configuration example for cc_set_passwords module.
      [Sergio Lystopad] (LP: #1665773)
    - ...

Read more...

Changed in cloud-init (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Revision history for this message
Steve Langasek (vorlon) wrote : Update Released

The verification of the Stable Release Update for cloud-init has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.4 KiB)

This bug was fixed in the package cloud-init - 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1

---------------
cloud-init (0.7.9-90-g61eb03fe-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  * New upstream snapshot.
    - OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
    - Fix bug that resulted in an attempt to rename bonds or vlans.
      (LP: #1669860)
    - tests: update OpenNebula and Digital Ocean to not rely on host
      interfaces.
    - net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    - doc: correct grammar in capabilities.rst [David Tagatac]
    - ds-identify: fix detecting of maas datasource. (LP: #1677710)
    - netplan: remove debugging prints, add debug logging [Ryan Harper]
    - ds-identify: do not write None twice to datasource_list.
    - support resizing partition and rootfs on system booted without
      initramfs. [Steve Langasek] (LP: #1677376)
    - apt_configure: run only when needed. (LP: #1675185)
    - OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    - GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
    - Fix filesystem creation when using "partition: auto"
      [Jonathan Ballet] (LP: #1634678)
    - ConfigDrive: support reading config drive data from /config-drive.
      (LP: #1673411)
    - ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    - test: add running of pylint [Joshua Powers]
    - ds-identify: fix bug where filename expansion was left on.
    - advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    - Bigstep: fix bug when executing in python3. [root]
    - Fix unit test when running in a system deployed with cloud-init.
    - Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)
    - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
    - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
    - net: add renderers for automatically selecting the renderer.
    - doc: fix config drive doc with regard to unpartitioned disks.
      (LP: #1673818)
    - test: Adding integratiron test for password as list [Joshua Powers]
    - render_network_state: switch arguments around, do not require target
    - support 'loopback' as a device type.
    - Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
    - gitignore: adding doc/rtd_html [Joshua Powers]
    - doc: add instructions for running integration tests via tox.
      [Joshua Powers]
    - test: avoid differences in 'date' output due to daylight savings.
    - Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
    - Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
    - tox: add a citest environment
    - Support chpasswd/list being a list in addition to a string.
      [Sergio Lystopad] (LP: #1665694)
    - doc: Fix configuration example for cc_set_passwords module.
      [Sergio Lystopad] (LP: #1665773...

Read more...

Changed in cloud-init (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
James Page (james-page) wrote :

Marking artful and zesty tasks as fix-released as 15.0.1 of nova-lxd contains the required fixes for this new way of doing config-drive.

Yakkety is still pending acceptance of 14.2.2 which has the same config-drive fixes.

Changed in nova-lxd (Ubuntu):
status: Fix Committed → Fix Released
Changed in nova-lxd (Ubuntu Zesty):
status: Fix Committed → Fix Released
Revision history for this message
James Page (james-page) wrote :

Re-assigning ubuntu-sru for the nova-lxd yakkety task (which is in the UNAPPROVED queue btw).

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello James, or anyone else affected,

Accepted nova-lxd into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/nova-lxd/14.2.2-0ubuntu0.16.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nova-lxd (Ubuntu Yakkety):
status: Triaged → Fix Committed
tags: added: verification-needed
Revision history for this message
James Page (james-page) wrote :

Hello James, or anyone else affected,

Accepted nova-lxd into newton-proposed. The package will build now and be available in the Ubuntu Cloud Archive in a few hours, and then in the -proposed repository.

Please help us by testing this new package. To enable the -proposed repository:

  sudo add-apt-repository cloud-archive:newton-proposed
  sudo apt-get update

Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-newton-needed to verification-newton-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-newton-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: added: verification-newton-needed
Revision history for this message
James Page (james-page) wrote :

OK so I'm seeing issues with verification on yakkety when config-drive is enabled - LXD is throwing an error unmarshalling the readonly flag:

t=2017-05-17T09:02:04+0000 lvl=dbug msg="\n\t{\n\t\t\"config\": {\n\t\t\t\"raw.lxc\": \"lxc.console.logfile=/var/log/lxd/instance-00000003/console.log\\n\",\n\t\t\t\"limits.memory\": \"2048MB\",\n\t\t\t\"boot.autostart\": \"True\",\n\t\t\t\"limits.cpu\": \"1\",\n\t\t\t\"environment.product_name\": \"OpenStack Nova\"\n\t\t},\n\t\t\"description\": \"\",\n\t\t\"devices\": {\n\t\t\t\"root\": {\n\t\t\t\t\"path\": \"/\",\n\t\t\t\t\"type\": \"disk\",\n\t\t\t\t\"size\": \"20GB\"\n\t\t\t},\n\t\t\t\"qbr5d4b3062-00\": {\n\t\t\t\t\"hwaddr\": \"fa:16:3e:05:45:97\",\n\t\t\t\t\"type\": \"nic\",\n\t\t\t\t\"host_name\": \"tap5d4b3062-00\",\n\t\t\t\t\"parent\": \"qbr5d4b3062-00\",\n\t\t\t\t\"nictype\": \"bridged\"\n\t\t\t},\n\t\t\t\"configdrive\": {\n\t\t\t\t\"path\": \"/config-drive\",\n\t\t\t\t\"readonly\": true,\n\t\t\t\t\"type\": \"disk\",\n\t\t\t\t\"source\": \"/var/lib/nova/instances/instance-00000003/configdrive\"\n\t\t\t}\n\t\t}\n\t"
t=2017-05-17T09:02:04+0000 lvl=dbug msg="\n\t{\n\t\t\"error\": \"json: cannot unmarshal bool into Go value of type string\",\n\t\t\"error_code\": 400,\n\t\t\"type\": \"error\"\n\t}"

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-lxd (master)

Fix proposed to branch: master
Review: https://review.openstack.org/465482

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-lxd (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/465483

Revision history for this message
James Page (james-page) wrote :

Same issue on xenial-newton; I'll raise a separate bug to track the marshalling problem.

tags: added: verification-newton-failed
removed: verification-newton-needed
tags: added: verification-failed
removed: verification-needed
Revision history for this message
James Page (james-page) wrote :

bug 1691428 for config-drive readonly flag issue.

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello James, or anyone else affected,

Accepted nova-lxd into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/nova-lxd/14.2.2-0ubuntu0.16.10.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: removed: verification-failed
tags: added: verification-needed
Revision history for this message
James Page (james-page) wrote :

yakkety-proposed:

Re-tested with the fixes under bug 1691428; config drive presented correctly and as a read-only share between host and LXD container.

tags: added: verification-yakkety-done
removed: verification-newton-failed
tags: added: verification-done
removed: verification-needed verification-yakkety-done
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nova-lxd - 14.2.2-0ubuntu0.16.10.2

---------------
nova-lxd (14.2.2-0ubuntu0.16.10.2) yakkety; urgency=medium

  * d/p/bug1691428-ocata.patch: Cherry pick fix to ensure that readonly
    flag for config-drive device is correctly passed to LXD
    (LP: #1691428).

nova-lxd (14.2.2-0ubuntu0.16.10.1) yakkety; urgency=medium

  * New upstream point release for Openstack Newton (LP: #1673411)

 -- James Page <email address hidden> Wed, 17 May 2017 11:12:17 +0100

Changed in nova-lxd (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Revision history for this message
Scott Moser (smoser) wrote : Fixed in Cloud-init 17.1

This bug is believed to be fixed in cloud-init in 17.1. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in cloud-init:
status: Fix Committed → Fix Released
Revision history for this message
James Falcon (falcojr) wrote :
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.