Skip to content

kubeadm config uses deprecated v1beta3 API, breaking builds for Kubernetes 1.36+ #2153

Description

@cleman95

What happened?

Building images for Kubernetes 1.36+ fails during the kubeadm config images pull step because the kubeadm config template uses kubeadm.k8s.io/v1beta3, which is removed starting with kubeadm 1.36.

Error:

error: your configuration file uses an old API spec: "kubeadm.k8s.io/v1beta3" (kind: "ClusterConfiguration"). 
Please use kubeadm v1.36 instead and run kubeadm config migrate

What did you expect to happen?

Image builds for Kubernetes 1.36+ should succeed.

How to reproduce

Build any CAPI image with kubernetes_semver >= v1.36.0.

Proposed fix

Bump the kubeadm config template from v1beta3 to v1beta4 in images/capi/ansible/roles/kubernetes/templates/etc/kubeadm.yml.

v1beta4 has been available since kubeadm 1.29, so all currently supported Kubernetes versions (1.29–1.37) accept it. The change is a simple API version bump — no schema changes are needed between v1beta3 and v1beta4 for the fields used in this template.

Workaround

We are currently working around this by copying a v1beta4 template into the role templates directory before the Ansible run and overriding kubeadm_template for versions >= 1.36.

Related: #2151

/kind bug
/area capi

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions