Description
1. Proposed title of this feature request
KubeletConfig controller - handle MachineConfigPool label mismatches better
2. What is the nature and description of the request?
See https://access.redhat.com/solutions/7004532 for more details
3. Why does the customer need this? (List the business requirements here)
We had a huge escalation because of this recently because a KubeletConfig from a PerfProfile was not applied to a node.
4. List any affected packages or components.
the kubeletconfig controller of the machineconfigoperator
a) I'd suggest to use the same heuristic that we use when matching nodes to machineconfig pools:
If an MCP matched by a KubeletConfig has multiple custom MC labels, create an error.
If an MCP matched by a KubeletConfig has a single custom MC label and the master label, create an error.
If an MCP matched by a KubeletConfig has a single custom MC label, use that one.
If an MCP matched by a KubeletConfig has a single master MC label, use that one.
If an MCP matched by a KubeletConfig has a single worker MC label, use that one.
For backwards compatibility, the KubeletConfig probably will need a new version / flag that triggers this new behavior.
b) At the very minimum, we should should at least error out on an inconsistent mcp