github kubernetes-sigs/cluster-api v1.4.0-beta.1

latest releases: v1.9.0-beta.0, v1.8.5, v1.7.8...
pre-release20 months ago

🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.

Highlights

Some of the hightlights in this release are:

  • Support for KCP remediation during cluster provisioning
  • Support for Variable Discovery through external patches
  • Support for Label Sync Between Machines and underlying Kubernetes Nodes
  • Support for In-place propagation of changes in KCP, MachineDeployments and MachineSets

Cluster API v1.3 compared to v1.4

See the Cluster-API book for an overview over relevant changes between Cluster API v1.3 and v1.4 for maintainers of providers and consumers of our Go API.

Note: An issue with v1.4.0-beta.0 resulted in clusterctl not working on some systems. As a result this release superseded v1.4.0-beta.0 after a short period.

More details about the release

⚠️ RELEASE CANDIDATE RELEASE NOTES ⚠️

Changes since v1.3.0-rc.0


📝 Proposals

  • update autoscaling from zero proposal (#8036)
  • Amend KCP proposal with remediation while provisioning the CP (#7855)

⚠️ Breaking ChangesNote: An issue with v1.3.4 resulted in clusterctl not working on some systems. As a result this release superseded v1.3.4 after a short period. These notes show changes since v1.3.3 to give a more complete picture of updates over time.

  • in-place propagation support for KCP (#8057)
  • in-place propagation from MS to InfraMachine and BootstrapConfig (#8060)
  • Add filter to associate variables with specific patches (#8128)
  • in-place propagation from MD to MS (#8110)
  • in-place propagation from MS to Machines (#8111)
  • Stop supporting CRDs with invalid names (#8041)
  • Refactor clusterctl alpha rollout (#7988)
  • Remove clusterctl restore command and Restore function from Client interface (#7945)
  • Bump controller-runtime 0.13.1=>0.14.1 (#7906)
  • KCP: block upgrade to versions with old registry, improve registry handling (#7856)
  • Drop ClusterTopologyManagedFieldsAnnotation field from v1beta1 (#7845)
  • Removing deprecated (--disable-no-echo) flag and renaming docs (#7837)
  • Removing deprecated NewServer function (#7844)
  • Removing deprecated --list-images flag on init command (#7838)
  • Removing CloneTemplate and CloneTemplateInput (#7839)
  • Removing deprecated healthcheck condition (#7836)
  • Use Kubernetes 1.26 in Quick Start docs and CAPD. (#7799)
  • Use consistent naming for API constants (#7618)

✨ New Features

  • Handle variable definition conflicts for external variables (#8107)
  • docs: fix command-line-tools links in book (#8162)
  • Add support for KCP remediation during cluster provisioning (#7963)
  • Implement Reconcile mode for ClusterResourceSet (#7497)
  • Add discoverVariables runtime hook to ClusterClass reconcile loop (#8006)
  • Update coredns corefile migration to v1.0.19 (#8074)
  • add response metrics for RuntimeSDK hook client (#7956)
  • Add more reviewers and maintainers (#7996)
  • Add NodeRegistrationOptions.ImagePullPolicy Support (#7772)
  • Add KCP feature to clusterctl alpha rollout (#6858)
  • e2e Test: Ensure OwnerRefs are consistently reconciled (#7606)
  • Add Node managed labels support (#7173)
  • Managed Cluster should set labels and annotations on ControlPlane and MDs (#7917)
  • ClusterClass patches: Allow matching all MachineDeploymentClasses (#6930)
  • Add output flag, change printYaml function signature (#7828)
  • add explicit securitycontexts to controllers (#7831)
  • Adds a verify script that run trivy scanner on container images (#7604)
  • Make control plane port configurable in CAPD (#7548)
  • tilt: add podman support (#7810)
  • Add support for raw template URL in clusterctl generate yaml (#7371)
  • Add support for CoxEdge provider (#7770)
  • clusterctl: add command groups (#7769)
  • Improve clusterctl upgrade syntax. Don't require namespace (#7376)
  • add Settings support to RuntimeExtensions (#7562)
  • Adds a make target to generate all the release manifests (#7629)
  • [kcp] Make kcp.skipPhases field mutable (#7646)
  • Get Ginkgo version in Makefile from go.mod (#7503)
  • Move lowestNonZeroRetryAfterSeconds to util (#7542)
  • Removed the writing of os.environment by passing the 'env' parameter in cmd_button (#7574)
  • Introduce additional linters & bump golangci-lint to 1.50.1 (#7581)
  • Update support policy (#7549)
  • MachinePool annotation for externally managed autoscaler (#7107)
  • add kubekey k3s boostrap and control plane provider (#7528)

🐛 Bug Fixes

  • Replace fixed build uid with command (#8223)
  • Fix release-binary for static linking (#8219)
  • Fix git config in release-binary builds (#8199)
  • MD controller: fix nil pointer when OnDelete policy is used (#8184)
  • Fix flaky TestServerSideApplyWithDefaulting test (#8166)
  • Requeue health check during the creation of a new cluster accessor (#8122)
  • ClusterClass: run dry-run on original and modified object (#8139)
  • KCP: fix rollout after upgrade (#8125)
  • uplift golang and x/net (#8126)
  • uplift helm dependency (#8089)
  • KCP: Allow unsetting fields if their child fields are mutable (#8037)
  • Added nodeVolumeDetachTimeout to CP machine (#8066)
  • ClusterCacheTracker: fix panic in error creation (#8062)
  • Fix unit test coverage in KubeadmConfig (#7678)
  • Fix spelling of requeuing across files (#8024)
  • Update comment describing controlPlaneInitialized (#8005)
  • Remove exact path match from walkTemplate test (#8019)
  • Fix version calculation in make lint (#8003)
  • Migration github repository cluster-api-provider-outscale from organization outscale-dev to outscale (#7998)
  • Use tenancy as filter in ownerReference test (#7976)
  • bugfix write-to flag should only run filepath.Clean when the output file is not "" or - (#7972)
  • Fix secret selection logic for ownerRef test (#7973)
  • ClusterClass: remove empty hook entries from annotation (#7930)
  • test/e2e: don't restart the conformance test container after ginkgo exits (#7946)
  • Allow using the --from flag to get a template from a github release (#7453)
  • test/e2e: Fix cluster cleanup in self-hosted test (#7928)
  • Revert: CAPD: only ignore necessary kubeadm preflight errors (#7878)
  • test/e2e: fix CoreDNS readiness validation, misc improvements (#7843)
  • Fix to enable bootstrap secret rotation if the secret itself missing (#7717)
  • Add deterministic prefix and suffix to label hash (#7763)
  • Validate MachineDeploymentTopology.Name to be valid label value (#7759)
  • Add name hashing for long MS and KCP names (#7711)
  • clusterctl: fix goproxy to also return versions for major > 1 (#7709)
  • Fix flakiness in MD controller test (#7668)
  • Remove inaccurate comment on KCP test (#7662)
  • Fix adoption KubeadmControlPlane owned secrets (#7592)
  • Fix Machine adoption for KCP/MachineSet-owned Machines (#7591)
  • Fix bug in kubeadmconfig adoption (#7623)
  • Fix kubeadmconfig bootstrapsecret ownerRef reconciliation (#7587)
  • Fix adopting ClusterResourceSet resource by CRS when already applied (#7590)
  • Add CleanupAndWait call for flaky ClusterClass test (#7589)
  • test/e2e: fix ClusterClass changes flake (#7579)
  • Add finalizer reconcile for Topology MachineSets and MachineDeployments (#7536)

🌱 Others

  • Add DiscoverVariables hook implementation for test extension (#8026)
  • Bump to controller-runtime v0.14.5 (#8213)
  • fix incorrect assertion (#8206)
  • Clarify condition message for unreconciled clusterclass (#8202)
  • Remove omitempty tag from definitionsConflict (#8201)
  • Weaken ClusterClass webhook variable validation on update (#8153)
  • ClusterClass: extend engine unit tests to cover applying builtin variables (#8183)
  • test/extension: push to staging registry (#8181)
  • Bump github.com/coredns/corefile-migration from 1.0.19 to 1.0.20 (#8193)
  • Bump github.com/gobuffalo/flect from 1.0.0 to 1.0.2 (#8195)
  • Bump golang.org/x/oauth2 from 0.0.0-20221014153046-6fdb5e3db783 to 0.5.0 (#8194)
  • Bump actions/cache from 3.2.5 to 3.2.6 (#8191)
  • Bump github.com/onsi/ginkgo/v2 from 2.8.1 to 2.8.4 (#8143)
  • CAPD: drop kubectl from image (#8182)
  • hack: add support for date ranges to notes.go script (#8094)
  • CAPD: add env var to allow using remote Docker engines (#8177)
  • Set fail-fast: false for weekly md link check (#8161)
  • align CAPD docker run flags with kind (#8157)
  • Use errors.Is to check for a specific error (#8130)
  • Make Cluster webhook less strict for out of date ClusterClasses (#8136)
  • Add envtest unit tests for node label sync (#8055)
  • Move machine controller tests to envtest, drop disableNodeLabelSync (#8044)
  • Bump github.com/onsi/gomega from 1.26.0 to 1.27.1 (#8144)
  • test/framework: ensure ApplyClusterTemplateAndWait always returns a cluster (#8142)
  • test/e2e: disable rollout check for ClusterClass-based cluster in clusterctl ugprade tests II (#8140)
  • test/e2e: disable rollout check for ClusterClass-based cluster in clusterctl upgrade test (#8138)
  • ClusterClass: Allow fine-granular control of MachineDeployment upgrades (#8102)
  • Remove generation check for clusterclass to fix e2e test (#8133)
  • Default and Validate Cluster variables based on ClusterClass status (#8076)
  • improve logging during Machine deletion (#8108)
  • Deprecate v1alpha3 & v1alpha4 (#8071)
  • Bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.1 (#8104)
  • Bump actions/cache from 3.2.4 to 3.2.5 (#8103)
  • Enable ginkgolinter len assertion check and fix findings (#8087)
  • Add DefinitionFrom field to ClusterVariable (#8031)
  • CAPD: reduce noisy error logs during machine reconciliation (#8090)
  • ClusterClass: also consider MD unavailableReplicas for rollout (#8063)
  • test/e2e: Add v1.0=>main clusterctl upgrade test (#8072)
  • Add ClusterClass generation check to Cluster Topology reconciler (#8023)
  • MD: improve replica defaulting for autoscaler (#7990)
  • Add clusterclass validation to topology reconciler (#7954)
  • ClusterClass: catch panics when applying patches (#8067)
  • Bump golangci-lint (v1.51.1) and enable some ginkgolinter checks (#8058)
  • test/e2e use informer to stream pod logs (#7935)
  • Bump controller-tools to v0.11.3 (#8056)
  • envtest: add env var to allow writing envtest kubeconfig (#8042)
  • MachinePool: automatically bump apiVersions like in our other controllers (#7995)
  • Make 'inline' a reserved name for patches (#8025)
  • Update golangci-lint to v1.51.0 (#8046)
  • Add introduction.png image (#8043)
  • Add ClusterClass variables to status on reconcile (#7991)
  • remove KCP as a valid resource type for rollback (#8035)
  • make ensure scripts fail if GOPATH/bin not in PATH (#8017)
  • Bump github.com/onsi/gomega from 1.25.0 to 1.26.0 (#8028)
  • Bump github.com/onsi/ginkgo/v2 from 2.7.0 to 2.8.0 (#8029)
  • Bump actions/cache from 3.2.3 to 3.2.4 (#8027)
  • Bump to controller-tools v0.11.2 (#8020)
  • Nit on KCP proposal (#8018)
  • Bump to CR v0.14.2 (#8014)
  • Add API types for DiscoverVariables hook (#7986)
  • Add observedGeneration to ClusterClass status (#7987)
  • Add variable discovery to topology mutation proposal (#7932)
  • Replace deprecated string set through generic set (#8004)
  • actions: use go version from Makefile (#8002)
  • update const strings for util.secret (#7997)
  • Allow Machines in unreachable Clusters to do initial reconciliation (#7719)
  • Remove PopulateDefaultsMachineDeployment and fix how MD controller set revision (#7992)
  • Bump to Go 1.19.5 (#7981)
  • Bump github.com/spf13/viper from 1.14.0 to 1.15.0 (#7979)
  • Bump github.com/onsi/gomega from 1.24.2 to 1.25.0 (#7980)
  • Bump github.com/fatih/color from 1.13.0 to 1.14.1 (#7978)
  • Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 (#7977)
  • Improve tilt-prepare for testing providers outside of the CAPI repository (#7968)
  • add comment to disableNodeLabelSync (#7965)
  • Improve quick-start test supporting scenarios with more than one infrastructure provider (#7969)
  • Run weekly markdown check against all supported branches (#7960)
  • Remove redirection handling in repository_github client (#7951)
  • logging: add removal note, cleanup no-op code (#7955)
  • Fix sha of kubebuilder-release-tools GitHub action (#7953)
  • ClusterClass proposal: Clean up outdated implementation details by linking the book's page (#7790)
  • Add configurable etcd call timeout (#7841)
  • drop the draft release notes step from github workflow (#7893)
  • Update visualizer chart to v1.1.0 (#7857)
  • ClusterClass & test/framework: consider replicas for control plane readiness (#7914)
  • improves the existing capi metrics (#7886)
  • Update cert-manager to v1.11.0 (#7916)
  • setup Trivy scanning for supported release branches (#7874)
  • Bump kubebuilder-release-tools to v0.3.0, start running it on cherry-pick PRs (#7908)
  • Bump controller-tools 0.10.0=>0.11.1 (#7907)
  • test/e2e: Cleanup test files & update doc (#7825)
  • test/e2e: run clusterctl v0.4=>main test with v1.23.13 (#7899)
  • Update versions doc adding Kubernetes 1.26 (#7801)
  • test/e2e: increase Ginkgo poll progress after to 1h (#7888)
  • Added WatchDeploymentLogsByLabelSelector function (#7039)
  • Bump github.com/onsi/ginkgo/v2 from 2.6.1 to 2.7.0 (#7883)
  • Bump github.com/gobuffalo/flect from 0.3.0 to 1.0.0 (#7885)
  • Bump golang.org/x/text from 0.5.0 to 0.6.0 (#7884)
  • Bump actions/cache from 3.2.2 to 3.2.3 (#7882)
  • Bump actions/checkout from 3.2.0 to 3.3.0 (#7881)
  • Small improvement to the backport policy (#7823)
  • Fix verify boilerplate on mac (#7866)
  • tilt: remove securityContext for live_update (#7846)
  • CAPD: only ignore necessary kubeadm preflight errors (#7842)
  • Update conversion-gen version (v0.25.0 -> v0.26.0) (#7847)
  • Update kubebuilder envtest (1.25.2 -> 1.26.0) (#7835)
  • go.mod: Update github.com/google/go-github to v48.2.0 (#7830)
  • Bump github.com/valyala/fastjson from 1.6.3 to 1.6.4 (#7827)
  • Bump actions/cache from 3.2.1 to 3.2.2 (#7826)
  • Remove clusterctl backup command and Backup function from Client interface (#7752)
  • Add failing/flaking test issue templates to the repository (#7778)
  • Bump actions/cache from 3.0.11 to 3.2.1 (#7805)
  • Cluster topology: fix comment about MD replicas defaulting (#7779)
  • Tilt must show templates for enabled providers only (#7724)
  • New Filter NeedsRollout to determine if a machine needs rollout. (#7571)
  • Add category to DockerClusterTemplate (#7798)
  • Cleanup special handling for tilt_modules folder (#7774)
  • Bump helm and containerd in hack/tools go module (#7788)
  • Bump to Go 1.19.4 (#7791)
  • Bump github.com/onsi/gomega from 1.24.1 to 1.24.2 (#7782)
  • Bump actions/setup-go from 3.4.0 to 3.5.0 (#7781)
  • update golang.org//x/net to v0.4.0 (#7780)
  • Remove fix RBAC from component management in clusterctl (#7339)
  • Fix verify-shellcheck script and fix findings (#7755)
  • Bump actions/checkout from 3.1.0 to 3.2.0 (#7733)
  • Bump shellcheck version (0.8.0 -> 0.9.0) (#7737)
  • Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0 (#7735)
  • KCP should avoid to reconcile certificates too early (#7727)
  • Add explicit length check for cluster and md names (#7712)
  • Update cert-manager to v1.10.1 (#7705)
  • make promote-images should also work if the user uses a SSH style URL (#7715)
  • lint: enable revive if-return check and fix findings (#7682)
  • Bump sprig and golang/x/text (#7701)
  • prepare main branch for v1.4 development (#7692)
  • Bump actions/setup-go from 3.3.1 to 3.4.0 (#7689)
  • Bump softprops/action-gh-release from 0.1.14 to 0.1.15 (#7688)
  • e2e: add init versions for providers (#7628)
  • Change test-extension pull policy to IfNotPresent (#7666)
  • Bump github.com/coredns/corefile-migration (#7652)
  • Ensure infra and bootstrap objects are owned by Machines (#7593)
  • Bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0 (#7651)
  • Bump github.com/spf13/viper from 1.13.0 to 1.14.0 (#7650)
  • Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#7649)
  • Automate go dependency bumps (except CR/k8s.io) (#7632)
  • Use latest kind images for CAPD (#7621)
  • KCP: remove unused code (#7598)
  • MD reconciler: improve integration test (#7596)
  • Fix an error message of the failure domain field in the Machine controller (#7583)
  • test/e2e: bump ginkgo binary to v2.5.0 (#7580)
  • self-hosted e2e should check managed fields (#7513)
  • add clusterctl label to providers deployed with tilt (#7551)
  • Add Jont828 to clusterctl reviewers (#7491)
  • Update e2e components to v1.2.5 (#7550)

📖 Additionally, there have been 56 contributions to our documentation and book. (#8220, #8088, #8189, #8145, #8169, #8168, #8165, #8134, #8148, #8156, #8118, #8117, #8073, #8079, #8015, #8034, #8030, #7902, #7983, #7967, #7566, #7950, #7922, #7943, #7933, #7934, #7912, #7802, #7894, #7867, #7546, #7822, #7817, #7814, #7803, #7706, #7767, #7726, #7718, #7720, #7714, #7698, #7696, #7681, #7667, #7331, #7675, #7595, #7645, #7605, #7561, #7570, #7526, #7499, #7444, #7545)


Thanks to all our contributors! 😊

Don't miss a new cluster-api release

NewReleases is sending notifications on new releases.