v1.9.0
Highlights
- Based on Cluster API v1.6
- Support for Kubernetes v1.29
- Major overhaul of logging
- Improved e2e test coverage
- Reduced dependencies in main
go.mod
file by introducing atest/go.mod
.
Changes since v1.8.0
π Overview
- 226 new commits merged
- 1 breaking change
β οΈ - 13 feature additions β¨
- 14 bugs fixed π
β οΈ Breaking Changes
- Remove v1alpha3 and v1alpha4 apiVersions (#2414)
- Similar to when we removed the apiVersions in core CAPI we fixed the reconciliation of apiVersions in ownerRefs in v1.8.2.
Removal of a deprecated APIVersion in Kubernetes [can cause issues with garbage collection by the kube-controller-manager] (kubernetes/kubernetes#102641) This means that some objects which rely on garbage collection for cleanup, may not be cleaned up properly if those objects were created with an APIVersion which is no longer served. To avoid these issues itβs advised to ensure a restart to the kube-controller-manager is done after upgrading to CAPV v1.9. This can be accomplished with any Kubernetes control-plane rollout, including a Kubernetes version upgrade, or by manually stopping and restarting the kube-controller-manager.
- Similar to when we removed the apiVersions in core CAPI we fixed the reconciliation of apiVersions in ownerRefs in v1.8.2.
β¨ New Features
- Add k8s v1.29.0 ova's (#2561)
- Adds new field to set the minimum hardware version (#2509)
- Bump Cluster API to v1.6.0-beta.1 (#2463)
- Improve logging & error handling (#2527)
- Prepare main branch for release-1.9 development (#2461)
- Refactor context for vsphereclusteridentity controller (#2374)
- Refactor context for vspheredeploymentzone controller (#2369)
- Refactor context for vspheremachine controller (#2376)
- Refactor context for vspherevm controller (#2398)
- Remove previously deprecated code (#2451)
- Set InternalDNS address for machines (#2529)
- Set up golang context when initiating controller manager (#2339)
- Update kustomization.yaml to support kustomize v5 (#2523)
π Bug Fixes
- ClusterCacheTracker: Use RequeueAfter 1 minute instead of immediate requeue when ErrClusterLocked gets returned to not fall into exponential requeue (#2528)
- Fix nil pointer error in retrieveVcenterSession (#2303)
- Fix potential panics when retrieving VSphereCluster from Cluster.spec.infrastructureRef (#2505)
- Fix watch & log of ProviderServiceAccount controller (#2592)
- Flatcar: Run kubeadm after containerd (#2405)
- Force logout of sessions in case of errors (#2530)
- Handle missing VSphereFailureDomain on VSphereDeploymentZone deletion (#2351)
- Improve clustermodule existence check (#2535)
- Re-add return on vimmachine error (#2473)
- Remove the conditional on ipv6 (#2397)
- Skip updating VMOp immutable fields (#2566)
- StoragePolicy should select datastore based on connected hosts and set on VM spec (#2134)
- Test: use GinkgoRecover in go subroutine of ownerreference test (#2552)
- Use a cheaper method for storage policy (#2467)
π± Others
- Add clusterctl upgrade test (#2517)
- Add codecov (#2328)
- Add comment about why we drop the storage policy for some e2e tests (#2548)
- Add dependabot grouping for Kubernetes modules (#2271)
- Add e2e test coverage for namingStrategy (#2550)
- Add finalizer for VSphereClusterIdentity (#2322)
- Add Kubernetes cluster upgrade test (#2593)
- Add kubetest files for upstream e2e tests (#2417)
- Add license scan for pull requests (#2299)
- Add ownerReference resilience test (#2209)
- Add task to update mdlink check config for branches (#2246)
- Add test coverage for VimMachineService (#2444)
- Add unit test cases for clustermodule (#2436)
- Add verify-govulncheck and verify-vulnerabilities targets and integrate to scan action (#2174)
- Add verify-import-restrictions to enforce import restrictions (#2338)
- Adjust .dockerignore and .gitignore files for multi-modules and sync with CAPI (#2578)
- Avoid adding watches after building controllers (#2262)
- Bump actions/cache from 3.3.2 to 3.3.3 (#2618)
- Bump actions/checkout from 3.5.3 to 3.6.0 (#2293)
- Bump actions/checkout from 3.6.0 to 4.0.0 (#2318)
- Bump actions/checkout from 4.0.0 to 4.1.0 (#2392)
- Bump actions/checkout from 4.1.0 to 4.1.1 (#2455)
- Bump actions/github-script from 6.4.1 to 7.0.0 (#2504)
- Bump actions/github-script from 7.0.0 to 7.0.1 (#2515)
- Bump actions/setup-go from 4.1.0 to 5.0.0 (#2543)
- Bump apidiff to v0.7.0 (#2375)
- Bump CAPI test components to v1.5.2 (#2403)
- Bump ccm to 1.28.0 (#2286)
- Bump cloud-provider vsphere to v1.29.0 (#2624)
- Bump Cluster API to v1.5.2 (#2401)
- Bump Cluster API to v1.6.0-rc.0 (#2518)
- Bump ClusterAPI to v1.5.1 (#2298)
- Bump controller tools to v1.13.0 (#2249)
- Bump envtest k8s version to v1.28.0 (#2446)
- Bump github.com/go-logr/logr from 1.2.4 to 1.3.0 (#2475)
- Bump github.com/go-logr/logr from 1.3.0 to 1.4.1 (#2585)
- Bump github.com/google/uuid from 1.3.0 to 1.3.1 (#2270)
- Bump github.com/google/uuid from 1.3.1 to 1.4.0 (#2478)
- Bump github.com/google/uuid from 1.4.0 to 1.5.0 (#2557)
- Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.12.0 (#2291)
- Bump github.com/onsi/ginkgo/v2 from 2.12.0 to 2.12.1 (#2390)
- Bump github.com/onsi/ginkgo/v2 from 2.12.1 to 2.13.0 (#2423)
- Bump github.com/onsi/ginkgo/v2 from 2.13.0 to 2.13.1 (#2501)
- Bump github.com/onsi/ginkgo/v2 from 2.13.1 to 2.13.2 (#2526)
- Bump github.com/onsi/ginkgo/v2 from 2.13.2 to 2.14.0 (#2617)
- Bump github.com/onsi/gomega from 1.27.10 to 1.28.0 (#2411)
- Bump github.com/onsi/gomega from 1.28.0 to 1.28.1 (#2458)
- Bump github.com/onsi/gomega from 1.28.1 to 1.29.0 (#2490)
- Bump github.com/onsi/gomega from 1.29.0 to 1.30.0 (#2500)
- Bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#2491)
- Bump github.com/vmware/govmomi from 0.30.7 to 0.31.0 (#2391)
- Bump github.com/vmware/govmomi from 0.31.0 to 0.32.0 (#2412)
- Bump github.com/vmware/govmomi from 0.34.0 to 0.34.1 (#2572)
- Bump github.com/vmware/govmomi from 0.34.0 to 0.34.1 in /test (#2576)
- Bump github.com/vmware/govmomi from 0.34.1 to 0.34.2 (#2600)
- Bump Go to v1.20.10 (#2432)
- Bump go-apidiff to v0.8.2 (#2619)
- Bump golang.org/x/crypto from 0.12.0 to 0.13.0 (#2347)
- Bump golang.org/x/crypto from 0.13.0 to 0.14.0 (#2422)
- Bump golang.org/x/crypto from 0.15.0 to 0.16.0 (#2520)
- Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#2559)
- Bump golang.org/x/crypto from 0.17.0 to 0.18.0 in /test (#2606)
- Bump golang.org/x/mod from 0.12.0 to 0.13.0 (#2421)
- Bump golang.org/x/mod from 0.13.0 to 0.14.0 (#2489)
- Bump golang.org/x/net to v0.17.0 (#2437)
- Bump golang.org/x/text from 0.12.0 to 0.13.0 (#2319)
- Bump golang.org/x/text from 0.13.0 to 0.14.0 (#2488)
- Bump golang.org/x/tools from 0.12.0 to 0.13.0 (#2348)
- Bump golang.org/x/tools from 0.13.0 to 0.14.0 (#2420)
- Bump golang.org/x/tools from 0.14.0 to 0.15.0 (#2503)
- Bump golang.org/x/tools from 0.15.0 to 0.16.0 (#2521)
- Bump golang.org/x/tools from 0.16.0 to 0.16.1 (#2558)
- Bump golang.org/x/tools from 0.16.1 to 0.17.0 (#2616)
- Bump golangci-lint to v1.54.1 (#2230)
- Bump golangci-lint to v1.55.2 (#2511)
- Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 (#2269)
- Bump kube-vip to 0.6.3 and enable service mode (#2508)
- Bump kubernetes-sigs/kubebuilder-release-tools from 0.3.0 to 0.4.0 (#2419)
- Bump kubernetes-sigs/kubebuilder-release-tools from 0.4.0 to 0.4.2 (#2487)
- Bump kubernetes-sigs/kubebuilder-release-tools from 0.4.2 to 0.4.3 (#2544)
- Bump Makefile dependency versions (#2445)
- Bump sigs.k8s.io/cluster-api/test from 1.5.2 to 1.5.3 (#2479)
- Bump sigs.k8s.io/controller-runtime from 0.15.1 to 0.15.2 (#2292)
- Bump sigs.k8s.io/controller-runtime from 0.15.2 to 0.15.3 (#2476)
- Bump sigs.k8s.io/kustomize/api from 0.13.5-0.20230601165947-6ce0bf390ce3 to 0.15.0 (#2502)
- Bump sigs.k8s.io/kustomize/api from 0.15.0 to 0.16.0 (#2546)
- Bump sigs.k8s.io/kustomize/kyaml from 0.14.1 to 0.15.0 (#2492)
- Bump sigs.k8s.io/kustomize/kyaml from 0.15.0 to 0.16.0 (#2545)
- Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#2477)
- Bump step-security/harden-runner from 2.5.1 to 2.6.0 (#2418)
- Bump step-security/harden-runner from 2.6.0 to 2.6.1 (#2516)
- Bump the kubernetes group with 3 updates (#2290)
- Bump the kubernetes group with 3 updates (#2366)
- Bump the kubernetes group with 3 updates (#2456)
- Bump the kubernetes group with 3 updates (#2514)
- Bump the kubernetes group with 3 updates (#2568)
- Bump to CAPI v1.6.1 (#2622)
- Bump to Go 1.20.11 (#2493)
- Bump to Go 1.20.12 (#2538)
- Bump to Go 1.20.8 (#2330)
- Bump Trivy to v0.45.0 (#2313)
- Bump Trivy to v0.45.1 (#2365)
- Bump trivy to v0.46.0 (#2438)
- Bump Trivy to v0.47.0 (#2486)
- Bump vmoperator to v1.8.5 & vmware dependencies (#2562)
- CI: add annotation with prowjob name and id to ipclaims (#2210)
- CI: move to new resource pool and folder in VMC (#2367)
- CI: replace metal3 ipam by CAPI in-cluster provider (#2382)
- Clarify our goals for CAPV releases related to CAPI, CPI and Kubernetes releases (#2620)
- Clarify OWNER_ALIASES file (#2415)
- Config: add metrics configuration for kube-state-metrics (#2345)
- Create junit reports for ginkgo test suites in unit tests (#2537)
- Dependabot: add github action to fix modules on PRs and add test to configuration (#2573)
- Don't require Validate session privileges to check if user session is active (#2235)
- E2e: Stop storing the CAPV image in artifacts (#2604)
- Enable powerOffMode trySoft in cluster-templates and CI (#2229)
- Ensure vm-operator VM has CAPI cluster-name label (#2590)
- Ensure we generate the webhook manifests.yaml (#2466)
- Finalize CAPI v1.6.0-beta.1 bump & diagnostics implementation (#2498)
- Fix deprecated markers across codebase (#2393)
- Fix error log when default level cannot be set (#2605)
- Fix images in troubleshooting doc (#2621)
- Fix live reload settings for Tilt (#2553)
- Fix opentelemetry dependencies to fix CVE (#2512)
- Fix YAML unmarshal error at test code (#2327)
- Flavor-gen: fix environment value VIP_NETWORK_INTERFACE default assign (#2285)
- Flavor-gen: fix error handling in ClusterTopologyTemplateKubeVIP (#2274)
- Get rid of unstructured type in VSphereVM reconciler (#2353)
- Ginkgo: increase timeout to 3h (#2567)
- Github: add edited and reopened as triggers for the GH workflow approval (#2268)
- Github: add workflow to auto-approve golangci-lint if ok-to-test label is set (#2255)
- Implement consistent pause behavior (#2556)
- Improve API package dependency on controller-runtime (#2234)
- Improve godoc for VSphereCluster.spec.failureDomainSelector (#2321)
- Improve logging for
vspherevm_controller
&vspherevm_ipaddress_reconciler
(#2484) - Improve logging for cluster identity controller (#2426)
- Improve logging for VSphereMachine (#2395)
- Improve logging of VSphereCluster, ProviderServiceAccount and ServiceDiscovery controllers (#2352)
- Including all packages in coverage (#2350)
- Introduce --clustercachetracker-concurrency flag (#2288)
- Introduce a new go.mod for test/ (#2532)
- Kubetest: add flake attempts configuration to match upstream tests (#2485)
- LDFLAGS defined once for Makefile (#2312)
- Lint: enable
gocritic
configuration and fix findings (#2315) - Lint: enable containedctx lint (#2297)
- Lint: enable ginkgolinter and fix findings (#2282)
- Lint: enable nolintlint and fix findings (#2294)
- Lint: fix duplicated words via dupword linter (#2260)
- Lint: fix import aliases via importas linter (#2231)
- Lint: fix the JSON encoding check error via errchkjson linter (#2273)
- Lint: remove linter ignores from .golangci-lint for gosec (#2381)
- Lint: remove skip-files for api/v1alpha3 (#2378)
- Makefile: remove markdownlint and move golangci-lint to lint target (#2254)
- Minor cleanups in Makefile, metadata.yaml and .golangci.yml (#2480)
- Move GetMachineDeploymentNameForCluster to usage site (#2385)
- Move webhooks out of API packages (#2296)
- Only ensure Go minor version (#2341)
- Prevent updating supervisors VSphereMachine.Spec.ResourcePolicyName (#2597)
- Promote rvanderp3 to reviewer (#2483)
- Refactor test data to allow multiple versions (#2250)
- Refactor: Get VSphereMachine functions (#2577)
- Removal of if block usage wrt logging in vsphere machine controller (#2413)
- Remove //nolint:nestif directives (#2410)
- Remove build-dev.sh (#2416)
- Remove context from capv customized controller context (#2431)
- Remove direct dependency to github.com/hashicorp/go-version (#2219)
- Remove handling for orphaned VSphereMachines (#2429)
- Remove Kubebuilder files and markers (#2311)
- Remove lint ignore for
gocritic
(#2399) - Remove lint ignore for comments and unhandled errors (#2383)
- Remove lint ignore for staticcheck (#2427)
- Remove nolint for gosec (#2406)
- Remove nolint usages for errcheck, revive, prealloc, goconst, ineffassign (#2409)
- Remove nolint usages for gocyclo, paralleltest, wrapcheck and gocognit (#2407)
- Remove reconcile when APIserver is online in VSphereCluster controller (#2551)
- Remove regular quickstart from PR blocking job (#2349)
- Rename controller context and golang context (#2309)
- Replace util/pointer with util/ptr (#2581)
- Set log level 5 for vm operator tests (#2547)
- Stop relying on GVK being set on regular typed objects (#2591)
- Sync e2e_suite_test.go with core CAPI (#2598)
- Sync golangci-lint configuration to core CAPI (#2173)
- Test: remove kube-vip cleanup (#2583)
- Test: set logger in e2e suite (#2565)
- Update CI VSphere template to k8s 1.28.0 (#2233)
- Update compatibility in README.md (#2208)
- Upgrade CSI driver to v3.1.0 (#2364)
- Upgrade to CAPI v1.6.0 (#2531)
- Upgrade to CAPI v1.6.0-rc.1 (#2524)
- Use correct image from main per default when running e2e tests locally (#2599)
- Use number of esxi hosts as worker node count for anti-affinity e2e test (#2377)
- Use shellcheck binary instead of self-built docker image (#2211)
- Use Ubuntu 22.04 for e2e tests (#2261)
π Additionally, there have been 5 contributions to our documentation and book. (#2232, #2236, #2241, #2314, #2316)
Thanks to all our contributors! π