Skip to content

v0.3.7

Compare
Choose a tag to compare
@vincepri vincepri released this 14 Jul 17:31
846ca08

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! 😊