Skip to content

Releases: kubernetes-sigs/cluster-api

v0.3.8

31 Jul 21:00
9e4e82a
Compare
Choose a tag to compare

Changes since v0.3.7

🐛 Bug Fixes

  • ClusterResourceSetBinding is now deleted when the assciated cluster is deleted (#3366)
  • KubeadmControlPlane: Deletion reconciliation should not use RequeueAfterError (#3386)
  • KubeadmControlPlane: Fix rollout detection logic when ClusterConfiguration is nil (#3356)
  • KubeadmControlPlane: rollout maintains even distribution of failure domains (#3405)

📖 Documentation

  • Add note about cluster name validation for azure (#3423)
  • Escape quotes in AZURE_JSON_B64 (#3414)
  • Add CRD relationships diagrams (#3267)
  • Update CAEP template with requirements and security model (#3295)
  • Improve clusterctl move doc (#3355)
  • Update CAPZ quickstart variables to include new AZURE_JSON_B64 secret (#3303)
  • Add details about lifecycle/active in the documentation (#3347)
  • Improve HealthCheck docs (#3305)

🌱 Others

  • Promote CecileRobertMichon as maintainer (#3314)
  • Add watch for ClusterResourceSet resources (#3410)
  • Add generate yaml subcommand to clusterctl (#3406)
  • Add a make target to generate test coverage report (#3310)
  • Update to Go 1.13.14 (#3431)
  • Add v0.7 to the embedded metadata (#3412)
  • CRS should return errors when trying to apply custom resources (#3402)
  • Fix shellcheck install script (#3409)
  • Fix e2e testing race condition when running ClusterResourceSetBinding (#3394)
  • Add deprecation notice for RequeueAfterError (#3387)
  • Add exp/util MachinePool helpers (#3392)
  • Wrap error so as to not lose context (#3411)
  • Remove RequeueAfterError usage from reconcileHealth (#3388)
  • Log when and why a machine is marked for remediation (#3385)
  • Fix logging comparison between conditions patch (#3382)
  • Update controller-runtime to v0.5.9 (#3381)
  • Add cmp.Diff to condition patch conflicts (#3377)
  • Only look at Group and Kind for GetOwnerCluster (#3374)
  • Add version ldflags to docker-build make targets (#3369)
  • Fix tilt with envsubst (#3361, #3378)
  • Add MachinePool feature gate defaults to CABPK (#3362)
  • Add CAPD control plane toleration (#3320)
  • Add machine filters tests (#3334)
  • Add test for UpdateCoreDNS (#3333)
  • Fix typo in components flags feature gates (ClusterResourceSet) (#3341)
  • Support a list of maps in tilt-settings (#3346)

Thanks to all our contributors! 😊

v0.3.7

14 Jul 17:31
846ca08
Compare
Choose a tag to compare

Changes since v0.3.6

📢 Starting with this release, clusterctl is required to install published components files

Update to the latest released version of clusterctl before to install or upgrade component files, kubectl apply individual yaml files is not supported or suggested. Starting with this release (v0.3.7), clusterctl supports extended variable template substitutions, if you encounter any issues related to templating or environment variables update to the latest version or file an issue.

⚠️ Breaking Changes

  • clusterctl: log.Log is now exposed correctly as logr.Logger (#3290) — Impact: Clients using the logr methods should have no impact, other clients should switch to this interface instead of the old delegating logger one which exposed internal bits.
  • Use cache tracker to get a client for remote clusters (#3154) — Impact: This PR removed WatchInput.CacheOptions when creating a new watcher on a remote cluster because it would only be respected once. If you need to set custom variables (e.g. scheme or rest mapper) for the cache, they're now inherited from the Manager's passed in when creating the ClusterCacheTracker.

✨ New Features

  • Introduce ClusterResourceSet (#3107, #3013) — ClusterResourceSet (CRS) is a new experimental feature built into Cluster API, it can be enabled by supplying --feature-gates="ClusterResourceSet=true" to the manager and webhook deployment flags.
  • KubeadmControlPlane: Users should now be able to mutate node registration options (#3324) — Note: If you're modifying NodeRegistrationOptions, make sure to supply the same information both under InitConfiguration and JoinConfiguration.
  • KubeadmControlPlane: Users should now be able to disable kube-proxy management in KCP using controlplane.cluster.x-k8s.io/skip-kube-proxy annotation (#3319)
  • ‍KubeadmControlPlane: Users should now be able to disable CoreDNS management using controlplane.cluster.x-k8s.io/skip-coredns annotation (#3023)
  • KubeadmControlPlane: Regenerate kubeconfig secrets before the client certificates expire (#3140)
  • KubeadmControlPlane: Support adopting existing Machines (#2489)
  • clusterctl: Support for variable defaulting with envsubst (#3270) — A new set of features have been added to clusterctl default simple templating engine, we now support more than just simple substitutions, see https://cluster-api.sigs.k8s.io/clusterctl/provider-contract.html#variables for more information about variable substitution.
  • clusterctl: Support pluggable templating by adding an interface (#3115)
  • clusterctl: Add support for -o yaml in clusterctl config repositories command (#3041)
  • MachinePool: Add support for FailureDomains (#3157)
  • MachinePool: Add support for kubectl scale (#3165)
  • CABPK: Support disk_setup and mounts in cloud-init (#3066)
  • CABPK: Support reading file contents from a Secret (#3083)
  • CABPK: Allowing mutability for the PreKubeadmCommands, PostKubeadmCommands and Files (#3086)
  • Add cluster.x-k8s.io/cloned-from-name and cluster.x-k8s.io/cloned-from-groupkind annotations to templated resources (#3181)
  • Add condition types (#3087)

🐛 Bug Fixes

  • Machine controller's listDescendents should now fetch MachinePools (#3196)
  • KubeadmControlPlane shouldn't rely on hashing to determine if a Machine is outdated (#3234)
  • Removes MachineSet Controller owner for existing machine bootstrap or infrastructure references (#3164)
  • Controllers should now add finalizers at the first reconciliation (#3214, #3199)
  • KubeadmControlPlane should now properly adopt the cluster's secrets (#3236)
  • MachineHealthCheck should only look at Machines that match the Cluster associated in spec.clusterName (#3232)
  • MachineSet now prioritizes deleting Machines without NodeRef (#3222)
  • Set sideEffects:None for cert-manager MutatingWebhookConfiguration (#3206)
  • Cluster network ranges should now support more than one comma separated range (#3172)
  • Machine: Make spec.version validation consistent with KubeadmControlPlane (#3147)
  • CAPBK: Fix API conversion and add validating webhook (#3100, #3114)
  • util.GetOwnerMachine should exclude the API's version field when comparing objects (#3148)
  • clusterctl: Should now accept cluster names with dots (#3076)
  • clusterctl: Init images skip variables (#3059)

📖 Documentation

  • Proposals:
    • Etcd and data disks (#3048)
    • Conditions (#3017)
    • Cluster Resource Set (#3050)
    • Extensible Template Processing for clusterctl (#3052)
  • Update CONTRIBUTING.md with high-level review guidelines (#3191, #3194)
  • Add instructions for kind v0.8.x (#3180)
  • Document docker version requirements (#3218)
  • Improve implementers guide (#3307)
  • Fix the field name in cluster-infra-provider diagram (#3284)
  • Fix references to spec.kubernetesVersion for the Machine object to spec.Version (#3265)
  • Add known bug warning for clusterctl delete (#3246)
  • Update quickstart for clusterawsadm v2 (#3116)
  • Add AZURE_ENVIRONMENT env var to azure instructions in quick start guide (#3212)
  • Add more structure and details to roadmap document (#3192)
  • Fix typos for CABPK (#3211)
  • Fix typo for "timeout" (#3167)
  • Update MachineHealthCheck proposal to use conditions instead of annotations (#3056)
  • Update quick start about OpenStack (#3155)
  • Added packet where needed across the cluster-api (#3123)
  • Update references to proper CAPBK location (#3094)
  • Document the immutability of machine templates (#3105)
  • Update Azure spot types to use string instead of float (#3063)
  • Kubernetes support matrix (#3031)
  • Remove extra mention of clusterawsadm in context where it is not needed (#3093)
  • Update concepts doc (#3070)

🌱 Others

  • Refactor patch helper to handle observedGeneration and Conditions (#3118, #3258)
  • Cleanup some internal MachineSet bits (#3089, #3092)
  • Add kubeadm control plane manager role aggregation label (#2685)
  • Add templates variables for FeatureGates (#3325)
  • Add experimental and feature gates directories to Tiltfile (#3069)
  • Add an error message if missing substitutions when using Kustomize (#3249)
  • Add status.observedGeneration to all Cluster API objects (#3104, #3266, #3226)
  • Add support for PKCS8 private keys in CA certs (#3175)
  • Remove use of "master" word from our codebase (#3285)
  • Remove use of word "dummy" from our codebase (#3288)
  • Opt for a more inclusive "other" category for our emoji (#3131)
  • clusterctl: Add Packet to list of default providers (#3121, #3263)
  • clusterctl: Add Talos providers to defaults (#3271)
  • clusterctl: Add move support for ClusterResourceSets (#3243)
  • clusterctl: Support ClusterRole/RoleBindings for webhooks (#3268)
  • ‍clusterctl: Switch to log on to stderr (#3124)
  • clusterctl: Move internal yaml functions under util/yaml (#3133)
  • KubeadmControlPlane: Remove semantic merge from bootstrap controller (#3312)
  • KubeadmControlPlane: Remove hash label from KCP machines (#3302)
  • KubeadmControlPlane: Cleanup MatchesKubeadmBootstrapConfig and add unit tests (#3286)
  • KubeadmControlPlane: Cleanup machinesNeedingRollout (#3277)
  • KubeadmControlPlane: Failing to connect to the workload cluster should be treated as a transient error (#3082)
  • KubeadmControlPlane: Use all available endpoints for etcd (#2888)
  • MachineHealthCheck: Adds list of targets under status (#3186)
  • ClusterResourceSet: Change internal representation of binding between CRS, Cluster and configmaps/secrets from maps to lists (#3013)
  • MachineHealthCheck: Integrate shared remote cluster watching (#3129)
  • Testing: Adds tests for InitImages (#3233)
  • Testing: Add tests for ensureNamespace (#3217)
  • Testing: Refactor testenv and remove unused ones (#3159)
  • Testing: Remove pr-integation presubmit files (#3162)
  • Testing: Update golint-ci, fix warnings (#3120)
  • Testing: Remove 1s full cache resync from envtest, use a delegating client (#3130)
  • Testing: Add a test external.Clone annotations in template (#3079)
  • Testing: Fix test/helpers.NewFakeClientWithScheme (#3171)
  • Testing: MachineHealthCheck mapper tests shouldn't create new test environments (#3156)
  • Testing: Increase envtest timeout (#3229)
  • Testing: Adds a test for ensureNamespaces (plural) (#3224)
  • Testing: Use patch in tests instead of update (#3231)
  • Testing: Rewrite MHC tests to be consistent with rest of codebase (#3219)
  • Testing: Replace fmt.Println with writes to ginko's writer (#3065)
  • Testing: Add e2e target to Makefile and update book (#3068)
  • Testing: Fixes WaitForMachineStatusCheck to poll for updates (#3071)
  • Testing: Enable metrics collection (#3262)
  • CAPD: Add support to run webhooks (#3088)
  • CAPD: Publish images when building on the main branch or tags (#3177, #3183)
  • CAPD: Machines should now report status.addresses (#3250)
  • Builds: Update image for cloudbuild and use buildkit (#3210, #3221, #3223, #3220, #3239, #3238, #3241, #3237, #3235)
  • Dependency: Update Go version to 1.13.12 (#3166)
  • Dependency: Update Calico version to 3.15 (#3275)
  • Dependency: Update controller-runtime to v0.5.8 (#3080, #3228, #3328)

Thanks to all our contributors! 😊

v0.3.7-rc.1

09 Jul 21:00
8281181
Compare
Choose a tag to compare
v0.3.7-rc.1 Pre-release
Pre-release

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

v0.3.7-rc.0

07 Jul 20:03
e68354f
Compare
Choose a tag to compare
v0.3.7-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.3.7-beta.0

01 Jul 22:40
cc45432
Compare
Choose a tag to compare
v0.3.7-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.7-alpha.0

19 Jun 18:45
11714ac
Compare
Choose a tag to compare
v0.3.7-alpha.0 Pre-release
Pre-release

🚨 This is an ALPHA release. Use it only for testing purposes, if you find any bugs file an issue.

v0.3.6

15 May 16:10
beff1e1
Compare
Choose a tag to compare

Changes since v0.3.5

⚠️ Breaking Changes

  • MachineHealthCheck spec.selector field cannot be empty (#3032) — Impact: If you have a MachineHealthCheck with an empty selector, users will need to update the selector to contain at least one label. For MachineHealthCheck in particular, an empty selector would match all the machines in a given cluster; given that we don't want to have overlapping health checks, it makes sense to disable it and make it opt-in.

✨ New Features

  • Update and unify cluster/resource paused handling (#2877) — Infrastructure provider should move to use these new utilities to watch Clusters to handle the global controller paused functionality.

🐛 Bug Fixes

  • Ignore custom static manifests on kubeadm join (#3053)
  • Kubeadm bootstrap provider should not fail if bootstrap data already exists (#2971)
  • Exclude conversion-data annotation when MD reconciles (#3018)
  • Convert MachineSet annotations from v1alpha2 (#3011)
  • KubeadmControlPlane should bypass the controller cache when initializing (#3002)
  • clusterctl: Support KUBECONFIG env var file paths (#3047)
  • clusterctl: Adds tolerations for cert-manager to run on control-plane nodes (#3034)

📖 Documentation

  • Add additional context around experiments in CONTRIBUTING guide (#2974)
  • Add section on how to develop e2e tests with clusterctl framework (#2839)
  • Clarify spec.providerId section (#3037)
  • Fixes for clusterctl developer doc, mostly related to docker provider (#3003)
  • Update book section regarding external etcd (#2962)

🏃 Others

  • Add remote cluster cache manager (#2880)
  • Use GOPROXY environment variable if set when building the docker images (#3061)
  • CAPD automatically re-create a machine if there is an error during provisioning (#3004)
  • [e2e] Add MachineHealthCheck tests (#3029)
  • [e2e] Add machine deployment scaling helper function (#3027)
  • [e2e] Add deprecated tag to e2e framework.config (#2979)
  • [e2e] Add MachineDeployment upgrade test (#2945)
  • [e2e] Add machine helper for status check. (#3028)
  • Update KIND to v0.7.0 in integration tests (#3008)
  • Remove use of metav1.FinalizerDeleteDependents from tests (#2987)
  • Add helper wrapping envtest (#2995)
  • clusterctl: print stack trace if verbosity is >= 5 (#3040)
  • clusterctl: add CLUSTERCTL_LOG_LEVEL environment variable (#2996)

Thanks to all our contributors! 😊

v0.2.11

14 May 16:00
2263f41
Compare
Choose a tag to compare

Changes since v0.2.10

⚠️ This is a maintenance release, if you're planning to upgrade from v0.2.x (v1alpha2) to v0.3.x (v1alpha3) make sure to upgrade to this version first.

🐛 Bug Fixes

  • [0.2] Exclude conversion-data annotation when MD reconciles (#3010)

Thanks to all our contributors! 😊

v0.3.5

30 Apr 15:53
59a696e
Compare
Choose a tag to compare

Changes since v0.3.4

✨ New Features

  • Support for Kubernetes v1.18 clusters (#2968)

🐛 Bug Fixes

  • Clusterctl should now correctly move user-provided certificates (#2988)
  • Clusterctl init should now correctly read the default config file (#2983)

Thanks to all our contributors! 😊

v0.3.4

28 Apr 23:25
7cda00b
Compare
Choose a tag to compare

Changes since v0.3.3

✨ New Features

  • Update MHC proposal with new annotation strategy (#2920) — An internal rework of MachineHealthCheck is has been approved and will be ready in a future version. This allows us to better split responsibilities between controllers, and add support for KCP (and other control plane providers) to remediate control plane.
  • Support specific kubeconfig context in clusterctl (#2856) — Allows to pass a specific kubeconfig context to be used when using a kubeconfig. CLI and library users can see the complete list of breaking changes here.
  • Make clusterctl cert-manager timeout configurable (#2834) — Users can now set a custom timeout used when clusterctl installs cert-manager.
  • Add DeleteMachineAnnotation for MachineSet Delete Policy (#2929) — Our api package now exposes a new annotation specific to MachineSet-owned Machine objects called DeleteMachineAnnotation which replaces the now-deprecated DeleteNodeAnnotation.

🐛 Bug Fixes

  • KCP should correctly select machines in failure domains during upgrades (#2833)
  • KCP should check if it has machines being deleted before proceeding with scale up/down (#2958)
  • KCP should now correctly allow custom imageRepository fields to be used for CoreDNS (#2832)
  • KCP should connect to the etcd leader whenever possible for basic operations (#2821)
  • KCP should recover when a Machine is manually deleted (#2841)
  • KCP should re-queue until the control plane is ready (#2907)
  • CABPK should not panic when using external etcd with undefined secrets (#2946)
  • Remove invalid ClusterRoleBinding from CertManager (#2931)
  • Allow webhooks to be called when using --dry-run by reporting no side-effect behaviors (#2868)
  • MachineSet controller should not use Update as a fallback (#2913)
  • Clusterctl shouldn't show invalid URLs when running config provider (#2948)
  • Clusterctl should show config provider without setting env vars (#2905)
  • Clusterctl should return an error if it the given config file doesn't exist (#2899)
  • Clusterctl should not return an error if it cannot find default config (#2951)
  • Clusterctl should now work correctly with variables containing a $ sign (#2858)
  • Clusterctl now validates the minimum Kubernetes version required for a management cluster (#2842)
  • Clusterctl now correctly allows users to override user specified values for control plane and worker machine count (#2597)
  • Clusterctl should now cache GitHub calls (#2848)

📖 Documentation

  • Update roadmap with focus on v1alpha3 (#2882)
  • Document the minimum required management cluster Kubernetes version (#2901)
  • Update MachineDeployment controller image in docs (#2878)
  • Document Docker and KIND prerequisites (#2925)
  • Clarify that MachineHealthCheck only works with MachineSet and MachineDeployment Machines (#2875)
  • Add initial Spot instances proposal (#2817)
  • Add Azure tab for deploy Calico CNI step in Quick Start (#2883)
  • Add subscription id to azure Quick Start (#2853)

🏃 Others

  • Add a library to parse container image name and other fields (#2869)
  • Grant RBAC access to experimental infra api group (#2959)
  • Remove issue-proposals in favor of CAEP process (#2940)
  • Allow extra arguments to be passed when using Tilt (#2932)
  • ‍Remove cmd/clusterctl/test folder, now superseded with new e2e-tests (#2933)
  • Remove annotations on upgradeControlPlane (#2887)
  • Add ci-apidiff job (#2923)
  • Introduce the new clusterctl-based suite of e2e tests (#2884)
    • Increase e2e test timeout (#2942, #2936)
    • Re-organize helpers func (#2922)
    • Add ClusterProvider and ClusterProxy (#2911)
    • Improve and cleanup e2e clusterctl (#2909)
    • Ensure that capd tests always clean up the kind cluster (#2917)
    • Improve management cluster interface (#2893)
    • Add namespace utils to the test framework (#2891)
    • Dump all resources when test ends (#2894)
    • Add log streaming to clusterctl e2e (#2879)
    • Add KCP integration and unit tests (#2802)
  • Improve unit test coverage for KCP (#2862)
  • Add workload cluster unit tests in KCP (#2806)

Thanks to all our contributors! 😊