yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #91494
[Bug 2011298] Re: network config can't override kernel command line arguments
As you say, it's kind of a fringe case for us. Cloud-init expects there
to be an authoritative source for network configuration. Most clouds
have an link-local metadata service that cloud-init can connect to
before networking has come up to get the networking config. In the
absence of this or a config on disk, it'll default to DHCP on eth0 (or
similar) interface. Beyond this, it is expected that users can configure
things themselves.
Note that after first boot, if you don't want cloud-init involved at all with the network, you may want to also set network configuration disabled like so:
https://cloudinit.readthedocs.io/en/latest/reference/network-config.html#disabling-network-configuration
I'm going to close this as Invalid since it works as intended, but if we
find a stronger use case, we can always re-open it.
** Changed in: cloud-init
Status: Incomplete => Invalid
--
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/2011298
Title:
network config can't override kernel command line arguments
Status in cloud-init:
Invalid
Bug description:
This isn't really a bug, it's more of a missing functionality.
The quick description is that if you specify the network configuration
by a kernel command line parameter (`ip=blahblahblah`), there doesn't
appear to be a way to override it by defining a different network
setup in cloud-init. The kernel command line will always take
precedence no matter what you define in `meta-data` or `user-data`.
This is the conclusion I drew both from the documentation, as well as
by looking at the source on GitHub. The kernel command line has
absolute priority and can't be overriden. I found a workaround, by
writing the config file (`/etc/netplan/50-cloud-init.yml` in my case)
directly through "write_files" and then executing "netplan apply" in
"runcmd". This does what I want, but it doesn't look nice.
Perhaps you're wondering why I need this. I boot ubuntu MAAS images
over network. In some data centers DHCP isn't available and at the
same time I need to assign more than one IP address to the system,
and/or configure bonding. So the bootloader constructs the kernel
command line, the machine boots, but only has one ethernet interface
configured, with one IP address. I can't remove the kernel command
line argument, as then cloud-init doesn't know how to configure the
network in order to download the `user-data` / `meta-data`.
Please consider providing an alternative approach to the workaround I
explained above.
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/2011298/+subscriptions
References