v1.10.0
Highlights
- Based on Cluster API v1.7
- Kubernetes v1.30 is now supported
- Add e2e tests for supervisor mode and allow e2e test to be run on vcsim
- Plenty of unit and e2e tests improvements to increase test stability and coverage
- OVA templates have been moved to GitHub releases (#2928)
- The keep alive handler for vSphere sessions is now deprecated and disabled by default (#2896)
Changes since v1.9.0
π Overview
- 175 new commits merged
- 3 feature additions β¨
- 10 bugs fixed π
β¨ New Features
- Add NSX-VPC Network Provider Support (#2848)
- Add vcsim server provider (#2613)
- Add option for non-mandatory IP/DHCP for network device (#2727)
- Allow to set custom label for PCI device (#2471)
π Bug Fixes
- CSI: remove cluster-id from config to let csi generate an id instead of hitting length limits (#2708)
- Ensure entries for ProviderServiceAccount created in the ConfigMap are cleaned up (#2846)
- Fail startup if no CRDs are detected (#2629)
- Fix issue with NCP versioning while using the semver package (#2796)
- Fix vmtoolsd path for/on a flatcar image (#2660)
- Kube-vip: fix prepare script to work on pre k8s v1.29 (#2661)
- Restore v1alpha3/v1alpha4 conversion to fix SSA issue (#2739)
- VSphereVM: ensure that the cache gets updated when patching .status.taskRef (#2677)
π± Others
- Add conformance and upgrade e2e tests (#2594)
- Add e2e test using supervisor mode with vcsim (#2800)
- Add env variables for ClusterCacheTracker (#2869)
- Add generate-test-infra-prowjobs makefile target and update docs (#2630)
- Add GitHub token for release notes action (#2822)
- Add laozc to CAPV reviewer (#2654)
- Add leader election to vcsim component yaml (#2770)
- Add make targets to build and push vm operator image for testing purposes (#2785)
- Add more supervisor tests (#2879)
- Add vm-operator tilt settings (#2803)
- Align docker build to CAPI (#2691)
- API: deprecate PreferredAPIServerCIDR (#2656)
- Bump CPI to v1.30.0-alpha (#2858)
- Bump go 1.21 (#2741)
- Bump Go version to 1.21.8 (#2817)
- Bump golang to v1.21.9 and golang.org/x/net to mitigate CVE-2023-45288 (#2874)
- Bump golangci-lint to v1.57.2 (#2728 #2887)
- Bump govulncheck to v1.0.4 (#2828)
- Bump kpromo to v4.0.5 (#2729)
- Bump Kubernetes images to v1.30.0 (#2920)
- Bump to CPI v1.30.0-rc.0 (#2882)
- Bump vm-operator to v1.8.6 (#2925)
- Bump vSphere CPI to v1.30.0 (#2926)
- Controllers/test: add 3 second timeout to assertion in test to deflake (#2769)
- Controllers/test: use APIReader to not assert on cached information (#2752)
- Controllers/vmware: fix test to not contain data race (#2672)
- Drop codecov from PRs, add token for main (#2884)
- Drop copy of the in-memory runtime and server (#2784)
- Drop duplicate ClusterCacheTracker log name (#2863)
- Drop hack/tools/bootstrap-base (#2786)
- Drop integration tests (#2921)
- E2E: test for CAPV in supervisor mode (#2804)
- E2E: Claim ip addresses dynamically so tests can run in parallel (#2612)
- E2E: disable log collector for vcsim testmode (#2802)
- E2E: implement e2e test for IPAM (#2757)
- E2E: only upload images to gcs if we run tests which need it (#2686)
- Enhancement of Error Handling and Network Status Verification for NSXT (#2902)
- Fix codecov action (#2885)
- Fix ensure-kubectl script (#2635)
- Fix noisy logs in vcsim (#2859)
- Fix release instructions and release note generation (#2823)
- Fix vcsim API replacing int with int32 (#2688)
- Fix vcsim role to include permissions for protected endpoints (#2813)
- Flavorgen: bump CPI manifests and use embed instead of hardcoding (#2625)
- Flavorgen: bump kubevip to v0.6.4 and import from file (#2655)
- Git ignore config-overrides (#2685)
- Github: add release-1.9 to weekly actions and remove release-1.5 (#2627)
- Github: adjust md-link check to refer release-1.10 branch (#2904)
- Github: still create a draft release on release notes generation failures (#2878)
- Hack/e2e.sh cleanup artifacts (#2718)
- Hack/e2e.sh fix waiting for ipam (#2658)
- Hack/tools/janitor: also cleanup child resource pools and folders for capv (#2870)
- Hack/tools/janitor: add capv-janitor for automated ci cleanup (#2681)
- Hack/tools/janitor: fix janitor to properly set kubeconfig and log an error (#2710)
- Hack/tools/janitor: fix printing task id (#2711)
- Hack: add script to run clean-ci using vpn via prow (#2709)
- Hack: follow up fix from aligning image build process (#2720)
- Implement E2E test for vcsim in govmomi mode (#2767)
- Improve patch helper error handling (#2865)
- Introduce MODE and TARGET for E2E tests (#2673)
- Link to new meeting notes (#2880)
- Make Flavor gen templates vcsim friendly (#2771)
- Make PowerOff configurable when using vcsim (#2692)
- Make VirtualMachineClass configurable when using vcsim (#2693)
- Makefile: fix release-notes generator arguments (#2873)
- Move openvpn to community registry (#2634)
- Move vcsim object naming utils to vcsim helpers (#2690)
- Prepare main for development of the new release (#2643)
- Refactor test setup (#2662)
- Remove infraServer and credsSecretName from supervisor ClusterClass (#2862)
- Rename e2e-image (#2652)
- Retry CRD detection during startup (#2927)
- Revert "Replace deprecated wait functions" (#2860)
- Set provider label for vm-operator as runtime-extension (#2801)
- Supervisor flavorgen and templates (#2789)
- Templates: add a script to run prekubeadmcommands in order of files defined in /etc/pre-kubeadm-scripts (#2907)
- Test: bump ipam to v1beta1 (#2790)
- Test: change labels used for creating IPAddressClaims to not hit the 63 characters length limit (#2671)
- Test: change way to get number of hosts to not rely on read hosts permissions (#2664)
- Test: Ensure finalizers are re-reconciled (#2626)
- Test: fix error handling in incluster ip provider (#2674)
- Test: fix inject install on bootstrap script (#2699)
- Test: fix inject install on bootstrap script to allow downgrades (#2701)
- Test: fix log collector for cloud-init (#2678)
- Test: ignore VMs on errors retrieving the properties (#2663)
- Test: remove getClusterctlConfigVariable function and use capi framework functions instead (#2683)
- Test: Replace deprecated ginkgo flags (#2768)
- Test: run the prekubeadmscript first (#2703)
- Test: teardown ipam only on best-effort base to not fail successful tests (#2899)
- Test: use 5 worker nodes for k8s upgrade + conformance test (#2706)
- Update Cluster API IPAM version from v1alpha1 to v1beta1 (#2751)
- Update docs to link to the OVAs in the community-owned GCS bucket (#2641)
- Update docs to link to the OVAs in the community-owned GCS bucket (part II) (#2642)
- Use ControlPlaneEndpointIPVariable consistently (#2831)
- Use min/max funcs from Go SDK (#2742)
- Use pkgs.k8s.io for apt (#2694)
- Use vm operator v1.8.6 for supervisor e2e testing (#2913)
- Vm-operator: remove web-validator and set replicas to 1 (#2798)
π Additionally, there have been 4 contributions to our documentation and book. (#2746, #2761, #2830, #2864)
Dependencies
Added
- github.com/matttproud/golang_protobuf_extensions/v2: v2.0.0
- github.com/vmware-tanzu/nsx-operator/pkg/apis: v0.1.0
- github.com/vmware-tanzu/vm-operator/pkg/constants/testlabels: de75746
- golang.org/x/telemetry: f48c80b
- gopkg.in/evanphx/json-patch.v4: v4.12.0
- gopkg.in/gcfg.v1: v1.2.3
- gopkg.in/warnings.v0: v0.1.2
Changed
- cloud.google.com/go/bigquery: v1.53.0 β v1.4.0
- cloud.google.com/go/datastore: v1.13.0 β v1.1.0
- cloud.google.com/go/firestore: v1.12.0 β v1.1.0
- cloud.google.com/go/pubsub: v1.33.0 β v1.2.0
- cloud.google.com/go: v0.110.7 β v0.54.0
- github.com/evanphx/json-patch/v5: v5.7.0 β v5.9.0
- github.com/evanphx/json-patch: v5.6.0+incompatible β v5.7.0+incompatible
- github.com/fsnotify/fsnotify: v1.6.0 β v1.7.0
- github.com/go-logr/zapr: v1.2.4 β v1.3.0
- github.com/go-openapi/swag: v0.22.3 β v0.22.4
- github.com/golang/protobuf: v1.5.3 β v1.5.4
- github.com/google/cel-go: v0.16.1 β v0.17.7
- github.com/google/uuid: v1.5.0 β v1.6.0
- github.com/gorilla/websocket: v1.4.2 β v1.5.0
- github.com/onsi/ginkgo/v2: v2.14.0 β v2.17.1
- github.com/onsi/gomega: v1.30.0 β v1.32.0
- github.com/prometheus/client_golang: v1.17.0 β v1.18.0
- github.com/prometheus/client_model: 9a2bf30 β v0.5.0
- github.com/prometheus/common: v0.44.0 β v0.45.0
- github.com/prometheus/procfs: v0.11.1 β v0.12.0
- github.com/rogpeppe/go-internal: v1.10.0 β v1.11.0
- github.com/sagikazarmark/locafero: v0.3.0 β v0.4.0
- github.com/sergi/go-diff: v1.1.0 β v1.2.0
- github.com/spf13/afero: v1.10.0 β v1.11.0
- github.com/spf13/cast: v1.5.1 β v1.6.0
- github.com/spf13/viper: v1.17.0 β v1.18.2
- github.com/stretchr/objx: v0.5.0 β v0.5.2
- github.com/stretchr/testify: v1.8.4 β v1.9.0
- github.com/vmware-tanzu/net-operator-api: 42131d6 β 1f32d6b
- github.com/vmware-tanzu/vm-operator/api: v1.8.5 β v1.8.6
- github.com/vmware-tanzu/vm-operator/external/ncp: 5477585 β de75746
- github.com/vmware-tanzu/vm-operator/external/tanzu-topology: 5477585 β de75746
- github.com/vmware/govmomi: v0.34.2 β v0.37.1
- go.etcd.io/bbolt: v1.3.7 β v1.3.8
- go.etcd.io/etcd/api/v3: v3.5.10 β v3.5.13
- go.etcd.io/etcd/client/pkg/v3: v3.5.10 β v3.5.13
- go.etcd.io/etcd/client/v2: v2.305.9 β v2.305.10
- go.etcd.io/etcd/client/v3: v3.5.10 β v3.5.13
- go.etcd.io/etcd/pkg/v3: v3.5.9 β v3.5.10
- go.etcd.io/etcd/raft/v3: v3.5.9 β v3.5.10
- go.etcd.io/etcd/server/v3: v3.5.9 β v3.5.10
- go.uber.org/zap: v1.25.0 β v1.26.0
- golang.org/x/crypto: v0.18.0 β v0.22.0
- golang.org/x/mod: v0.14.0 β v0.17.0
- golang.org/x/net: v0.20.0 β v0.24.0
- golang.org/x/oauth2: v0.14.0 β v0.18.0
- golang.org/x/sync: v0.6.0 β v0.7.0
- golang.org/x/sys: v0.16.0 β v0.19.0
- golang.org/x/term: v0.16.0 β v0.19.0
- golang.org/x/time: v0.3.0 β v0.5.0
- golang.org/x/tools: v0.17.0 β v0.20.0
- google.golang.org/genproto/googleapis/api: 007df8e β bbf56f3
- google.golang.org/genproto/googleapis/rpc: e6e6cda β 83a465c
- google.golang.org/genproto: 007df8e β bbf56f3
- google.golang.org/protobuf: v1.31.0 β v1.33.0
- k8s.io/api: v0.28.5 β v0.29.3
- k8s.io/apiextensions-apiserver: v0.28.5 β v0.29.3
- k8s.io/apimachinery: v0.28.5 β v0.29.3
- k8s.io/apiserver: v0.28.5 β v0.29.3
- k8s.io/cli-runtime: v0.28.4 β v0.29.3
- k8s.io/client-go: v0.28.5 β v0.29.3
- k8s.io/cluster-bootstrap: v0.28.5 β v0.29.3
- k8s.io/code-generator: v0.28.5 β v0.29.3
- k8s.io/component-base: v0.28.5 β v0.29.3
- k8s.io/component-helpers: v0.28.4 β v0.29.3
- k8s.io/gengo: c0856e2 β 9cce18d
- k8s.io/klog/v2: v2.100.1 β v2.110.1
- k8s.io/kms: v0.28.5 β v0.29.3
- k8s.io/kube-openapi: 2695361 β 2dd684a
- k8s.io/kubectl: v0.28.4 β v0.29.3
- k8s.io/metrics: v0.28.4 β v0.29.3
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.1.2 β v0.28.0
- sigs.k8s.io/cluster-api: v1.6.1 β v1.7.1
- sigs.k8s.io/controller-runtime: v0.16.3 β v0.17.3
- sigs.k8s.io/kustomize/api: v0.16.0 β v0.17.1
- sigs.k8s.io/kustomize/kyaml: v0.16.0 β v0.17.0
- sigs.k8s.io/structured-merge-diff/v4: v4.2.3 β v4.4.1
Removed
- cloud.google.com/go/accessapproval: v1.7.1
- cloud.google.com/go/accesscontextmanager: v1.8.1
- cloud.google.com/go/aiplatform: v1.48.0
- cloud.google.com/go/analytics: v0.21.3
- cloud.google.com/go/apigateway: v1.6.1
- cloud.google.com/go/apigeeconnect: v1.6.1
- cloud.google.com/go/apigeeregistry: v0.7.1
- cloud.google.com/go/appengine: v1.8.1
- cloud.google.com/go/area120: v0.8.1
- cloud.google.com/go/artifactregistry: v1.14.1
- cloud.google.com/go/asset: v1.14.1
- cloud.google.com/go/assuredworkloads: v1.11.1
- cloud.google.com/go/automl: v1.13.1
- cloud.google.com/go/baremetalsolution: v1.1.1
- cloud.google.com/go/batch: v1.3.1
- cloud.google.com/go/beyondcorp: v1.0.0
- cloud.google.com/go/billing: v1.16.0
- cloud.google.com/go/binaryauthorization: v1.6.1
- cloud.google.com/go/certificatemanager: v1.7.1
- cloud.google.com/go/channel: v1.16.0
- cloud.google.com/go/cloudbuild: v1.13.0
- cloud.google.com/go/clouddms: v1.6.1
- cloud.google.com/go/cloudtasks: v1.12.1
- cloud.google.com/go/contactcenterinsights: v1.10.0
- cloud.google.com/go/container: v1.24.0
- cloud.google.com/go/containeranalysis: v0.10.1
- cloud.google.com/go/datacatalog: v1.16.0
- cloud.google.com/go/dataflow: v0.9.1
- cloud.google.com/go/dataform: v0.8.1
- cloud.google.com/go/datafusion: v1.7.1
- cloud.google.com/go/datalabeling: v0.8.1
- cloud.google.com/go/dataplex: v1.9.0
- cloud.google.com/go/dataproc/v2: v2.0.1
- cloud.google.com/go/dataqna: v0.8.1
- cloud.google.com/go/datastream: v1.10.0
- cloud.google.com/go/deploy: v1.13.0
- cloud.google.com/go/dialogflow: v1.40.0
- cloud.google.com/go/dlp: v1.10.1
- cloud.google.com/go/documentai: v1.22.0
- cloud.google.com/go/domains: v0.9.1
- cloud.google.com/go/edgecontainer: v1.1.1
- cloud.google.com/go/errorreporting: v0.3.0
- cloud.google.com/go/essentialcontacts: v1.6.2
- cloud.google.com/go/eventarc: v1.13.0
- cloud.google.com/go/filestore: v1.7.1
- cloud.google.com/go/functions: v1.15.1
- cloud.google.com/go/gkebackup: v1.3.0
- cloud.google.com/go/gkeconnect: v0.8.1
- cloud.google.com/go/gkehub: v0.14.1
- cloud.google.com/go/gkemulticloud: v1.0.0
- cloud.google.com/go/gsuiteaddons: v1.6.1
- cloud.google.com/go/iam: v1.1.1
- cloud.google.com/go/iap: v1.8.1
- cloud.google.com/go/ids: v1.4.1
- cloud.google.com/go/iot: v1.7.1
- cloud.google.com/go/kms: v1.15.0
- cloud.google.com/go/language: v1.10.1
- cloud.google.com/go/lifesciences: v0.9.1
- cloud.google.com/go/logging: v1.7.0
- cloud.google.com/go/longrunning: v0.5.1
- cloud.google.com/go/managedidentities: v1.6.1
- cloud.google.com/go/maps: v1.4.0
- cloud.google.com/go/mediatranslation: v0.8.1
- cloud.google.com/go/memcache: v1.10.1
- cloud.google.com/go/metastore: v1.12.0
- cloud.google.com/go/monitoring: v1.15.1
- cloud.google.com/go/networkconnectivity: v1.12.1
- cloud.google.com/go/networkmanagement: v1.8.0
- cloud.google.com/go/networksecurity: v0.9.1
- cloud.google.com/go/notebooks: v1.9.1
- cloud.google.com/go/optimization: v1.4.1
- cloud.google.com/go/orchestration: v1.8.1
- cloud.google.com/go/orgpolicy: v1.11.1
- cloud.google.com/go/osconfig: v1.12.1
- cloud.google.com/go/oslogin: v1.10.1
- cloud.google.com/go/phishingprotection: v0.8.1
- cloud.google.com/go/policytroubleshooter: v1.8.0
- cloud.google.com/go/privatecatalog: v0.9.1
- cloud.google.com/go/pubsublite: v1.8.1
- cloud.google.com/go/recaptchaenterprise/v2: v2.7.2
- cloud.google.com/go/recommendationengine: v0.8.1
- cloud.google.com/go/recommender: v1.10.1
- cloud.google.com/go/redis: v1.13.1
- cloud.google.com/go/resourcemanager: v1.9.1
- cloud.google.com/go/resourcesettings: v1.6.1
- cloud.google.com/go/retail: v1.14.1
- cloud.google.com/go/run: v1.2.0
- cloud.google.com/go/scheduler: v1.10.1
- cloud.google.com/go/secretmanager: v1.11.1
- cloud.google.com/go/security: v1.15.1
- cloud.google.com/go/securitycenter: v1.23.0
- cloud.google.com/go/servicedirectory: v1.11.0
- cloud.google.com/go/shell: v1.7.1
- cloud.google.com/go/spanner: v1.47.0
- cloud.google.com/go/speech: v1.19.0
- cloud.google.com/go/storagetransfer: v1.10.0
- cloud.google.com/go/talent: v1.6.2
- cloud.google.com/go/texttospeech: v1.7.1
- cloud.google.com/go/tpu: v1.6.1
- cloud.google.com/go/trace: v1.10.1
- cloud.google.com/go/translate: v1.8.2
- cloud.google.com/go/video: v1.19.0
- cloud.google.com/go/videointelligence: v1.11.1
- cloud.google.com/go/vision/v2: v2.7.2
- cloud.google.com/go/vmmigration: v1.7.1
- cloud.google.com/go/vmwareengine: v1.0.0
- cloud.google.com/go/vpcaccess: v1.7.1
- cloud.google.com/go/webrisk: v1.9.1
- cloud.google.com/go/websecurityscanner: v1.6.1
- cloud.google.com/go/workflows: v1.11.1
- github.com/benbjohnson/clock: v1.3.0
- github.com/docker/distribution: v2.8.3+incompatible
- github.com/godbus/dbus/v5: v5.0.4
- github.com/google/gnostic: v0.5.7-v3refs
- go.opentelemetry.io/otel/exporters/otlp/internal/retry: v1.10.0
- gopkg.in/evanphx/json-patch.v5: v5.6.0
Thanks to all our contributors! π