Uploaded image for project: 'Machine Config Operator'
  1. Machine Config Operator
  2. MCO-217

Support Kernel arguments from Ignition config

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • False
    • False
    • 0
    • 0

      *USER STORY:*

      As an OpenShift admin,

      I'd like to leverage the capability of the Ignition binary and the Ignition config spec v3.3+ for configuring Kernel arguments so that the cluster's machines come up with the correctly configured kargs immediately on the first boot, without the need for incurring another reboot that is currently still needed as the MCD applies the kargs even on first provisioning and subsequently reboots the machines for them to take effect.

       
      *DESCRIPTION:*

      There are currently two ways of configuring the kernel args:

      • The (deprecated, and in new installations as of 4.10 unused) `/etc/pivot/kernel-args` file interface (see MCO-8), and
      • the kernelArguments field on MachineConfig resource objects, which is the currently recommended approach.

      As of v3.3 of the Ignition config spec, Ignition has support for configuring kargs that should exist, and kargs that should not exist on the provisioned machine (https://github.com/coreos/ignition/blob/main/docs/configuration-v3_3.md).

      The main benefit for using Ignition for setting kargs is that no reboot at provisioning time is required if non-default kargs are configured.

      MCD should also support applying kargs from Ignition config embedded in MachineConfigs as a Day 2 operation, in the same way it currently does with the existing ways.

       
      *ACCEPTANCE CRITERIA:*

      *Required:*

      • Upgrade MCO/MCD to Ignition spec v3.3+
      • MCO must be able to read kargs config in the Ign config embedded in MCs, merge/dedupe them with kargs config set through the existing interfaces, and add the resulting config to the rendered MC.
      • MCD must be able to change/apply kargs set in an Ignition embedded in a MachineConfig as a Day 2 operation.

      *Nice to have:*

      • Make in-Ignition kargs the canonical and only representation of kargs config in the rendered MC, transpiling kargs config set through the existing interfaces to Ignition config.
      • Switch over the (optionally used) MC for disabling hyperthreading via kargs that is shipped in the installer from the MC interface to this new Ignition-embedded-in-MC interface

       
      *ENGINEERING DETAILS:*

      This topic was already touched upon in https://issues.redhat.com/browse/MCO-8, with rhn-engineering-skumari noting:

      > Nice. Looked at its implementation https://github.com/coreos/ignition/pull/1178/ and it looks to me that we also need to ensure that distro (ignition package in RHEL)  have ignition-kargs-helper script present in /usr/sbin/ignition-kargs-helper https://github.com/coreos/ignition/pull/1178/files#diff-ee6dab694d1a3357f4dfc1eb52f77601b14a8ab727934ac8748856a826827b23R12 

            Unassigned Unassigned
            cglombek Christian Glombek
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: