diff --git a/.github/workflows/e2e-long.yaml b/.github/workflows/e2e-long.yaml index 65e8158d..c4db5d82 100644 --- a/.github/workflows/e2e-long.yaml +++ b/.github/workflows/e2e-long.yaml @@ -4,6 +4,8 @@ on: schedule: - cron: "0 0 1/2 * *" workflow_dispatch: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] concurrency: ci_e2e_tests diff --git a/.github/workflows/test_chart.yaml b/.github/workflows/test_chart.yaml index 601b5e8a..ba405ae8 100644 --- a/.github/workflows/test_chart.yaml +++ b/.github/workflows/test_chart.yaml @@ -16,7 +16,7 @@ env: CONTROLLER_IMAGE_VERSION: v0.0.1 PULL_POLICY: Never CERT_MANAGER_VERSION: v1.15.2 - RANCHER_VERSION: v2.9.0 + RANCHER_VERSION: v2.10.0 jobs: lint-test: @@ -63,7 +63,7 @@ jobs: uses: helm/kind-action@v1.10.0 with: cluster_name: kind - node_image: kindest/node:v1.30.3 + node_image: kindest/node:v1.30.0 - name: Add local docker image run: kind load docker-image ${{ env.MANIFEST_IMG }}:${{ env.TAG }} diff --git a/charts/rancher-turtles/Chart.yaml b/charts/rancher-turtles/Chart.yaml index acc17442..b4942562 100644 --- a/charts/rancher-turtles/Chart.yaml +++ b/charts/rancher-turtles/Chart.yaml @@ -23,7 +23,7 @@ annotations: catalog.cattle.io/namespace: rancher-turtles-system catalog.cattle.io/os: linux catalog.cattle.io/permits-os: linux - catalog.cattle.io/rancher-version: '>= 2.9.0-1' + catalog.cattle.io/rancher-version: '>= 2.10.0-1' catalog.cattle.io/release-name: rancher-turtles catalog.cattle.io/scope: management catalog.cattle.io/type: cluster-tool diff --git a/exp/README.md b/exp/README.md index 9037d69a..19cd5d6f 100644 --- a/exp/README.md +++ b/exp/README.md @@ -40,8 +40,8 @@ To deploy an RKE2 cluster with automatic snapshots enabled: export CONTROL_PLANE_MACHINE_COUNT=1 export WORKER_MACHINE_COUNT=1 export CLUSTER_NAME=rke2 -export KUBERNETES_VERSION=v1.30.4 -export RKE2_VERSION=v1.30.4+rke2r1 +export KUBERNETES_VERSION=v1.30.0 +export RKE2_VERSION=v1.31.0+rke2r1 # Prevent replacing lb-config variables by envsubst export address='$address' diff --git a/go.mod b/go.mod index de303e9c..d5e4f192 100644 --- a/go.mod +++ b/go.mod @@ -5,11 +5,11 @@ go 1.22.0 require ( github.com/blang/semver/v4 v4.0.0 github.com/go-logr/logr v1.4.2 - github.com/onsi/ginkgo/v2 v2.20.1 + github.com/onsi/ginkgo/v2 v2.21.0 github.com/onsi/gomega v1.34.2 github.com/pkg/errors v0.9.1 github.com/spf13/pflag v1.0.6-0.20210604193023-d5e0c0615ace - golang.org/x/text v0.17.0 + golang.org/x/text v0.19.0 k8s.io/api v0.29.9 k8s.io/apiextensions-apiserver v0.29.9 k8s.io/apimachinery v0.29.9 @@ -43,7 +43,7 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect + github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect github.com/google/uuid v1.6.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/imdario/mergo v0.3.13 // indirect @@ -62,12 +62,12 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.28.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/term v0.25.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.24.0 // indirect + golang.org/x/tools v0.26.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect diff --git a/go.sum b/go.sum index 7202f778..cc2cf455 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= -github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= @@ -102,8 +102,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.20.1 h1:YlVIbqct+ZmnEph770q9Q7NVAz4wwIiVNahee6JyUzo= -github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -151,8 +151,8 @@ go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -161,8 +161,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -173,22 +173,22 @@ golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/hack/ensure-kubectl.sh b/hack/ensure-kubectl.sh index 9c336be4..77f33d08 100755 --- a/hack/ensure-kubectl.sh +++ b/hack/ensure-kubectl.sh @@ -26,7 +26,7 @@ fi source "$(dirname "${BASH_SOURCE[0]}")/utils.sh" GOPATH_BIN="$(go env GOPATH)/bin/" -MINIMUM_KUBECTL_VERSION=v1.30.3 +MINIMUM_KUBECTL_VERSION=v1.30.0 goarch="$(go env GOARCH)" goos="$(go env GOOS)" diff --git a/internal/controllers/testdata/import_sample.yaml b/internal/controllers/testdata/import_sample.yaml index f82ddebc..70a13a0d 100644 --- a/internal/controllers/testdata/import_sample.yaml +++ b/internal/controllers/testdata/import_sample.yaml @@ -192,7 +192,7 @@ spec: value: 726f86e0-b3bc-41f1-9757-8a0ee24560f4 - name: CATTLE_INGRESS_IP_DOMAIN value: sslip.io - image: rancher/rancher-agent:v2.9.0 + image: rancher/rancher-agent:v2.10.0 volumeMounts: - name: cattle-credentials mountPath: /cattle-credentials diff --git a/scripts/kind-cluster-with-extramounts.yaml b/scripts/kind-cluster-with-extramounts.yaml index 4ee3c117..f108af76 100644 --- a/scripts/kind-cluster-with-extramounts.yaml +++ b/scripts/kind-cluster-with-extramounts.yaml @@ -3,7 +3,7 @@ apiVersion: kind.x-k8s.io/v1alpha4 name: capi-test nodes: - role: control-plane - image: kindest/node:v1.30.3 + image: kindest/node:v1.30.0 extraMounts: - hostPath: /var/run/docker.sock containerPath: /var/run/docker.sock diff --git a/scripts/turtles-dev.sh b/scripts/turtles-dev.sh index 81979a87..53670384 100755 --- a/scripts/turtles-dev.sh +++ b/scripts/turtles-dev.sh @@ -20,7 +20,7 @@ if [ -z "$RANCHER_HOSTNAME" ]; then exit 1 fi -RANCHER_VERSION=${RANCHER_VERSION:-v2.9.1} +RANCHER_VERSION=${RANCHER_VERSION:-v2.10.0} CLUSTER_NAME=${CLUSTER_NAME:-capi-test} ETCD_CONTROLLER_IMAGE=${ETCD_CONTROLLER_IMAGE:-ghcr.io/rancher/turtles-etcd-snapshot-restore} ETCD_CONTROLLER_IMAGE_TAG=${ETCD_CONTROLLER_IMAGE_TAG:-dev} diff --git a/test/e2e/README.md b/test/e2e/README.md index f0b45378..2c6c33d6 100644 --- a/test/e2e/README.md +++ b/test/e2e/README.md @@ -95,7 +95,7 @@ The config is located in `test/e2e/config/operator.yaml`. Most notable ones: ```yaml variables: - RANCHER_VERSION: "v2.9.0" # Default rancher version to install + RANCHER_VERSION: "v2.10.0" # Default rancher version to install RANCHER_HOSTNAME: "localhost" # Your ngrok domain NGROK_API_KEY: "" # Key and token values for establishing ingress NGROK_AUTHTOKEN: "" diff --git a/test/e2e/config/operator.yaml b/test/e2e/config/operator.yaml index 20fdf318..530610ae 100644 --- a/test/e2e/config/operator.yaml +++ b/test/e2e/config/operator.yaml @@ -30,28 +30,28 @@ intervals: variables: MANAGEMENT_CLUSTER_ENVIRONMENT: "isolated-kind" # supported options are eks, isolated-kind, kind - RANCHER_ALPHA_VERSION: "v2.9.1-alpha1" + RANCHER_ALPHA_VERSION: "v2.10.0-alpha1" CLUSTERCTL_BINARY_PATH: "" USE_EXISTING_CLUSTER: "false" SKIP_RESOURCE_CLEANUP: "false" ARTIFACTS_FOLDER: "_artifacts" HELM_BINARY_PATH: "helm" HELM_EXTRA_VALUES_FOLDER: "/tmp" - KUBERNETES_VERSION: "v1.30.3" - KUBERNETES_MANAGEMENT_VERSION: "v1.30.3" - RKE2_VERSION: "v1.30.3+rke2r1" + KUBERNETES_VERSION: "v1.31.0" + KUBERNETES_MANAGEMENT_VERSION: "v1.30.0" + RKE2_VERSION: "v1.31.0+rke2r1" KUBERNETES_MANAGEMENT_AWS_REGION: "eu-west-2" RANCHER_HOSTNAME: "localhost" RANCHER_FEATURES: "" RANCHER_PATH: "rancher-latest/rancher" RANCHER_ALPHA_PATH: "rancher-alpha/rancher" RANCHER_ALPHA_URL: "https://releases.rancher.com/server-charts/alpha" - RANCHER_VERSION: "v2.9.0" + RANCHER_VERSION: "v2.10.0" TURTLES_VERSION: "v0.0.1" TURTLES_PATH: "turtles/rancher-turtles" TURTLES_REPO_NAME: "turtles" TURTLES_URL: https://rancher.github.io/turtles - CPI_IMAGE_VERSION: "v1.30.1" + CPI_IMAGE_VERSION: "v1.31.0" RANCHER_REPO_NAME: "rancher-latest" RANCHER_ALPHA_REPO_NAME: "rancher-alpha" RANCHER_URL: "https://releases.rancher.com/server-charts/latest" diff --git a/test/e2e/data/cluster-templates/vsphere-kubeadm.yaml b/test/e2e/data/cluster-templates/vsphere-kubeadm.yaml index 1645c56a..9a799055 100644 --- a/test/e2e/data/cluster-templates/vsphere-kubeadm.yaml +++ b/test/e2e/data/cluster-templates/vsphere-kubeadm.yaml @@ -972,7 +972,7 @@ data: - --v=2 - --cloud-provider=vsphere - --cloud-config=/etc/cloud/vsphere.conf - image: gcr.io/cloud-provider-vsphere/cpi/release/manager:${CPI_IMAGE_VERSION} + image: registry.k8s.io/cloud-pv-vsphere/cloud-provider-vsphere:${CPI_IMAGE_VERSION} name: vsphere-cloud-controller-manager resources: requests: diff --git a/test/e2e/data/cluster-templates/vsphere-rke2.yaml b/test/e2e/data/cluster-templates/vsphere-rke2.yaml index 6afa1bb0..b2797384 100644 --- a/test/e2e/data/cluster-templates/vsphere-rke2.yaml +++ b/test/e2e/data/cluster-templates/vsphere-rke2.yaml @@ -985,7 +985,7 @@ data: - --v=2 - --cloud-provider=vsphere - --cloud-config=/etc/cloud/vsphere.conf - image: gcr.io/cloud-provider-vsphere/cpi/release/manager:${CPI_IMAGE_VERSION} + image: registry.k8s.io/cloud-pv-vsphere/cloud-provider-vsphere:${CPI_IMAGE_VERSION} name: vsphere-cloud-controller-manager resources: requests: