Skip to content

Merge https://github.com/kubernetes/cloud-provider-vsphere:master (55e3183) into main#118

Open
cloud-team-rebase-bot[bot] wants to merge 96 commits into
openshift:mainfrom
openshift-cloud-team:rebase-bot-main
Open

Merge https://github.com/kubernetes/cloud-provider-vsphere:master (55e3183) into main#118
cloud-team-rebase-bot[bot] wants to merge 96 commits into
openshift:mainfrom
openshift-cloud-team:rebase-bot-main

Conversation

@cloud-team-rebase-bot
Copy link
Copy Markdown

@cloud-team-rebase-bot cloud-team-rebase-bot Bot commented Apr 13, 2026

Summary by CodeRabbit

  • Chores

    • Go toolchain set to 1.26; broad dependency refresh across modules.
    • CI/build images and workflow checkout pins updated; security scanner bumped.
    • Helm chart metadata, values, and repo index updated; README compatibility matrix revised.
  • New Features

    • Default controller image/tag advanced to v1.36.0 and manifests for v1.36 created.
    • Runtime option to select VM Operator API version; multi-version adapter factory added.
    • RBAC expanded for Endpointslices and dual-stack service support.
  • Tests

    • Many new and updated unit tests covering adapters, clients, VMService, and dual-stack behaviors.

