diff options
author | zsdc <taras@vyos.io> | 2023-10-27 14:15:20 +0300 |
---|---|---|
committer | zsdc <taras@vyos.io> | 2023-10-27 14:15:20 +0300 |
commit | 1ecd15c9392ac57fdf4b922f74effa6a67c91150 (patch) | |
tree | ff12e07826947458aa96d8e976df7d4ee2a26e72 | |
parent | 0b136dd5beaa5b813ea4037f5c65f0c6090a4ff5 (diff) | |
download | vyos-cloud-init-1ecd15c9392ac57fdf4b922f74effa6a67c91150.tar.gz vyos-cloud-init-1ecd15c9392ac57fdf4b922f74effa6a67c91150.zip |
vyos_install: T5220: Added `cmdline_extra` option
In some platforms, the kernel may need extra options in cmdline to boot
properly. The new option allows adding extra parameters to the cmdline:
```
vyos_install:
boot_params:
cmdline_extra: nosmt mitigations=off # extra parameters for kernel cmdline
```
-rw-r--r-- | cloudinit/config/cc_vyos_install.py | 14 | ||||
-rw-r--r-- | config/cloud.cfg.d/20_vyos_install.cfg | 1 |
2 files changed, 10 insertions, 5 deletions
diff --git a/cloudinit/config/cc_vyos_install.py b/cloudinit/config/cc_vyos_install.py index a7c73af4..2c3629f8 100644 --- a/cloudinit/config/cc_vyos_install.py +++ b/cloudinit/config/cc_vyos_install.py @@ -250,6 +250,8 @@ def grub_configure(grub_dir: str, vyos_version: str, default_boot = 0 elif boot_params['console_type'] == 'serial': default_boot = 1 + if boot_params['cmdline_extra']: + cmdline_extra = f' {boot_params["cmdline_extra"]}' grub_cfg_content: str = dedent(f''' # load EFI video modules if [ "${{grub_platform}}" == "efi" ]; then @@ -264,22 +266,22 @@ def grub_configure(grub_dir: str, vyos_version: str, terminal_input --append serial console menuentry "VyOS { vyos_version } (KVM console)" {{ - linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=tty0 + linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=tty0{cmdline_extra} initrd /boot/{ vyos_version }/initrd.img }} menuentry "VyOS { vyos_version } (Serial console)" {{ - linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=ttyS{boot_params['serial_console_num']},{boot_params['serial_console_speed']} + linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=ttyS{boot_params['serial_console_num']},{boot_params['serial_console_speed']}{cmdline_extra} initrd /boot/{ vyos_version }/initrd.img }} menuentry "VyOS { vyos_version } - password reset (KVM console)" {{ - linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset + linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset{cmdline_extra} initrd /boot/{ vyos_version }/initrd.img }} menuentry "VyOS { vyos_version } - password reset (Serial console)" {{ - linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=ttyS{boot_params['serial_console_num']},{boot_params['serial_console_speed']} init=/opt/vyatta/sbin/standalone_root_pw_reset + linux /boot/{ vyos_version }/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/{ vyos_version } console=ttyS{boot_params['serial_console_num']},{boot_params['serial_console_speed']} init=/opt/vyatta/sbin/standalone_root_pw_reset{cmdline_extra} initrd /boot/{ vyos_version }/initrd.img }} ''') @@ -379,7 +381,9 @@ def handle(name: str, cfg: dict, cloud: Cloud, _: Logger, args: list) -> None: 'serial_console_speed': get_cfg_by_path(cfg, 'vyos_install/boot_params/serial_console_speed', - '9600') + '9600'), + 'cmdline_extra': + get_cfg_by_path(cfg, 'vyos_install/boot_params/cmdline_extra', '') } grub_configure(f'{DIR_DST_ROOT}/boot/grub', image_name, boot_params) LOG.info('GRUB configured') diff --git a/config/cloud.cfg.d/20_vyos_install.cfg b/config/cloud.cfg.d/20_vyos_install.cfg index 0083af68..da9eda07 100644 --- a/config/cloud.cfg.d/20_vyos_install.cfg +++ b/config/cloud.cfg.d/20_vyos_install.cfg @@ -8,3 +8,4 @@ # console_type: serial # type of console: kvm, serial. Default: kvm # serial_console_num: 1 # serial console number. Default: 0 # serial_console_speed: 115200 # serial console speed. Default: 9600 +# cmdline_extra: nosmt mitigations=off # add extra parameters for kernel cmdline |