Highlights
- Tested with Kubernetes v1.33 & cloud-provider-vsphere v1.33
- Based on Cluster API v1.10
- Bumped to Go 1.23, controller-runtime v0.20, k8s.io/* v0.32, controller-gen v0.17
- Implemented v1beta2 conditions for all CRDs
- Improved & extended e2e test coverage, e.g. added Scale and NodeDrain e2e test
govmomi mode:
- Add ability to add new data disks to VM during clone process (#3214 ##3332)
- Add VM naming strategy (#3286)
Changes since v1.12
📈 Overview
- 92 new commits merged
- 1 breaking change ⚠️
- 6 feature additions ✨
- 3 bugs fixed 🐛
⚠️ Breaking Changes
- Bump to CAPI v1.10, CR v0.20, CT v0.17, add PQ fg (#3323)
✨ New Features
- Add ability to add new data disks to VM during clone process (#3214)
- Add ability to configure data disk provision type during clone (#3332)
- Add VM naming strategy for VMs in govmomi mode (#3286)
- Bump Kubernetes to v1.32 and add new OVA's (#3294)
- Implement CRD migration & bump CAPI to c9261b079e0b (#3367)
- Improve CRD migration & bump to CAPI release-1.10 (19th March) (#3410)
🐛 Bug Fixes
- Avoid redundant reconciles if only generation of Paused condition changed & bump CAPI to main (17th March, 9e7afa749358) (#3398)
- Vspheremachinetemplate: don't reconcile if className is not set (#3380)
- Vspherevm: don't requeue on deletenode when there is no ClusterCache connection (#3296)
🌱 Others
- Add v1beta2 conditions to vSphereCluster, supervisor mode (#3383)
- Add v1beta2 conditions to VSphereMachine and VSphereVM (#3406)
- Adjust weekly gh actions to run for release-1.13 branch (#3421)
- Align CRD migration flag to core CAPI (#3386)
- Align ginkgo flags to core CAPI (#3342)
- Bump to CAPI to main (12th March, ccaea78cdbf0) (#3392)
- Bump to CAPI to v1.10.0-rc.1, K8S and CPI to v1.33.0-rc.0 (#3425)
- Bump to CPI to v1.32.0-rc.0 (#3269)
- Bump to CPI to v1.33.0 (#3442)
- Bump to CPI to v1.33.0-beta.0 (#3395)
- Bump envtest to v1.32.0 (#3313)
- Bump go 1.23.8 (#3447)
- Bump go v1.22.10 (#3279)
- Bump golang.org/x/net to v0.33.0 (#3309)
- Bump govulncheck to v1.1.4 (#3333)
- Bump k8s.io/cluster-bootstrap to v0.32.1 (#3328)
- Bump kpromo to 5ab0dbc74b0228c22a93d240596dff77464aee8f (#3305)
- Bump kubernetes release to v1.32.0-rc.1 (#3284)
- Bump Kubernetes to v1.33 and add new OVA's (#3436)
- Bump Kubernetes version used for testing to v1.33.0-beta.0 (#3389)
- Bump sigs.k8s.io/cluster-api to v1.9.0 (#3291)
- Bump sigs.k8s.io/cluster-api to v1.9.1 (#3303)
- Bump the all-go-mod-patch-and-minor group across 2 directories with 5 updates (#3320)
- Bump to CAPI v1.10.0-beta.1 (#3414)
- Bump to CAPI v1.10.0-rc.0 (#3419)
- Bump to controller-runtime v0.19.4 (#3318)
- Bump to Go 1.23.6 (#3345)
- Bump to Kubernetes v1.33.0-rc.1 (#3427)
- Bump to CAPI v1.10.1 (#3444)
- CI: bump IPAM provider for e2e tests to v1.0 (#3267)
- CI: Bump Kubernetes version to v1.32.0-rc.0 (#3264)
- CI: run golangci-lint for packaging module (#3262)
- Cleanup copy of CopyAndAmendClusterctlConfig (#3337)
- Controllers: fix vspherecluster test flake on vspherecluster deletion (#3393)
- Controllers: set finalizer in all controllers first to avoid race conditions between init and delete (#3388)
- E2e: add NodeDrain e2e test (#3277)
- E2e: fix provisioningMode in tests (#3352)
- E2e: fixes to node-drain and multidisk e2e test (#3358)
- E2e: properly label and cleanup created PVCs during e2e tests in prow (#3361)
- E2e: servicediscovery controller to have an ip to discover in tests (#3405)
- Flavorgen: remove thumbprint from vSphereMachineTemplate for easier rotation (#3375)
- Govmomi: properly handle InvalidPowerState false-positive error for tasks (#3378)
- Hack: make create-mirror-repository-pr.sh executable and easier to use (#3288)
- Hack: try to pull from gcr.io/k8s-staging-capi-vsphere/extra/ instead of docker hub (#3408)
- Log version directly on controller startup (#3387)
- Minor fixups vsphere.yaml's (#3308)
- Prepare main branch for v1.13 development (#3321)
- Scale test with vcsim (#3329)
- Scale: reduce replicas and amount of clusters as we test upgrades too to reduce load (#3354)
- Supervisor: create the VirtualMachineService for the control plane without a name suffix (#3415)
- Templates: remove cloud-provider flag for kube-apiserver due to removal in v1.33 (#3365)
- Test: enable upgrades for scale-test and bump CAPI to d5158c2503c84bcf2fc35cf463fca486892b5fae (#3343)
- Test: shutdown clustercache when ctx is done (#3344)
- Update branch matrix for weekly GitHub actions (#3266)
- V1beta2: add v1beta2 paused condition for all objects (#3394)
- V1beta2: implement VSphereCluster's Ready, FailureDomainsReady, ClusterModulesReady and VCenterAvailable conditions for govmomi (#3396)
- Vcsim: wait for powered on VM and use mac address reference to set IP (#3351)
- Vspheredeploymentzone/vsphereclusteridentity: implement v1beta2 conditions, govmomi (#3401)
📖 Additionally, there has been 1 contribution to our documentation and book. (#3301)
Dependencies
Added
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.25.0
- github.com/go-viper/mapstructure/v2: v2.2.1
- github.com/planetscale/vtprotobuf: 0393e58
- github.com/prashantv/gostub: v1.1.0
- go.opentelemetry.io/contrib/detectors/gcp: v1.28.0
- go.opentelemetry.io/otel/sdk/metric: v1.28.0
- go.uber.org/automaxprocs: v1.6.0
Changed
- cel.dev/expr: v0.15.0 → v0.18.0
- cloud.google.com/go/compute/metadata: v0.3.0 → v0.5.2
- github.com/Azure/go-ansiterm: d185dfc → 306776e
- github.com/a8m/tree: 10a5fd5 → 36ae24d
- github.com/cncf/xds/go: 555b57e → 024c85f
- github.com/coredns/corefile-migration: v1.0.24 → v1.0.26
- github.com/cpuguy83/go-md2man/v2: v2.0.4 → v2.0.6
- github.com/dougm/pretty: 2ee9d74 → add1dbc
- github.com/emicklei/go-restful/v3: v3.12.1 → v3.12.2
- github.com/envoyproxy/go-control-plane: v0.12.0 → v0.13.0
- github.com/envoyproxy/protoc-gen-validate: v1.0.4 → v1.1.0
- github.com/evanphx/json-patch/v5: v5.9.0 → v5.9.11
- github.com/fsnotify/fsnotify: v1.7.0 → v1.8.0
- github.com/go-openapi/jsonpointer: v0.19.6 → v0.21.0
- github.com/go-openapi/swag: v0.22.4 → v0.23.0
- github.com/golang/glog: v1.2.1 → v1.2.2
- github.com/google/btree: v1.0.1 → v1.1.3
- github.com/google/cel-go: v0.20.1 → v0.22.0
- github.com/google/go-cmp: v0.6.0 → v0.7.0
- github.com/google/pprof: d1b30fe → 27863c8
- github.com/gorilla/websocket: v1.5.0 → v1.5.3
- github.com/gregjones/httpcache: 9cad4c3 → 901d907
- github.com/imdario/mergo: v0.3.13 → v0.3.6
- github.com/jessevdk/go-flags: v1.4.0 → v1.6.1
- github.com/jonboulle/clockwork: v0.2.2 → v0.4.0
- github.com/moby/spdystream: v0.4.0 → v0.5.0
- github.com/onsi/ginkgo/v2: v2.22.0 → v2.23.4
- github.com/onsi/gomega: v1.36.0 → v1.37.0
- github.com/pelletier/go-toml/v2: v2.2.2 → v2.2.3
- github.com/rasky/go-xdr: 4930550 → 1a41d1a
- github.com/sagikazarmark/locafero: v0.4.0 → v0.7.0
- github.com/spf13/afero: v1.11.0 → v1.12.0
- github.com/spf13/cast: v1.7.0 → v1.7.1
- github.com/spf13/cobra: v1.8.1 → v1.9.1
- github.com/spf13/pflag: v1.0.5 → v1.0.6
- github.com/spf13/viper: v1.19.0 → v1.20.0
- github.com/stoewer/go-strcase: v1.2.0 → v1.3.0
- github.com/vmware/govmomi: v0.46.2 → v0.49.0
- github.com/vmware/vmw-guestinfo: 25eff15 → 510905f
- github.com/xiang90/probing: 43a291a → a49e3df
- go.etcd.io/bbolt: v1.3.9 → v1.3.11
- go.etcd.io/etcd/api/v3: v3.5.17 → v3.5.20
- go.etcd.io/etcd/client/pkg/v3: v3.5.17 → v3.5.20
- go.etcd.io/etcd/client/v2: v2.305.13 → v2.305.16
- go.etcd.io/etcd/client/v3: v3.5.17 → v3.5.20
- go.etcd.io/etcd/pkg/v3: v3.5.13 → v3.5.16
- go.etcd.io/etcd/raft/v3: v3.5.13 → v3.5.16
- go.etcd.io/etcd/server/v3: v3.5.13 → v3.5.16
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.53.0 → v0.54.0
- go.opentelemetry.io/otel/metric: v1.28.0 → v1.29.0
- go.opentelemetry.io/otel/sdk: v1.28.0 → v1.29.0
- go.opentelemetry.io/otel/trace: v1.28.0 → v1.29.0
- go.opentelemetry.io/otel: v1.28.0 → v1.29.0
- golang.org/x/crypto: v0.31.0 → v0.36.0
- golang.org/x/mod: v0.22.0 → v0.24.0
- golang.org/x/net: v0.32.0 → v0.37.0
- golang.org/x/oauth2: v0.24.0 → v0.28.0
- golang.org/x/sync: v0.10.0 → v0.12.0
- golang.org/x/sys: v0.28.0 → v0.32.0
- golang.org/x/term: v0.27.0 → v0.30.0
- golang.org/x/text: v0.21.0 → v0.23.0
- golang.org/x/time: v0.5.0 → v0.8.0
- golang.org/x/tools: v0.27.0 → v0.31.0
- golang.org/x/xerrors: 04be3eb → 5ec99f8
- gomodules.xyz/jsonpatch/v2: v2.4.0 → v2.5.0
- google.golang.org/genproto/googleapis/api: 5315273 → e6fa225
- google.golang.org/genproto/googleapis/rpc: f6361c8 → 3abc09e
- google.golang.org/genproto: b8732ec → ef43131
- google.golang.org/grpc: v1.65.1 → v1.67.3
- google.golang.org/protobuf: v1.35.1 → v1.36.5
- k8s.io/api: v0.31.3 → v0.32.3
- k8s.io/apiextensions-apiserver: v0.31.3 → v0.32.3
- k8s.io/apimachinery: v0.31.3 → v0.32.3
- k8s.io/apiserver: v0.31.3 → v0.32.3
- k8s.io/client-go: v0.31.3 → v0.32.3
- k8s.io/cluster-bootstrap: v0.31.3 → v0.32.3
- k8s.io/code-generator: v0.31.3 → v0.32.3
- k8s.io/component-base: v0.31.3 → v0.32.3
- k8s.io/gengo/v2: 51d4e06 → 2b36238
- k8s.io/kms: v0.31.3 → v0.32.3
- k8s.io/kube-openapi: 70dd376 → 32ad38e
- k8s.io/utils: 18e509b → 3ea5e8c
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.30.3 → v0.31.0
- sigs.k8s.io/cluster-api: v1.9.1 → v1.10.1
- sigs.k8s.io/controller-runtime: v0.19.3 → v0.20.4
- sigs.k8s.io/json: bc3834c → 9aa6b5e
- sigs.k8s.io/structured-merge-diff/v4: v4.4.1 → v4.4.2
Removed
- github.com/hashicorp/hcl: v1.0.0
- github.com/magiconair/properties: v1.8.7
- github.com/mitchellh/mapstructure: v1.5.0
- github.com/sagikazarmark/slog-shim: v0.1.0
- gopkg.in/ini.v1: v1.67.0
Thanks to all our contributors! 😊