dependabot Bot and others added 27 commits February 2, 2026 23:44
Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.27.3 to 2.28.1.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.27.3...v2.28.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-version: 2.28.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.49.0 to 0.51.0.
- [Commits](golang/net@v0.49.0...v0.51.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.51.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github.com/vmware/govmomi](https://github.com/vmware/govmomi) from 0.52.0 to 0.53.0.
- [Release notes](https://github.com/vmware/govmomi/releases)
- [Changelog](https://github.com/vmware/govmomi/blob/main/CHANGELOG.md)
- [Commits](vmware/govmomi@v0.52.0...v0.53.0)

---
updated-dependencies:
- dependency-name: github.com/vmware/govmomi
  dependency-version: 0.53.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…les/master/golang.org/x/net-0.51.0

🌱 (chore): Bump golang.org/x/net from 0.49.0 to 0.51.0
…les/test/e2e/master/github.com/vmware/govmomi-0.53.0

🌱 (chore): Bump github.com/vmware/govmomi from 0.52.0 to 0.53.0 in /test/e2e
…les/hack/tools/master/github.com/onsi/ginkgo/v2-2.28.1

🌱 (chore): Bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.28.1 in /hack/tools
Signed-off-by: Gong Zhang <gongz@vmware.com>
Fix CVE from go.opentelemetry.io/otel/metric 1.36.0
Signed-off-by: Gong Zhang <gongz@vmware.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.51.0 to 0.52.0.
- [Commits](golang/net@v0.51.0...v0.52.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.52.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…les/master/golang.org/x/net-0.52.0

🌱 (chore): Bump golang.org/x/net from 0.51.0 to 0.52.0
Signed-off-by: Gong Zhang <gongz@vmware.com>
Signed-off-by: Gong Zhang <gongz@vmware.com>
Signed-off-by: Gong Zhang <gongz@vmware.com>
Bump trivy and go version for security scan and fix
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.47.0 to 0.49.0.
- [Commits](golang/crypto@v0.47.0...v0.49.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…les/test/e2e/master/golang.org/x/crypto-0.49.0

🌱 (chore): Bump golang.org/x/crypto from 0.47.0 to 0.49.0 in /test/e2e
Update vm-operator to a version compatible with the required controller-runtime.
This is required to satisfy the HasSyncedChecker interface
introduced in client-go v0.36.0-beta.0.

vm-operator version is aligned with CAPV.

Signed-off-by: Gong Zhang <gongz@vmware.com>
Dependabot automatically bumped k8s.io dependencies from v0.35.0-rc.0
to v0.36.0-alpha.0 on master before the release-1.35 branch was cut,
causing the release branch to inherit wrong dependency versions.

Add ignore rules for k8s.io/* to prevent this:

- On master: block semver-minor and semver-major auto-bumps. Patch
  bumps (e.g. 0.35.1 -> 0.35.1) are still allowed.

- On release branches (1.35, 1.34, 1.33): fully ignore k8s.io/*
  including patch updates. As a Kubernetes core component,
  cloud-provider-vsphere release branches follow the Kubernetes patch
  release schedule and k8s dependencies are updated manually.
Bumps the all-github-actions group with 1 update: [azure/setup-helm](https://github.com/azure/setup-helm).


Updates `azure/setup-helm` from 4 to 5
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md)
- [Commits](Azure/setup-helm@v4...v5)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the onsi group in /test/e2e with 2 updates: [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) and [github.com/onsi/gomega](https://github.com/onsi/gomega).


Updates `github.com/onsi/ginkgo/v2` from 2.27.3 to 2.28.1
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.27.3...v2.28.1)

Updates `github.com/onsi/gomega` from 1.38.3 to 1.39.0
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.38.3...v1.39.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-version: 2.28.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: onsi
- dependency-name: github.com/onsi/gomega
  dependency-version: 1.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: onsi
...

Signed-off-by: dependabot[bot] <support@github.com>
This commit bumps below dependencies:
- k8s.io/* to v0.36.0-rc.0
- go.etcd.io/etcd/client/v3 to v3.6.10
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 13, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Introduce a version-agnostic VM Operator adapter/factory and hub types; refactor CPI components (instances, loadbalancer, zones, vmservice) to use the adapter; add adapters (v1alpha2, v1alpha5, v1alpha6) with fakes/tests; remove legacy vmoperator client code; plus CI, tooling, chart, manifest, and module/version bumps.

Changes

VM Operator adapter + CPI wiring (single DAG)

Layer / File(s) Summary
Hub types & interface
pkg/cloudprovider/vsphereparavirtual/vmoperator/types/types.go, pkg/cloudprovider/vsphereparavirtual/vmoperator/interface.go
Add version-agnostic hub types and replace the versioned vm-operator interface with VirtualMachines() / VirtualMachineServices() accessors operating on hub types.
Factory
pkg/cloudprovider/vsphereparavirtual/vmoperator/factory/factory.go, .../factory_test.go
Add NewAdapter(version, cfg) dispatcher selecting v1alpha2/v1alpha5/v1alpha6 adapters; tests for supported/unsupported versions.
Adapters (impl, conversion, dual-stack, fakes, tests)
pkg/cloudprovider/vsphereparavirtual/vmoperator/adapter/v1alpha2/*, .../v1alpha5/*, .../v1alpha6/* (including fake/* and *_test.go)
Introduce adapters implementing vmop.Interface, conversion helpers between API types and hub types, dual-stack handling in v1alpha6, plus per-version fake helpers and comprehensive adapter tests.
Provider dynamic clients
pkg/cloudprovider/vsphereparavirtual/vmoperator/provider/v1alpha2/client.go, .../v1alpha5/client.go, .../v1alpha6/client.go + tests
Add dynamic-client-based provider clients (GVRs, constructors, CRUD/list methods) consumed by adapters and covered by tests.
Remove legacy client scaffolding
pkg/cloudprovider/vsphereparavirtual/vmoperator/client/*, .../client/*_test.go, .../fake_client.go (deleted)
Delete previous versioned client and fake scaffolding replaced by the adapter/provider stack.
VMService layer -> hub types
pkg/cloudprovider/vsphereparavirtual/vmservice/vmservice.go, pkg/cloudprovider/vsphereparavirtual/vmservice/types.go, .../vmservice_test.go
Refactor VMService to use VirtualMachineServiceInfo hub types; rewrite create/update/get/delete flows, add comparison/normalization logic and IPFamily/dual-stack handling; update tests.
CPI components wiring
pkg/cloudprovider/vsphereparavirtual/cloud.go, loadbalancer.go, instances.go, zone.go and tests
Add --vm-operator-api-version flag; Initialize uses factory.NewAdapter; NewLoadBalancer, NewInstances, NewZones accept vmop.Interface; discovery and instance logic updated to hub types; tests switched to adapter fakes.
Load balancer status mapping & tests
pkg/cloudprovider/vsphereparavirtual/loadbalancer.go, loadbalancer_test.go
Rewrite to use VMServiceInfo status for LoadBalancerStatus (map IP/Hostname entries), update Ensure/Update/Get to use vmservice adapter; add unit test for ingress conversion.
sequenceDiagram
    participant CPI as CloudProvider (Initialize)
    participant Factory as vmoperator.Factory
    participant Adapter as vmoperator.Adapter (v1alpha*)
    participant Dyn as dynamic API server
    participant VMService as VMService / LoadBalancer

    CPI->>Factory: NewAdapter(apiVersion, rest.Config)
    Factory->>Adapter: construct adapter instance
    Adapter->>Dyn: CRUD / Get / List VirtualMachine(s) and VirtualMachineService(s)
    Dyn-->>Adapter: unstructured typed objects
    Adapter-->>CPI: hub types (VirtualMachineInfo / VirtualMachineServiceInfo)
    CPI->>VMService: NewLoadBalancer/NewInstances/NewZones(vmop.Interface)
    VMService->>Adapter: Get/Create/Update VMService using hub types
    Adapter->>Dyn: Update/Create unstructured VMService (including dual-stack)
    Dyn-->>Adapter: updated object / errors
    Adapter-->>VMService: result (hub types) / errors
Loading

CI, tooling, and build updates (independent DAG)

Layer / File(s) Summary
GitHub workflows (general)
.github/workflows/auto-sync-gh-pages.yml, .github/workflows/bump-k8s-dep.yml, .github/workflows/bump-test-k8s-dep.yml, .github/workflows/generate-release-notes.yml
Bump actions/checkout usage from v6.0.1 → v6.0.2.
GitHub workflow (security)
.github/workflows/weekly-security-scan.yaml
Repin actions/checkout to v6.0.2 and update actions/setup-go to v6.4.0.
Makefile / Trivy / Go default
Makefile
Add GO_VERSION ?= 1.26.0; bump TRIVY_VER 0.49.1 → 0.69.2.
Cloud Build images
cloudbuild.yaml, cloudbuild-nightly.yaml
Replace digest-pinned gcb-docker-gcloud image with named tag v20260205-38cfa9523f.
Go toolchain & modules
go.mod, hack/tools/go.mod, test/e2e/go.mod
Bump Go versions to 1.26.0 (where present) and refresh many direct/indirect dependencies (k8s libs → v0.36.0, govmomi, OpenTelemetry, ginkgo/gomega, golang.org/x/*, etc.).

Helm, charts, manifests, and release artifacts (independent DAG)

Layer / File(s) Summary
Helm chart metadata & values
charts/vsphere-cpi/Chart.yaml, charts/vsphere-cpi/values.yaml, charts/vsphere-cpi/README.md
Bump chart appVersion and version to 1.36.0; default daemonset image tag → v1.36.0; adjust packaging VERSION snippet.
Chart templates RBAC
charts/vsphere-cpi/templates/role.yaml
Add RBAC rule allowing get,list,watch on discovery.k8s.io/endpointslices.
Helm index & packaged chart
index.yaml
Replace vsphere-cpi entry 1.35.1 with 1.36.0 and update timestamps/digest/urls.
Manifests & release manifests
manifests/controller-manager/*, releases/v1.35/*, releases/v1.36/*, docs/book/tutorials/disable-node-deletion.yaml, releases/README.md, README.md
Update CPI image tags and add releases/v1.36 manifest; adjust docs and compatibility matrix entries.

Tests & supporting changes (scattered, same DAG as adapters)

Layer / File(s) Summary
Unit/integration tests migrated to adapter fakes
pkg/cloudprovider/vsphereparavirtual/*_test.go, vmoperator/adapter/*/fake/*
Migrate tests from legacy fake client to new adapter fake helpers; add adapter/client tests covering CRUD, conflict propagation, dual-stack scenarios, and resource-version pass-through.
Removed legacy tests/helpers
pkg/cloudprovider/vsphereparavirtual/vmoperator/client/*_test.go, .../client/* (deleted)
Remove older dynamic client wrappers and their test suites replaced by new provider/adapters and test coverage.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

@openshift-ci openshift-ci Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Apr 13, 2026
@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 13, 2026

Hi @cloud-team-rebase-bot[bot]. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@cloud-team-rebase-bot cloud-team-rebase-bot Bot changed the title Merge https://github.com/kubernetes/cloud-provider-vsphere:master (9aa2bf7) into main Merge https://github.com/kubernetes/cloud-provider-vsphere:master (ee51543) into main May 26, 2026
dependabot Bot and others added 26 commits May 26, 2026 23:06
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.51.0 to 0.52.0.
- [Commits](golang/crypto@v0.51.0...v0.52.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.52.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…les/test/e2e/master/golang.org/x/crypto-0.52.0

🌱 (chore): Bump golang.org/x/crypto from 0.51.0 to 0.52.0 in /test/e2e
Update OWNERS according Openshift project needs.
Remove upstream OWNERS_ALIASES file, we do not use it
at the moment.

# Conflicts:
#	OWNERS_ALIASES

# Conflicts:
#	OWNERS_ALIASES

# Conflicts:
#	OWNERS_ALIASES

# Conflicts:
#	OWNERS_ALIASES

# Conflicts:
#	OWNERS_ALIASES
Added Openshift specific builds scripts, linter/tests/etc
runners. Extended makefile with OCP specific targets.

Upstream version of lint, and fmt pollutes
go.mod and go.sum files, so, own versions of such scripts was
introduced.
…ents

OCP build system does expect *.assembly.stream.json and
build system specific Dockerfile files to be copied into the build container.
Remove respective entries from the .dockerignore to satisfy this requirement.
# Conflicts:
#	.github/workflows/release.yml

# Conflicts:
#	.github/workflows/auto-release-helm-chart.yml

# Conflicts:
#	.github/workflows/auto-release-helm-chart.yml

# Conflicts:
#	.github/workflows/auto-release-helm-chart.yml

# Conflicts:
#	.github/workflows/auto-release-helm-chart.yml

# Conflicts:
#	.github/workflows/auto-release-helm-chart.yml

# Conflicts:
#	.github/workflows/auto-release-helm-chart.yml
This change converts the script to not download goimports in favor of
using the available binary from the path. This is being implemented to
avoid situations where the latest version of goimports clashes with the
go language version specified in the go.mod.
@cloud-team-rebase-bot cloud-team-rebase-bot Bot changed the title Merge https://github.com/kubernetes/cloud-provider-vsphere:master (ee51543) into main Merge https://github.com/kubernetes/cloud-provider-vsphere:master (55e3183) into main May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.