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 Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1616831

Title:
  cloud-init doesn't prefer new APT config format when old and new are
  provided

Status in cloud-init:
  New
Status in cloud-init package in Ubuntu:
  New

Bug description:
  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_ap
 t_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)

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1616831/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to