Control plane template extra args should be an array, not map #11562
Labels
area/clusterclass
Issues or PRs related to clusterclass
area/control-plane
Issues or PRs related to control-plane lifecycle management
kind/bug
Categorizes issue or PR as related to a bug.
needs-priority
Indicates an issue lacks a `priority/foo` label and requires one.
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
Uh oh!
There was an error while loading. Please reload this page.
What steps did you take and what happened?
kube-apiserver allows some flags to be specified multiple times, such as
--service-account-issuer
and--oidc-required-claims
but perhaps others. From the docs:Because
KubeadmControlPlaneTemplate.Spec.Template.Spec.KubeadmConfigSpec.ClusterConfiguration.APIServer.ExtraArgs
ismap[string]string
, duplicate keys cannot be provided.Applying a spec with the following keys:
The resulting
kube-apiserver.yaml
only contains the last issuer, having clobbered the duplicate key(s):The kubelet docs don't specifically mention whether any of its keys may be specified multiple times, but if so
kubeletExtraArgs
is also likely prone to this issue.Because of this we must resort to jsonpatches for some api server args, but we'd rather 1) use the more ergonomic solution and 2) consolidate all of our args in a single place.
What did you expect to happen?
api server, controller manager, and kubelet extra args should support the full capabilities of their underlying components.
Cluster API version
v1.8.5
Kubernetes version
Client Version: v1.31.1
Server Version: v1.29.2
Anything else you would like to add?
Because order matters with
--service-account-issuer
, well-defined behavior around whether the extra args get prepended or appended would be helpful!Label(s) to be applied
/kind bug
/area clusterclass
The text was updated successfully, but these errors were encountered: