Releases: rancher-sandbox/cluster-api-provider-harvester
Releases · rancher-sandbox/cluster-api-provider-harvester
v0.2.9
What's Changed
👒 Dependency bumps
- Bump docker/login-action from 3 to 4 by @dependabot[bot] in #147
- Bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #148
- Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #149
- Bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #150
- Bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #152
- Bump github.com/onsi/gomega from 1.38.1 to 1.39.1 by @dependabot[bot] in #156
- Bump github.com/prometheus/client_golang from 1.22.0 to 1.23.2 by @dependabot[bot] in #153
- Bump github.com/onsi/ginkgo/v2 from 2.28.0 to 2.28.1 by @dependabot[bot] in #157
Full Changelog: v0.2.8...v0.2.9
v0.2.8
Cluster API Provider Harvester v0.2.8
Addresses findings from the SURE-11421 formal review by Andrea Mazzotti (SUSE CAPI team). Review verdict: Go.
Changes
- CAPI contract compliance: Added
ObjectMetatoHarvesterMachineTemplateResourceper InfraMachineTemplate contract; removed unusedHarvesterClusterTemplate.Statusfield - Webhook clarity: Removed standalone
examples/webhook-deployment.yaml— webhooks are included ininfrastructure-components.yamland deployed automatically - Manifest verification: Added
verify-manifeststarget tomake verifyto catch out-of-sync generated manifests - Release artifacts: Cluster templates and ClusterClass now included in release assets per clusterctl conventions
- v1beta2 readiness: Documented
status.initialization.provisionedas forward-looking for CAPI v1beta2 - Helm chart deprecated: Marked as legacy in favor of CAPIProvider/clusterctl installation
- CAAPF advisory: Added RFD 0051 note in Fleet addons documentation
Installation
apiVersion: turtles-capi.cattle.io/v1alpha1
kind: CAPIProvider
metadata:
name: harvester
namespace: caphv-system
spec:
name: harvester
type: infrastructure
version: v0.2.8
fetchConfig:
url: https://github.com/rancher-sandbox/cluster-api-provider-harvester/releases/download/v0.2.8/infrastructure-components.yamlFull changelog
v0.2.7
Cluster API Provider Harvester v0.2.7
Code quality improvements for production readiness review (SURE-11421).
Changes
- Kustomize modernization: Migrate from deprecated
bases/patchesStrategicMerge/vars/commonLabelstoresources/patches/replacements/labels— eliminates all deprecation warnings from generated manifests - Finalizer naming: Rename finalizers to include path segment per Kubernetes conventions (
harvestermachine.infrastructure.cluster.x-k8s.io/finalizer), with dual-finalizer migration for seamless upgrade from v0.2.6 - Context propagation: Replace all
context.TODO()/context.Background()in production code with proper context propagation from reconciler scope, enabling correct cancellation and timeout behavior - Minor fixes: Fix typo in ippool validation, add error handling for
netip.AddrFromSlice(), document privileged container requirement
Upgrade notes
- Existing clusters will automatically migrate to the new finalizer format on next reconcile — no manual action required
- The old finalizer is removed after the new one is added, ensuring no window of unprotected deletion
Installation
apiVersion: turtles-capi.cattle.io/v1alpha1
kind: CAPIProvider
metadata:
name: harvester
namespace: caphv-system
spec:
name: harvester
type: infrastructure
version: v0.2.7
fetchConfig:
url: https://github.com/rancher-sandbox/cluster-api-provider-harvester/releases/download/v0.2.7/infrastructure-components.yamlFull changelog
v0.2.6
Cluster API Provider Harvester v0.2.6
Major update bringing Harvester v1.7.1 compatibility, production-grade features, and complete lifecycle management for Kubernetes clusters on Harvester HCI.
Highlights
- Harvester v1.7.1 compatibility: Critical bugfixes for
memory.guest, CPU topology,runStrategy, IPPool allocation, cloud-init keys, and orphaned PVCs - Cloud provider bootstrap: Solves the calico/cloud-provider chicken-and-egg problem with
hostNetwork, RBAC, tolerations, and node init from management cluster - Auto-remediation: MachineHealthCheck with automatic etcd cleanup, VM deletion, and replacement (~9 min recovery)
- ClusterClass:
harvester-rke2topology with 12 variables/patches — reduces cluster YAML from ~200 lines to ~30 - CLI generator:
caphv-generatetool (interactive + flags) for complete cluster manifest generation - DHCP VM support: ISC dhclient workaround for wicked BPF bug in KubeVirt bridge binding
- Multi-disk VMs: Image + storageClass volumes with bootOrder
- Validating webhooks:
admission.CustomValidatorfor HarvesterMachine + HarvesterCluster, gated by--enable-webhooks - Fleet addon management: CSI and CNI deployable via Fleet GitOps (CAAPF integration)
- CSI decoupling: Cloud-config separated from CSI driver — CSI deployable independently via Fleet or CRS
- Fleet label automation:
reconcileFleetIntegration()propagates labels to Fleet clusters - Multi-pool IP allocation: Ordered fallback across multiple IPPools
- Observability: 17 custom Prometheus metrics + Grafana dashboard
- 330+ unit tests: 70%+ controller coverage, 80%+ util coverage
- E2E test suite: 4 suites, 18 tests (webhook/scale/multidisk/remediation)
- Turtles certification: Full certification test suite for Rancher Turtles provider certification
- Documentation: Operations guide, troubleshooting guide, Fleet addons guide
Breaking changes from v0.1.6
- Cloud-init secret keys are now lowercase (
userdata/networkdata) - VM creation uses
spec.runStrategy: Alwaysinstead of deprecatedspec.running: true memory.guestis set on VM domain spec (required by Harvester v1.7.0+)
Installation
apiVersion: turtles-capi.cattle.io/v1alpha1
kind: CAPIProvider
metadata:
name: harvester
namespace: caphv-system
spec:
name: harvester
type: infrastructure
version: v0.2.6
fetchConfig:
url: https://github.com/rancher-sandbox/cluster-api-provider-harvester/releases/download/v0.2.6/infrastructure-components.yamlOr via Helm:
helm install caphv oci://ghcr.io/rancher-sandbox/cluster-api-provider-harvester/charts/caphv --version 0.2.6Assets
infrastructure-components.yaml— Full deployment manifest (CRDs, RBAC, controller, webhooks, cert-manager)metadata.yaml— CAPI contract metadata (v1beta1)
Full changelog
See CHANGELOG.md
v0.1.6
v0.1.6
🚀 Enhancements
- Added support for ClusterClass with an example template, fixes #87 by @belgaied2 in @88155cf
- feat: add YAML template for Talos-Harvester cluster deployment by @eede94f
- Added some new conditions for HarvesterCluster resource, Fixes #90 by @41ea08e
- Added some missing conditions by @6529afa
- Fixed issue related to setting a harvestermachine to be ready, added .status.initialization.provisioned field by @ad143cd
👒 Dependency bumps
- Bump github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring by @7a60067
- Bump sigs.k8s.io/yaml from 1.4.0 to 1.5.0 by @0ed7fe7
- Bump github.com/go-logr/logr from 1.4.2 to 1.4.3 by @bd3d37f
- Bump bci/golang from 1.24.4 to 1.24.5 by @5581d37
- Bump bci/bci-micro from 15.6 to 15.7 by @dependabot
🐛 Bugs
- Fixed some issues with Makefile by @f22e3ac
- Fixed linting issues by @f982ebf
- Removing
UPDATE_CLOUD_PROVIDERplaceholder, which is not valid when cloud-config secret is provided. Fixes #109 by @2c6e81a
📖 Docs
- Small improvements for README.md by @d203d61
- Restored the latest valid version of README.md before it was overwritten by kubebuilder migration by @94c4637
Other Changes
- Updated the project to kubebuilder v4 by @b85e828
- Migrated to Golangci config version "2" by @c87c3fc
- Clean up clientset interfaces by @944ca9e
- Updated Dockerfile after kubebuilder upgrade and bumped build image by @6bbdc1a
- gci-ed all go files by @4e53680
- Update golangci-lint to v2.2.1 by @919e7ba
Full Changelog: v0.1.5...v0.1.6
v0.1.5
What's Changed
🚀 Enhancements
- Bump golang from 1.19 to 1.22 by @dependabot in #9
- Bump github.com/go-logr/logr from 1.2.4 to 1.4.1 by @dependabot in #13
- Bump docker/login-action from 2 to 3 by @dependabot in #15
- Bump github.com/onsi/gomega from 1.27.10 to 1.33.1 by @dependabot in #30
- Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.17.3 by @dependabot in #31
- Bump github.com/k8snetworkplumbingwg/network-attachment-definition-client from 0.0.0-20200331171230-d50e42f2b669 to 1.7.0 by @dependabot in #25
- Bump github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring from 0.62.0 to 0.74.0 by @dependabot in #32
- kind:feature : Bumping various longhorn and harvester versions by @PatrickLaabs in #47
- Update deps by @ekarlso in #42
- Implement a process to discharge the user from generating cloud provider configuration by @belgaied2 in #86
🐛 Bugs
- fixed RFC1035 naming for generated names and fixed some linting issues by @belgaied2 in #73
- fix: update the RKE2 worker machine templates to use the correct RKE2 version by @ihcsim in #72
- docs: update README to include missing workload cluster settings by @ihcsim in #71
Other Changes
- Bump actions/setup-go from 4 to 5 by @dependabot in #16
- Bump actions/checkout from 3 to 4 by @dependabot in #17
- Bump softprops/action-gh-release from 1 to 2 by @dependabot in #18
- Fix cross-builds by @dgiebert in #57
- Bump github.com/go-logr/logr from 1.4.1 to 1.4.2 by @dependabot in #49
- Bump github.com/onsi/ginkgo/v2 from 2.17.3 to 2.20.2 by @dependabot in #65
- Bump github.com/containernetworking/plugins from 1.1.1 to 1.5.1 by @dependabot in #51
- Adding kind/bump to labels of PRs by @belgaied2 in #74
- Bump github.com/longhorn/longhorn-manager from 1.4.3 to 1.7.2 by @dependabot in #81
- Bump bci/golang from 1.22 to 1.23 by @dependabot in #76
- Bump github.com/onsi/ginkgo/v2 from 2.20.2 to 2.22.0 by @dependabot in #78
- Bump docker/build-push-action from 5 to 6 by @dependabot in #75
- Bump github.com/containernetworking/plugins from 1.5.1 to 1.6.0 by @dependabot in #77
- Bump github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring from 0.74.0 to 0.78.2 by @dependabot in #80
- fix: upgrade longhorn csi sidecars version by @ihcsim in #82
- Bump github.com/onsi/gomega from 1.34.2 to 1.36.0 by @dependabot in #84
- Bump github.com/k8snetworkplumbingwg/network-attachment-definition-client from 1.7.0 to 1.7.5 by @dependabot in #85
- chore: tidy up go mod by @ihcsim in #92
- chore: remove unapproved GHA per eio's requirements by @ihcsim in #105
- fixing inconsistent naming of components.yaml by @PatrickLaabs in #107
New Contributors
- @dependabot made their first contribution in #9
- @ekarlso made their first contribution in #42
- @ihcsim made their first contribution in #72
- @dgiebert made their first contribution in #57
Full Changelog: v0.1.4...v0.1.5
v0.1.4
What's Changed
🐛 Bugs
- Fixed issue which happened when a
HarvesterClusterwas first created withipamType: dhcpconfig in which LoadBalancer IP failed to be assigned, then changed toipamType: pool, even after the change, the IP address would not be assigned. - Fixed issue with build process
🚀 Enhancements
- kind/feature: Adding new clusterctl generate cmd by @PatrickLaabs in #45
Full Changelog: v0.1.3...v0.1.4
v0.1.3
What's Changed
🐛 Bugs
- [WIP] kind/documentation: Updating Readme according to the issue #33 by @PatrickLaabs in #34
- Fixed an issue with the LoadBalancer placeholder that ignored the
IPAMType=pool. Now, it does use the pool and put a placeholder to be used by the actual LoadBalancer that is created after the first ControlPlane machine. - Fixed an issue where the first HarvesterMachine object would not get the
Readystatus, which blocked further machine deployments. - Fixed a small issue where an ERROR log message is shown when a HarvesterMachine is reconciliated for the first time, and might block the update of the
Statusfield until the machine is actually created.
Other Changes
- kind/feature: Changing ClusterResourceSets Rolloutstrategy from ApplyOnce to Reconcile by @PatrickLaabs in #41
New Contributors
- @PatrickLaabs made their first contribution in #41
Full Changelog: v0.1.2...v0.1.3
v0.1.2
Full Changelog: v0.1.1...v0.1.2