Skip to content

KubeadmControlPlane kubeletExtraArgs marked invalid #13339

@muryoutaisuu

Description

@muryoutaisuu

What steps did you take and what happened?

preconditions:

  • capi v1.10.3
  • a managed k8s cluster with apiVersion: controlplane.cluster.x-k8s.io/v1beta1 and with some kubeletExtraArgs, e.g. in .spec.kubeadmConfigSpec.initConfiguration.nodeRegistration.kubeletExtraArgs

step-by-step:

  1. update capi to v1.11.4
  2. update managed cluster's KubeadmControlPlane to apiVersion: controlplane.cluster.x-k8s.io/v1beta2
  3. migrate KubeadmControlPlane's kubeletExtraArgs to slices (as needed by v1beta2) and apply

result:
for some clusters, we then receive the error message:

KubeadmControlPlane.controlplane.cluster.x-k8s.io "davinci-1" is invalid: [spec.kubeadmConfigSpec.initConfiguration.nodeRegistration.kubeletExtraArgs: Invalid value: "array": kubeletExtraArgs name must be unique, spec.kubeadmConfigSpec.joinConfiguration.nodeRegistration.kubeletExtraArgs: Invalid value: "array": kubeletExtraArgs name must be unique]

What did you expect to happen?

The mentioned kubeletExtraArgs follow the new syntax of being an array. We expect a successful apply.

Cluster API version

v1.11.4

Kubernetes version

v1.33.4
(both, management and managed cluster)

Anything else you would like to add?

KubeadmControlPlane CRD is up2date:

> k explain KubeadmControlPlane.spec.kubeadmConfigSpec.initConfiguration.nodeRegistration.kubeletExtraArgs
GROUP:      controlplane.cluster.x-k8s.io
KIND:       KubeadmControlPlane
VERSION:    v1beta2

FIELD: kubeletExtraArgs <[]Object>

KubeadmControlPlane Object is up2date too, and currently set kubeletExtraArgs:

> k get kubeadmcontrolplane davinci-1 -o yaml | yq '.apiVersion,.spec.kubeadmConfigSpec.initConfiguration.nodeRegistration.kubeletExtraArgs'
controlplane.cluster.x-k8s.io/v1beta2
- name: cloud-provider
  value: external
- name: container-log-max-files
  value: "5"
- name: container-log-max-size
  value: 10Mi
- name: event-qps
  value: "0"
- name: feature-gates
  value: UserNamespacesSupport=true
- name: node-ip
  value: '{{ ds.meta_data.local_ipv4  }}'
- name: protect-kernel-defaults
  value: "true"
- name: tls-cipher-suites
  value: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256

Label(s) to be applied

/kind bug
/area provider/control-plane-kubeadm

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/provider/control-plane-kubeadmIssues or PRs related to KCPkind/bugCategorizes issue or PR as related to a bug.needs-priorityIndicates an issue lacks a `priority/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions