Skip to content

Releases: kubernetes-sigs/cluster-api

v0.3.21

15 Jul 22:48
7c11298
Compare
Choose a tag to compare

Changes since v0.3.20

⚠️ Breaking Changes

  • generate capk kubadm config files under /run/kubeadm/ instead of /tmp (#4884)

🐛 Bug Fixes

  • clusterctl: use newest release series of same contract (#4923)
  • Fix the observedGeneration update (#4920)

Thanks to all our contributors! 😊

v0.3.20

30 Jun 23:01
ea9dc4b
Compare
Choose a tag to compare

Changes since v0.3.19

🐛 Bug Fixes

  • Use metadata.yaml in github repo to fetch latest release for older contracts (#4867)

🌱 Others

  • Add v1alpha4 to metadata.yaml (#4871)
  • include deamonsets in list images in clusterctl - 0.3.x (#4859)

Thanks to all our contributors! 😊

v0.4.0

24 Jun 21:57
7f879be
Compare
Choose a tag to compare

v0.4.0, The stability focused release

Welcome to v0.4 / v1alpha4. This release is a major step forward in our API and code stability. There are a number of breaking changes in this release and a large list of bug fixes.

🔦 Highlights

  • Our test matrix, for both end-to-end and integration, has been greatly extended in this release.
  • KubeadmControlPlane now supports automatic remediation (when setup with MachineHealthCheck), extended mutable spec fields, and the ability to customize the rollout strategy.
  • MachineHealthCheck is now more flexible, with new capabilities such as external remediation and skipping remediation on paused machines.
  • Externally managed infrastructure: infrastructure provider can give the ability to external systems to reconcile their own InfraCluster objects (e.g. AzureCluster, AWSCluster, etc).
  • Clusterctl has been improved, with a new generate command to replace config, an option to view optional template variables and their defaults, and a new alpha rollout command.

Upgrading from v0.3

Users

To upgrade from a running management cluster based on v0.3.x and v1alpha3 APIs, follow these instruction in the book.

Providers

For all providers or developers implementing Cluster API, please follow the dedicated instructions in the book.

📝 Proposals

  • Cluster API Provider Operator (#3833)
  • Insulate users from kubeadm API version changes (#4170)
  • Add support for infrastructure cluster resources to be managed externally (#4135)
  • Windows Support (#3616)
  • Replace ExternalRemdiationTemplate with RemediationTemplate in MHC proposal (#4528)
  • Update KCP proposal disambiguating healthcheck (#4093)
  • Update KCP proposal with scale in (#3857)
  • Update spot instances proposal with interruptible label setting (#3817)

⚠️ Breaking Changes

  • Update Go to 1.16
  • Update Kind to v0.11.x (#3815)
  • Upgrade cert-manager to v1.1.0 (#4013)
  • The management cluster minimum Kubernetes version is v1.19.1 (#3746)
  • Use separate service accounts for each manager (#4245)
  • Remove kube-rbac-proxy and expose metrics on localhost:8080 (#4640)
  • MachineDeployment MaxUnavailable and MaxSurge values: drop usage of deprecated GetValueFromIntOrPercent in favour of GetScaledValueFromIntOrPercent (#4532)
    small impact: Only values allowed are of type Int or Strings with an integer and percentage symbol e.g 5%.
  • MachineHealthCheck: node startup timeout now requires control plane initialized and cluster infrastructure readiness before starting the countdown (#3752)
  • MachineDeployment, MachineSet, and MachinePool Machine's template metadata now only exposes labels and annotations (#4363)
    impact: The metadata section for templated objects (for example MachineDeployment's spec.template.metadata) was exposing non-functional fields like name, generateName, namespace, or ownerReferences; these fields weren't used anywhere in the codebase and have been removed.
  • Align flag names with upstream Kubernetes components (#3934)
    impact: --metrics-addr ==> --metrics-bind-addr
    --leader-election ==> --leader-elect
  • Run mutating, validating, and conversion webhooks with managers (#3985)
    impact: Previously webhooks were running in a different namespace from the manager (capi-webhook-system). To simplify our deployment model, our published images and binaries now run the webhook server by default.

Clusterctl

  • Add --raw flag for clusterctl generate provider subcommand (#4768)
  • Use native zsh completion (#4113)
  • When the build is on v1alpha4 should not upgrade to v1alpha3 contract (#4202)
  • The infrastructure provider DigitaloOcean was renamed to digitalocean (previously do) (#3809)
  • Deprecate clusterctl config in favor of clusterctl generate (#4584)

Kubeadm Control Plane

  • Move spec.nodeDrainTimeout to spec.machineTemplate.nodeDrainTimeout (#4815)
  • Rename spec.upgradeAfter to spec.rolloutAfter (#4535)
  • Stop updating and using Kubeadm's ClusterStatus with Kubernetes v1.22 (#4643)
  • Support metadata for machines under spec.machineTemplate.metadata and propagate to all templated resources (#4644)

Kubeadm Bootstrapper

  • Remove deprecated Machine spec.bootstrap.data (#4000)
  • Default Kubelet cgroupDriver to systemd for Kubernetes >= 1.21 (#4236)
  • Generate kubeadm config files under /run/kubeadm instead of /tmp (#3776)

Experimental Features

  • Change MachinePool experiment API group to cluster.x-k8s.io (#4574)
  • Remove unused MachinePool spec.strategy (#3990)

⚠️ 👩‍💻 Breaking Changes for developers

  • Update Controller Runtime to v0.9.x (#4752)
  • Introduce the sigs.k8s.io/cluster-api/test Go Module (#4713)
    moderate impact: importing the test e2e framework or the docker infrastructure provider (CAPD) now requires a new go module dependency and a replace directive for Cluster API in your go.mod.
  • Move envtest setup under internal/envtest (#4698)
    small impact: the package is not functional if used outside of the Cluster API repository.
  • Remove helpers.NewFakeClientWithScheme (#4690)
    small impact: The function was previously used with the Controller Runtime fake client which did not initialize objects' ResourceVersion, this has been fixed upstream and now removed.
  • Accept options in remote.NewClusterCacheTracker (#4693)
    small impact: This function was accepting positional arguments which have now been replaced by an option-based struct.
  • Remove RequeueAfterError (#3929)
  • Unexport MachineHealthCheck patchUnhealthyTargets method (#4579)
  • Remove Kubeadm DNS type field from types (#4547, #4516)
    impact: This field was always defaulted to coreDNS and was immutable.
  • Remove ClusterConfiguration.UseHyperKubeImage from v1alpha4 (#4545)
  • Clean up deprecated variables/functions in v1alpha4 (#4078)
  • Remove the example provider (#3992)
  • Move version package from cmd/version to version (#4070)
  • Add GVK object validation to patch helper (#4212)
    minimal impact: This change adds extra validation to the helper library, a patch helper created with a specific GVK can only be used with that GVK throughout its lifetime.
  • Set user agent and timeout for remote cluster client (#4060)
  • Remove deprecated DeleteNodeAnnotation annotation (#3955)
  • Add required coordination/leases RBAC for new default Controller Runtime manager leader election method (#3756)
    small impact: RBAC permissions have been updated for all manager.
  • Add sentinel file to signal successful bootstrapping (#4084)

Test Framework

  • Add MachinePool to log collector (#4575)
  • Remove deprecated functions (#3741, #3742)
  • Resolve CNI_RESOURCES without using env vars (#3896)
  • Wait for all the machine to exist again after remediation (#4415)
  • Add result parameter to ApplyClusterTemplateAndWait (#4125)
  • Use Kind's default network in CAPD (#4002)

Clusterctl library

  • Make clusterctl support for cert-manager more flexible (#4748)
  • Add --raw flag for clusterctl generate provider subcommand (#4768)
  • Adapt clusterctl to webhook deployed with managers (#4297)
  • Rename clusterctl client/inventory.GetDefaultProvider<> to GetProvider<> (#4696)
  • Remove clusterctl --watching-namespace (#4666)
  • Remove clusterctl management groups (#4668)
  • Remove clusterctl delete --namespace flag (#4674)
  • Block execution when used with v1alpha3 management clusters (#4199)
  • Deprecate Provider.WatchedNamespace (#4694)
  • Remove embedded metadata from clusterctl (#4033)
  • Remove hard code manifest version and hash (#3918)

✨ New Features

  • Add Cluster API Provider Nested (#4792, #4793)
  • Add Cluster API Provider GCP (#4001)
  • CAPD: Add ipv6 support (#4558)
  • Add watch label to allow multiple manager instances (#4119)
  • Add externally managed annotation and predicate (#4303)
  • Clusterctl: Show required and defaults in clusterctl generate cluster <name> --list-variables (#4645)
  • Clusterctl: alpha rollout pause/resume/undo/restart for MachineDeployments (#4054, #4098, #3838)
  • KubeadmControlPlane: Make NTP settings mutable in webhook validations (#4798)
  • KubeadmControlPlane: Add rollout strategy support for KCP (#4073)
  • KubeadmControlPlane: Make KCP Spec mutable (#3994)
  • KubeadmControlPlane: KCP remediation (#3956)
  • KubeadmControlPlane: Mark specific KCP machines with delete annotation for scaling down (#3948)
  • MachineDeployment: Support deletePolicy (#3773)
  • MachineDeployment: Add support for OnDelete rollout strategy (#4346)
  • MachineDeployment: Add annotation support to util.CloneTemplate to pass them down from templates to machines (#4568)
  • MachineHealthCheck: Allow users to disable NodeStartupTimeout (#4471)
  • MachineHealthCheck: Add support to skip Machine remediation, and respect paused Machines (#4168)
  • MachineHealthCheck: Add remediationsAllowed field to status (#3884)
  • MachineHealthCheck: Support external remediation (#3882)
  • MachineHealthCheck: Adds machine health check conditions to Machine Ready condition (#3705)
  • MachineHealthCheck: Support range of values for unhealthy machines in machine health check spec (#4128)
  • Label interruptible nodes (#3668)

🐛 Bug Fixes

  • Cluster: Include MachinePool objects in descendant count when deleting a Cluster (#4295)
  • Machine: status.phase should be provisioned when there is a ProviderID and no Node yet (#4787)
  • Machine: Add ability for the nodeToMachines mapper to filter by Cluster's name and namespace (#4513)
  • Machine: Node deletion should check the cause of the error (#3966)
  • MachineDeployment: ...
Read more

v0.4.0-rc.0

22 Jun 19:58
048eebc
Compare
Choose a tag to compare
v0.4.0-rc.0 Pre-release
Pre-release

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

v0.4.0-beta.1

16 Jun 17:40
59c620c
Compare
Choose a tag to compare
v0.4.0-beta.1 Pre-release
Pre-release

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

v0.3.19

09 Jun 18:35
665d566
Compare
Choose a tag to compare

Changes since v0.3.18

🐛 Bug Fixes

  • unmarshal data to a pointer when parsing kubetest config (#4776)

Thanks to all our contributors! 😊

v0.4.0-beta.0

08 Jun 23:32
f13f7bc
Compare
Choose a tag to compare
v0.4.0-beta.0 Pre-release
Pre-release

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

v0.3.18

08 Jun 21:43
2ac7d74
Compare
Choose a tag to compare

Changes since v0.3.17

🐛 Bug Fixes

  • CAPD: Fix for Linux security update to not set conntrack sysctls (#4728)

🌱 Others

  • Backport of conformance updates for Kubernetes 1.22 (#4766)
  • Bump github.com/coredns/corefile-migration from 1.0.11 to 1.0.12 (#4743)

Thanks to all our contributors! 😊

v0.3.17

27 May 19:55
60a913c
Compare
Choose a tag to compare

Changes since v0.3.16

⚠️ Breaking Changes

  • KCP: Stop updating and using Kubeadm's ClusterStatus with Kubernetes v1.22 (#4485)
    All the tools built on top of CAPI should do the same in preparation for Kubernetes v1.22

🐛 Bug Fixes

  • Allow KCP remediation when the etcd member being remediated is missing (#4591)
  • Fix clusterctl config cluster regression preventing to run the command before the Kubernetes cluster exists (#4578)
  • Fix clusterctl config cluster regression preventing to run the command on empty clusters (#4560)

🌱 Others

  • Upgrade kube-rbac-proxy to v0.8.0 (#4639)
  • Update KCP remediation to support > 1 replicas (#4595)
  • Include metadata for the CAPI v0.3 releases (#4589)
  • Update Azure Provider Prerequisites link in quick start (#4539)

Thanks to all our contributors! 😊

v0.3.16

16 Apr 14:26
6d7649f
Compare
Choose a tag to compare

Changes since v0.3.15

🐛 Bug Fixes

  • KubeadmControlPlane: Fix a CoreDNS upgrade from v1.20 to v1.21 (#4481)
  • KubeadmControlPlane: maxSurge field to be mutable (#4438)
  • Make manifests use cert-manager.io/v1alpha2 (#4411)
  • Adds a test helper to all mutating webhooks to ensure defaulting passes validation (#4452)

Thanks to all our contributors! 😊