← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1982857] [NEW] cloud-init does not provide configurable network activator priority overrides

 

Public bug reported:

cloud-init has two interactions with network backplanes

1. to write (or render) network configuration to the approapriate config
files for the network system: systemd, netplan, network-manager, ENI,
freebsd, netbsd, openbsd. This is done via cloudinit.net.renderers
discovery[1]

2. optionally to bring up the network configuration via "network
activation" for datasources discovered only in init boot stage after
network is already up[2]

/etc/cloud/cloud.cfg allows system_info:network:renderers to configure
overrides for default renderers, but not for activators. The two
discovery/mechanisms don't know about each other and have separate logic
to determine which is applicable on the given system.

Cloud-init should either:
 - Expose system_info: network: activators discovery priorty/order configuration in /etc/cloud/cloud.cfg*

 -- OR --

 - make activators aware of customized/overridden renderers priority
from cloud.cfg and honor that priority order when discovering activators
to use.

Without this feature, overridden network: renderer priority order to set
network-manager as default renderer will result in cloud-init writing
/etc/NetworkManager/system-connections/cloud-
init-<NIC_NAME>.nmconnection but then trying to run `netplan apply` for
a non-existent configuration on ubuntu Desktop installs.

References:
[1] network renderers discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/renderers.py#L67
[2] network activators discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/activators.py#L279
[3] renderer overrides honored: https://github.com/canonical/cloud-init/blob/main/cloudinit/distros/__init__.py#L122-L126
[4] No activator overrides: https://github.com/canonical/cloud-init/blob/main/cloudinit/distros/__init__.py#L246

** Affects: cloud-init
     Importance: Undecided
         Status: Triaged

** Affects: subiquity
     Importance: Undecided
         Status: New


** Tags: bitesize

** Description changed:

  cloud-init has two interactions with network backplanes
  
  1. to write (or render) network configuration to the approapriate config
  files for the network system: systemd, netplan, network-manager, ENI,
  freebsd, netbsd, openbsd. This is done via cloudinit.net.renderers
  discovery[1]
  
  2. optionally to bring up the network configuration via "network
  activation" for datasources discovered only in init boot stage after
  network is already up[2]
  
- 
  /etc/cloud/cloud.cfg allows system_info:network:renderers to configure
  overrides for default renderers, but not for activators. The two
  discovery/mechanisms don't know about each other and have separate logic
  to determine which is applicable on the given system.
  
+ Cloud-init should either:
+  - Expose system_info: network: activators discovery priorty/order configuration in /etc/cloud/cloud.cfg*
  
- Cloud-init should either:
-  - Expose system_info: network: activators discovery priorty/order configuration in /etc/cloud/cloud.cfg*
+  -- OR --
  
-  -- OR --
- 
-  - make activators aware of customized/overridden renderers priority
+  - make activators aware of customized/overridden renderers priority
  from cloud.cfg and honor that priority order when discovering activators
  to use.
  
- 
- Without this feature, overridden network: renderer priority order to set network-manager as default renderer will result in cloud-init writing /etc/NetworkManager/system-connections/cloud-init-<NIC_NAME>.nmconnection but then trying to run `netplan apply` for a non-existent configuration on ubuntu Desktop installs.
- 
+ Without this feature, overridden network: renderer priority order to set
+ network-manager as default renderer will result in cloud-init writing
+ /etc/NetworkManager/system-connections/cloud-
+ init-<NIC_NAME>.nmconnection but then trying to run `netplan apply` for
+ a non-existent configuration on ubuntu Desktop installs.
  
  References:
  [1] network renderers discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/renderers.py#L67
- [2] network activators discovery:
+ [2] network activators discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/activators.py#L279

** Tags added: bitesize

** Description changed:

  cloud-init has two interactions with network backplanes
  
  1. to write (or render) network configuration to the approapriate config
  files for the network system: systemd, netplan, network-manager, ENI,
  freebsd, netbsd, openbsd. This is done via cloudinit.net.renderers
  discovery[1]
  
  2. optionally to bring up the network configuration via "network
  activation" for datasources discovered only in init boot stage after
  network is already up[2]
  
  /etc/cloud/cloud.cfg allows system_info:network:renderers to configure
  overrides for default renderers, but not for activators. The two
  discovery/mechanisms don't know about each other and have separate logic
  to determine which is applicable on the given system.
  
  Cloud-init should either:
   - Expose system_info: network: activators discovery priorty/order configuration in /etc/cloud/cloud.cfg*
  
   -- OR --
  
   - make activators aware of customized/overridden renderers priority
  from cloud.cfg and honor that priority order when discovering activators
  to use.
  
  Without this feature, overridden network: renderer priority order to set
  network-manager as default renderer will result in cloud-init writing
  /etc/NetworkManager/system-connections/cloud-
  init-<NIC_NAME>.nmconnection but then trying to run `netplan apply` for
  a non-existent configuration on ubuntu Desktop installs.
  
  References:
  [1] network renderers discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/renderers.py#L67
  [2] network activators discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/activators.py#L279
+ [3] renderer overrides honored: https://github.com/canonical/cloud-init/blob/main/cloudinit/distros/__init__.py#L122-L126
+ [4] No activator overrides: https://github.com/canonical/cloud-init/blob/main/cloudinit/distros/__init__.py#L246

** Also affects: subiquity
   Importance: Undecided
       Status: New

-- 
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/1982857

Title:
  cloud-init does not provide configurable network activator priority
  overrides

Status in cloud-init:
  Triaged
Status in subiquity:
  New

Bug description:
  cloud-init has two interactions with network backplanes

  1. to write (or render) network configuration to the approapriate
  config files for the network system: systemd, netplan, network-
  manager, ENI, freebsd, netbsd, openbsd. This is done via
  cloudinit.net.renderers discovery[1]

  2. optionally to bring up the network configuration via "network
  activation" for datasources discovered only in init boot stage after
  network is already up[2]

  /etc/cloud/cloud.cfg allows system_info:network:renderers to configure
  overrides for default renderers, but not for activators. The two
  discovery/mechanisms don't know about each other and have separate
  logic to determine which is applicable on the given system.

  Cloud-init should either:
   - Expose system_info: network: activators discovery priorty/order configuration in /etc/cloud/cloud.cfg*

   -- OR --

   - make activators aware of customized/overridden renderers priority
  from cloud.cfg and honor that priority order when discovering
  activators to use.

  Without this feature, overridden network: renderer priority order to
  set network-manager as default renderer will result in cloud-init
  writing /etc/NetworkManager/system-connections/cloud-
  init-<NIC_NAME>.nmconnection but then trying to run `netplan apply`
  for a non-existent configuration on ubuntu Desktop installs.

  References:
  [1] network renderers discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/renderers.py#L67
  [2] network activators discovery: https://github.com/canonical/cloud-init/blob/main/cloudinit/net/activators.py#L279
  [3] renderer overrides honored: https://github.com/canonical/cloud-init/blob/main/cloudinit/distros/__init__.py#L122-L126
  [4] No activator overrides: https://github.com/canonical/cloud-init/blob/main/cloudinit/distros/__init__.py#L246

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



Follow ups