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

Spike out MachineConfig "priorities" based on custom pool

XMLWordPrintable

    • Icon: Spike Spike
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • None
    • None
    • MCO Sprint 237
    • 0
    • 0

      Today the MCO has a strict alphanumeric ordering for MachineConfigs. This means if multiple machineconfigs define the same file, when the merging happens, only the definition in the highest alphanumeric order takes effect, and all other definitions are discarded.

       

      This works pretty well generally but runs into trouble for generated machineconfigs, for example, those generated by kubelet or containerruntime config controllers. Since those generate machineconfigs with the pool naming (e.g. 99-generated-$POOL-kubeletconfig) this becomes problematic when you have a custom pool definition as well as a worker pool definition, because worker generally overrides custom pool due to most pool names starting before w.

       

      This has caught a few customers, recently resulting in the incident https://docs.google.com/document/d/1P7lasC1ta9Zp_6h0rUYRG2uErk9351qCfz6klIEVeUk/edit#heading=h.ef3ucx201pqh 

       

      There are a few options we can do, but one of the more straightforward options would be to always allow custom pool configs to supercede worker configs of the same file. Since if you were defining something in a custom pool, it likely is intended as special configuration for that pool.

       

      Alternatively, we can rework the kubelet/containerruntime config controllers to handle this (and other parts) better. There is an old stub card https://issues.redhat.com/browse/MCO-84 that somewhat references this issue, but I think that would be more effort

              cdoern@redhat.com Charles Doern
              jerzhang@redhat.com Yu Qi Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: