Public bug reported:
Trying to use the new configuration format of APT configuration while
still providing the OLD format, causes cloud-init fails to configure
APT.
cloud-init should be ignoring the old format if the new format is
provided to ensure backwards compat.
This is a problem for MAAS provided that we cannot safely differentiate
/ determine what cloud-init version we are using for a specific release
we are deploying, and as such, we still need to send the old config
while still providing the new one because:
1. Yakkety uses newer cloud-init with new format above
2. Xenial, Trusty, Precise use older cloud-init that doesn't support new format.
And this is a problem because:
1. MAAS won't be able to use derived repositories in Xenial, Trusty, Precise
until this gets backported into cloud-init.
2. Commission is done in Xenial, while deployment in Yakkety, but both may
require the same config, but it is only supported in Yakkety's cloud-init.
3. Users may be using old images that may not contain new cloud-init at all,
and even though the release already supports it, the image they are using
doesn't and they have to continue to use the old format.
4. MAAS cannot differentiate/identify which cloud-init version its being used,
as such, needs to sends both old and new config.
Aug 25 09:44:17 node02 [CLOUDINIT] cc_apt_configure.py[ERROR]: Error in
apt configuration: old and new format of apt features are mutually
exclusive ('apt':'{'primary': [{'arches': ['default'], 'uri':
'http://us.archive.ubuntu.com/ubuntu'}], 'preserve_sources_list': True,
'security': [{'arches': ['default'], 'uri':
'http://us.archive.ubuntu.com/ubuntu'}], 'sources': {'launchpad_3':
{'source': 'deb http://ppa.launchpad.net/maas/next/ubuntu yakkety
main'}}}' vs 'apt_proxy' key)
Aug 25 09:51:58 node02 [CLOUDINIT] util.py[DEBUG]: Running module apt-configure
(<module 'cloudinit.config.cc_apt_configure' from
'/usr/lib/python3/dist-packages/cloudinit/config/cc_apt_configure.py'>)
failed#012Traceback (most recent call last):#012 File
"/usr/lib/python3/dist-packages/cloudinit/stages.py", line 785, in
_run_modules#012 freq=freq)#012 File
"/usr/lib/python3/dist-packages/cloudinit/cloud.py", line 70, in run#012
return self._runners.run(name, functor, args, freq, clear_on_fail)#012 File
"/usr/lib/python3/dist-packages/cloudinit/helpers.py", line 199, in run#012
results = functor(*args)#012 File
"/usr/lib/python3/dist-packages/cloudinit/config/cc_apt_configure.py", line 77,
in handle#012 ocfg = convert_to_v3_apt_format(ocfg)#012 File
"/usr/lib/python3/dist-packages/cloudinit/config/cc_apt_configure.py", line
527, in convert_to_v3_apt_format#012 cfg =
convert_v2_to_v3_apt_format(cfg)#012 File
"/usr/lib/python3/dist-packages/cloudinit/config/cc_apt_
configure.py", line 489, in convert_v2_to_v3_apt_format#012 raise
ValueError(msg)#012ValueError: Error in apt configuration: old and new format
of apt features are mutually exclusive ('apt':'{'preserve_sources_list': True,
'primary': [{'uri': 'http://us.archive.ubuntu.com/ubuntu', 'arches':
['default']}], 'security': [{'uri': 'http://us.archive.ubuntu.com/ubuntu',
'arches': ['default']}], 'sources': {'launchpad_3': {'source': 'deb
http://ppa.launchpad.net/maas/next/ubuntu yakkety main'}}}' vs 'apt_proxy,
apt_preserve_sources_list' key)
** Affects: cloud-init
Importance: Undecided
Status: New
** Affects: cloud-init (Ubuntu)
Importance: Undecided
Status: New
** Also affects: cloud-init (Ubuntu)
Importance: Undecided
Status: New
** Description changed:
Trying to use the new configuration format of APT configuration while
still providing the OLD format, causes cloud-init fails to configure
APT.
cloud-init should be ignoring the old format if the new format is
provided to ensure backwards compat.
This is a problem for MAAS provided that we cannot safely differentiate
/ determine what cloud-init version we are using for a specific release
we are deploying, and as such, we still need to send the old config
while still providing the new one because:
1. Yakkety uses newer cloud-init with new format above
2. Xenial, Trusty, Precise use older cloud-init that doesn't support new
format.
And this is a problem because:
1. MAAS won't be able to use derived repositories in Xenial, Trusty, Precise
until this gets backported into cloud-init.
2. Commission is done in Xenial, while deployment in Yakkety, but both may
require the same config, but it is only supported in Yakkety's cloud-init.
3. Users may be using old images that may not contain new cloud-init at all,
and even though the release already supports it, the image they are using
doesn't and they have to continue to use the old format.
4. MAAS cannot differentiate/identify which cloud-init version its being
used, as such, needs to sends both old and new config.
+
+
+ Aug 25 09:44:17 node02 [CLOUDINIT] cc_apt_configure.py[ERROR]: Error in apt
configuration: old and new format of apt features are mutually exclusive
('apt':'{'primary': [{'arches': ['default'], 'uri':
'http://us.archive.ubuntu.com/ubuntu'}], 'preserve_sources_list': True,
'security': [{'arches': ['default'], 'uri':
'http://us.archive.ubuntu.com/ubuntu'}], 'sources': {'launchpad_3': {'source':
'deb http://ppa.launchpad.net/maas/next/ubuntu yakkety main'}}}' vs 'apt_proxy'
key)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1616831
Title:
cloud-init doesn't prefer new APT config format when old and new are
provided
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1616831/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs