** Description changed: We're interested in supporting network configuration of lxc containers via maas/cloud-init yaml format. The end goal is to do: $ lxc init xenial x1 $ ncpath=/var/lib/cloud/seed/nocloud-net/network-config $ sudo tee /var/lib/lxd/containers/x1/rootfs/$ncpath <<EOF version: 1 config: - type: physical mac_address: "00:16:3e:3b:01:7a" name: foo2 subnets: - type: dhcp control: auto EOF $ lxc start x1 $ lxc exec x1 /bin/bash From inside we expect to have a device named 'foo2' at this point that has dhcp'd. We've run into a number of issues with this. a.) we don't get coldplug events for devices in a container, so writing systemd.link (or 70-persistent-net.rules style udev rules files) wont "just work" to apply the name changes. - b.) systemd.link does rename devices that have been renamed previously, and all lxd instance devices are renamed (from the kernel returned veth<random> into 'eth0'). + b.) systemd.link does not rename devices that have been renamed previously, and all lxd instance devices are renamed (from the kernel returned veth<random> into 'eth0'). That is implemented by check of /sys/devices/virtual/net/eth0/name_assign_type . Value of 4 means renamed. c.) systemd.link will not attempt to rename a device that does not have a driver. To see that run: udevadm test-builtin net_setup_link /sys/class/net/eth0 http://paste.ubuntu.com/16261974/ To force these systemd.link files to run in spite of 'b' on kvm guests or bare metal, we have found that unbind and rebind of the device will clear the state and rename would occur. that can be done as shown in https://bugs.launchpad.net/ubuntu/+source/cloud- init/+bug/1577844/comments/3 but since there is no 'driver' we cannot unbind and rebind veth devices. Ultimately, we want to allow cloud-init to configure the system once and then let renaming on reboots not require involvement of cloud-init. And at the moment the ideal way to affect that would be through systemd.link files such as /etc/systemd/network/50-cloud-init-foo2.link. ProblemType: Bug DistroRelease: Ubuntu 16.04 Package: udev 229-4ubuntu4 ProcVersionSignature: Ubuntu 4.4.0-21.37-generic 4.4.6 Uname: Linux 4.4.0-21-generic x86_64 ApportVersion: 2.20.1-0ubuntu2 Architecture: amd64 Date: Fri May 6 15:42:52 2016 MachineType: LENOVO 33672B7 ProcEnviron: TERM=xterm-256color PATH=(custom, no user) ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic.efi.signed root=UUID=19ac97d5-6973-4193-9a09-2e6bbfa38262 ro quiet splash vt.handoff=7 SourcePackage: systemd UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 12/18/2013 dmi.bios.vendor: LENOVO dmi.bios.version: G8ET96WW (2.56 ) dmi.board.asset.tag: Not Available dmi.board.name: 33672B7 dmi.board.vendor: LENOVO dmi.board.version: Not Defined dmi.chassis.asset.tag: No Asset Information dmi.chassis.type: 10 dmi.chassis.vendor: LENOVO dmi.chassis.version: Not Available dmi.modalias: dmi:bvnLENOVO:bvrG8ET96WW(2.56):bd12/18/2013:svnLENOVO:pn33672B7:pvrThinkPadX131e:rvnLENOVO:rn33672B7:rvrNotDefined:cvnLENOVO:ct10:cvrNotAvailable: dmi.product.name: 33672B7 dmi.product.version: ThinkPad X131e dmi.sys.vendor: LENOVO
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1579130 Title: need to support systemd.link renaming of devices in container Status in cloud-init package in Ubuntu: Confirmed Status in systemd package in Ubuntu: Triaged Bug description: We're interested in supporting network configuration of lxc containers via maas/cloud-init yaml format. The end goal is to do: $ lxc init xenial x1 $ ncpath=/var/lib/cloud/seed/nocloud-net/network-config $ sudo tee /var/lib/lxd/containers/x1/rootfs/$ncpath <<EOF version: 1 config: - type: physical mac_address: "00:16:3e:3b:01:7a" name: foo2 subnets: - type: dhcp control: auto EOF $ lxc start x1 $ lxc exec x1 /bin/bash From inside we expect to have a device named 'foo2' at this point that has dhcp'd. We've run into a number of issues with this. a.) we don't get coldplug events for devices in a container, so writing systemd.link (or 70-persistent-net.rules style udev rules files) wont "just work" to apply the name changes. b.) systemd.link does not rename devices that have been renamed previously, and all lxd instance devices are renamed (from the kernel returned veth<random> into 'eth0'). That is implemented by check of /sys/devices/virtual/net/eth0/name_assign_type . Value of 4 means renamed. c.) systemd.link will not attempt to rename a device that does not have a driver. To see that run: udevadm test-builtin net_setup_link /sys/class/net/eth0 http://paste.ubuntu.com/16261974/ To force these systemd.link files to run in spite of 'b' on kvm guests or bare metal, we have found that unbind and rebind of the device will clear the state and rename would occur. that can be done as shown in https://bugs.launchpad.net/ubuntu/+source/cloud- init/+bug/1577844/comments/3 but since there is no 'driver' we cannot unbind and rebind veth devices. Ultimately, we want to allow cloud-init to configure the system once and then let renaming on reboots not require involvement of cloud- init. And at the moment the ideal way to affect that would be through systemd.link files such as /etc/systemd/network/50-cloud-init- foo2.link. ProblemType: Bug DistroRelease: Ubuntu 16.04 Package: udev 229-4ubuntu4 ProcVersionSignature: Ubuntu 4.4.0-21.37-generic 4.4.6 Uname: Linux 4.4.0-21-generic x86_64 ApportVersion: 2.20.1-0ubuntu2 Architecture: amd64 Date: Fri May 6 15:42:52 2016 MachineType: LENOVO 33672B7 ProcEnviron: TERM=xterm-256color PATH=(custom, no user) ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic.efi.signed root=UUID=19ac97d5-6973-4193-9a09-2e6bbfa38262 ro quiet splash vt.handoff=7 SourcePackage: systemd UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 12/18/2013 dmi.bios.vendor: LENOVO dmi.bios.version: G8ET96WW (2.56 ) dmi.board.asset.tag: Not Available dmi.board.name: 33672B7 dmi.board.vendor: LENOVO dmi.board.version: Not Defined dmi.chassis.asset.tag: No Asset Information dmi.chassis.type: 10 dmi.chassis.vendor: LENOVO dmi.chassis.version: Not Available dmi.modalias: dmi:bvnLENOVO:bvrG8ET96WW(2.56):bd12/18/2013:svnLENOVO:pn33672B7:pvrThinkPadX131e:rvnLENOVO:rn33672B7:rvrNotDefined:cvnLENOVO:ct10:cvrNotAvailable: dmi.product.name: 33672B7 dmi.product.version: ThinkPad X131e dmi.sys.vendor: LENOVO To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1579130/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp