summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsdc <taras@vyos.io>2023-10-27 14:15:20 +0300
committerzsdc <taras@vyos.io>2023-10-27 14:15:20 +0300
commit1ecd15c9392ac57fdf4b922f74effa6a67c91150 (patch)
treeff12e07826947458aa96d8e976df7d4ee2a26e72
parent0b136dd5beaa5b813ea4037f5c65f0c6090a4ff5 (diff)
downloadvyos-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.py14
-rw-r--r--config/cloud.cfg.d/20_vyos_install.cfg1
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