Releases: kubernetes-sigs/cluster-api
v0.3.13
Changes since v0.3.12
✨ New Features
- Allow KubeadmControlPlane spec mutation for ApiServer, ControllerManager, and Scheduler (#4080)
- Add support for marking a preferred KubeadmControlPlane machine for scale down with a delete annotation (#4019)
- Add clusterctl describe cluster command (#4088)
🐛 Bug Fixes
- Set error_exit code arg in kubeadm bootstrap script (#4106)
- Fix APIEndpoint for IPv6 (#4066)
- KubeadmControlPlane should adopt v1alpha2 kubeconfig secrets (#4050)
📖 Documentation
- Add envsubst as prerequisite in developer guide (#4025)
🌱 Others
- Add optional parameter for using repolist (#4102)
Thanks to all our contributors! 😊
v0.3.12
Changes since v0.3.11
✨ New Features
- Use uncached client and partial metadata for secret and configmaps (#3986) — Impact: Reduced memory usage, the controller now hits the API Server directly when querying for Secrets and ConfigMap resources, instead of building a local cache of all objects in all watched namespaces.
- Add Cluster API GCP Provider to clusterctl providers list (#4008)
🐛 Bug Fixes
- MachineHealthCheck now sorts status targets to avoid continuous patches (#3998)
- KubeadmControlPlane scale down checks should exclude machines about to be deleted (#3984)
- KubeadmControlPlane should use its own NodeRefs when reconciling etcd members (#3971) — Impact: Solves a race condition between the controller trying to upgrade a cluster and the Kubernetes node not being fully registered yet in the list of nodes as a control-plane.
- Properly check errors.Cause when checking with apierrors (#3969) — Impact: Solves an issue where the Machine deletion would get stuck or timeout after a number of retries.
- Rotate MachinePool bootstrap token (#3965) — Impact: MachinePool bootstrap token were not previously rotated, and expired after 15m. With this change, new MachinePool instances should be able to join the cluster after the timeout.
📖 Documentation
- Updating Cluster API OpenStack variables in Quick Start (#3952)
🌱 Others
- Move @ncdc to emeritus (#4010) — A huge thanks to Andy for his immense work in the Cluster API community and leadership. 🤗
- Un-deprecate OwnedConditions and WithOwnedConditions (#3936)
Thanks to all our contributors! 😊
v0.3.11
Changes since v0.3.10
⚠️ Breaking Changes
- E2E test now resolve CNI_RESOURCES without using env variables (#3846)
- Infrastructure provider DigitalOcean was renamed to
digitalocean
(previously do) (#3816)
✨ New Features
- KubeadmControlPlane now remediates unhealthy machines when setup with MachineHealthCheck (#3830)
- MachineHealthCheck now has
remediationsAllowed
field under Status (#3372) - MachineHealthCheck now supports external remediation templates (#3606)
- Adds machine health check conditions to Machine Ready condition (#3796)
🐛 Bug Fixes
- Relax update validation to allow rotating ssh keys for KCP (#3927)
- Prevents reconcileEtcdMember to remove etcd members when etcd starts slowly (#3919)
- High cpu usage during kubectl drain (#3915)
- Fix Makefile docker targets by prepulling required images (#3897)
- Fix link to proposal root to /docs/proposals/ (#3842)
📖 Documentation
- Update required configurations for Metal³ provider (#3829)
🌱 Others
- Modifies DockerMachine condition status to report for control plane to be ready (#3726)
- Avoid MachineHealthCheck to return early on patch errors (#3713)
- Add Node related condition to Machine conditions (#3670)
- Upgrade corefile migration to v1.0.11 (#3856)
- Refactor controlplane health check in KCP (#3806)
- CAPD webhooks should use 9443 as port (#3819)
- Add Node watch to Machine controller (#3748)
- Add KCP conditions, split reconcileHealth into preflight and reconcileEtcdMembers, make both use conditions (#3900)
- MachineHealthCheck External Remediation
Thanks to all our contributors! 😊
v0.3.11-rc.0
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes, if you find any bugs file an issue.
v0.3.10
Changes since v0.3.9
⚠️ Breaking Changes
- Use metadata-only client when retrieving CRDs (#3625) — Impact: The function
ConvertReferenceAPIContract
's signature changed tofunc(context.Context, logr.Logger, client.Client, rest.Config, corev1.ObjectReference) error
. - Eliminate possible deadlocks in ClusterCacheTracker (#3654) — Impact: If you're using ClusterCacheTracker's
Watch
method, the input structWatchInput
now requires a uniqueName
. - [testing] Add docker machine pool and e2e tests for machine pool (#3506) — Impact: The function
ApplyClusterTemplateAndWait
's signature changed tofunc(context.Context, ApplyClusterTemplateAndWaitInput) *ApplyClusterTemplateAndWaitResult
. - [testing] Cleanup kind cluster if it fails during e2e setup (#3479) — Impact: The function
LoadImagesToKindCluster
now returns an error.
✨ New Features
- Add the ability to specify a drain timeout for Machines (#3662)
- [clusterctl] Implement "clusterctl completion" command (#3622)
- [clusterctl] Add option to use configuration file in remote locations (#3553)
- [clusterctl] Add Cluster API digitalocean (CAPDO) to infrastructure providers (#3621)
- [clusterctl] Add Cluster API OpenStack (CAPO) to infrastructure provider (#3681)
- [clusterctl] Add AWS EKS bootstrap and control-plane providers (#3618, #3685)
🐛 Bug Fixes
- Fix node deletion under managed control planes (#3673)
- Makefile release target should properly clean the git tree (#3704, #3725)
- Machine controller should have DrainingSucceededCondition as owned condition (#3642)
- The
util.HasOwner
function should not compare with the API version (#3636) - Fix cluster cache tracker healthchecks (#3615)
- Improve logging for workload connection error (#3613)
- Tilt should use a supported kustomize version (#3551)
- Fix a regression in Tiltfile (#3626)
- [clusterctl] Fix a bug that fails to write the version state file (#3575)
- [testing] Fix self-hosted test by adding docker mount to control-plane nodes (#3675)
📖 Documentation
- Avoid linking to the master branch of repositories (#3721)
- Ensure correct make targets in order to build book (#3709)
- Updated upgrade documentation (#3530)
- Move CABPK docs to book and add examples (#3699)
- KCP remediation proposal (#3676)
- Default GOPROXY if not set when building mdbook preprocessors (#3671)
- Added AzureStackHCI infrastructure provider to list of providers in the CAPI book (#3655)
- Update KCP proposal to be up-to-date with the latest changes (#3605)
- Add CAPI Clean Up section to Quick Start (#3634)
- Documents how to triage E2E test failure (#3590)
- Simplify Azure quickstart and remove optional variables (#3588)
- Update the misleading sentences in providers documentation. (#3548)
- Update broken link to CAPA prerequisites (#3703)
🌱 Others
- Add conditions to MachinePool (#3627)
- Removes step counter from kubeadmconfig ready condition (#3701)
- Changes priority of infrastructure failures in machine summary condition (#3688)
- Support patch ForceOverwriteConditions option (#3643)
- Save a DeepCopy when calculating patches in Patch helper (#3630)
- Save a DeepCopy when patching typed objects (#3628)
- Eliminate extra DeepCopy for CRDs (#3624)
- Reuse the same RESTMapper for cache and client (#3632)
- Fix yaml file write issue in create-local-repository.py (#3648)
- Increase timeout to fix self-hosting flakes (#3667)
- Add deleting failure reason (#3549)
- Switch link checker to mdbook-linkcheck (#3474)
- Have hack/create-local-repository.py write yaml files in native text format (#3614)
- Predicates: move log declaration inside closures (#3623)
- Tiltfile: Parameterize kustomize and main.go for providers (#3604)
- Add version print column for MachinePool (#3578)
- [KubeadmControlPlane] Remove backoff adaptor for etcd (#3672)
- [KubeadmControlPlane] Enable kubeadmConfigSpec.verbosity modifications (#3559)
- [clusterctl] Print upgrade notice for cert-manager (#3557)
- [clusterctl] Log when objects aren't moved (#3637)
- [clusterctl] Support mover dry run (#3598)
- [clusterctl] Add force move support for secret (#3619)
- [clusterctl] Fix message for clusterctl EnsureCustomResourceDefinitions failure (#3612)
- [clusterctl] Allow deleting multiple providers at once (#3617)
- [clusterctl] Add log to indicate the secret is ignored (#3602)
- [clusterctl] Allow custom providers in clusterctl client (#3586)
- [testing] Add kubetest, kubernetesversions, log and ginkgo extensions (#3652)
- [testing] Fix E2E log collector regression by aligning to the container naming rules used in CAPD (#3687)
- [testing] Refactor MachineHealthChecks tests to use go-test (#3633)
- [testing] Remove e2e templates from the code base (#3657)
- [testing] Remove unused ginkgo suite test setup (#3665)
- [testing] Fix self-hosted flakes in E2E tests (#3639)
- [testing] use kustomize for generating e2e templates (#3651)
- [testing] Resolve flake: Wait for controlplane to be available on management cluster (#3650)
- [testing] Fix some typos and grammar in e2e logs (#3649)
- [testing] Fix the E2E MHC remediation errors (#3600)
- [testing] Display path of the kubeconfig file for the bootstrap cluster (#3596)
- [testing] Stop test suite when a capi e2e test fails (#3585)
- [testing] Add LogCollector to E2E framework (#3580)
- [testing] Add quotes to GINKGO_FOCUS (#3587)
- [testing] Delete GINKGO_FOCUS from ci-e2e.sh (#3583)
- [testing] Add PR-Blocking label to Quick-Start test (#3582)
- [testing] Pre-pull e2e images on CI (revert to v1.17/v1.18) (#3567)
- [testing] Restore CNIManifestPath to struct for API compat (#3608)
- Update mdbook to v0.4.3 (#3659)
- Update Go 1.13.15 (#3629)
- Update Controller Runtime to v0.5.11 (#3646)
Thanks to all our contributors! 😊
v0.3.10-rc.1
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes, if you find any bugs file an issue.
v0.3.10-rc.0
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes, if you find any bugs file an issue.
v0.3.9
Changes since v0.3.8
⚠️ Breaking Changes
- 🚨 KubeadmControlPlane does not support upgrading to v1.19.0 (#3562) — Impact: See #3564 for more information, existing v1.18.x clusters cannot be upgraded to v1.19.0 due to an identified regression. We're planning to get the necessary changes upstream in v1.19.1 with the help of the Kubeadm maintainers. New clusters are not affected.
- Remove old runtime metrics from v1alpha3 (#3464) — Impact: These metrics were not reporting the correct data, and were causing high memory usage in some cases.
✨ New Features
- Clusterctl now supports moving custom objects (#3337)
- Clusterctl now checks if a new version is available when running commands (#3484)
- Machine controller now supports deletion lifecycle hooks (#3273) — External controllers can use the new annotation styles to perform specific cleanup tasks usually needed before deleting a Machine.
- Add
get kubeconfig
clusterctl sub-command (#3460) - Upgrade cert-manager to v0.16.1 (#3313)
🐛 Bug Fixes
- Set MachinePool
status.phase
toscaling
when the infrastructure is scaling (#3476) - Clusterctl: Accept prereleases when no releases published (#3502)
- KubeadmControlPlane: Ensure that etcd health check errors are reported (#3336)
- KubeadmControlPlane: Expose CoreDNS errors to users when validation fails (#3544)
- KubeadmControlPlane: Update coredns-migration library to v1.0.10 (#3543)
- KubeadmControlPlane: Perform version check on update (#3508)
- KubeadmControlPlane: Properly support external etcd (#3298)
- KubeadmControlPlane: Close etcd client, connections, and data streams after each use (#3513)
- Remove ClusterResourceSet from bindings on deletion (#3455)
- Retry getting list resources via discovery API (#3507)
- Fixes issue with Windows, paths can't be escaped (#3501)
- Avoid in-place CABPK mutation, duplicate files (#3473)
- Default MachinePool replicas and MinReadySeconds (#3475)
- Fix ClusterToKubeadmConfigs to include MachinePools (#3472)
- Fix cluster create not paused when paused log entry (#3478)
- MachineHealthCheck should not remediate paused machines (#3444)
- Include watching namespace for custom provider upgrades (#3446)
📖 Documentation
- Add experimental features section (#3529)
- point users to owners_aliases file (#3550)
- Update concepts docs around v1alpha3 (#3522)
- External Remediation Proposal (#3190)
- Update ClusterResourceSet CAEP (#3467)
- Document clusterctl get kubeconfig (#3510)
- Document clusterctl version support (#3449)
- Control Plane provider doc lists management of kubeconfig secret as a requirement (#3481)
- Update Packet quickstart to better work with Calico CNI (#3490)
- Document how to upgrade a multi-tenant cluster (#3448)
- Define testing guidelines and standards (#3349)
- CAEP: Machine deletion phase hooks (#3132)
- Add sidero to infrastructure providers (#3503)
- Remove azure.json variable from quick start (#3433)
- Update community section of readme (#3389)
- Add note for using embedded metadata in clusterctl (#3436)
🌱 Others
- UX: Add Version print column to Machine and KubeadmControlPlane (#3560)
- UX: Align print columns between MachineDeployment and KubeadmControlPlane (#3521)
- UX: Correct Type and Provider column information (#3470)
- DX: Add hack to upgrade cert-manager in Tiltfile (#3462)
- KubeadmControlPlane: Remove unnecessary RBAC rules (#3456)
- KubeadmControlPlane: Remove RequeueAfterError from reconcile discovery (#3443)
- Testing: Pre-pull kind images (#3556)
- Testing: Revert e2e test Kubernetes version to 1.18.2 (#3563)
- Testing: Enable webhooks in envtest (#3209)
- Testing: Add debug output for deployment failures (#3468)
- Testing: Add get workload cluster test (#3350)
- Testing: Add test reconcile etcd members (#3408)
- Testing: Install CNI with ClusterResourceSet (#3332)
- Clusterctl: Allow single image override (#3480)
- Clusterctl:
init
should ignore pre-releases (#3454) - Clusterctl: Upgrade cert manager before upgrading providers (#3364)
- MachineHealthCheck: Ensure log output when returning errors to controller runtime (#3531)
- Update CAPD examples to use MachineDeployment (#3500)
- Add conditions for deletion workflows (#3527)
- Remove RequeueAfterError from machine pool controller (#3477)
- Remove RequeueAfterError from cluster controller (#3445)
- Add Cluster API icons to repository (#3489)
- Add APIEndpoint IsValid() when both host and port are non-zero value (#3541)
- Dependencies: Start using cert-manager v0.16.1 (#3511)
- Dependencies: Update to Controller Runtime v0.5.10 (#3546)
Thanks to all our contributors! 😊
v0.3.8
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
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 theClusterCacheTracker
.
✨ 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 usingcontrolplane.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
andcluster.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:
- 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! 😊