diff --git a/README.md b/README.md index 4c6e032cc..a563f4645 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Version matrix: | Kubernetes Version | vSphere Cloud Provider Release Version | Cloud Provider Branch | |--------------------|----------------------------------------|-----------------------| +| v1.30.X | v1.30.X | release-1.30 | | v1.29.X | v1.29.X | release-1.29 | | v1.28.X | v1.28.X | release-1.28 | | v1.27.X | v1.27.X | release-1.27 | diff --git a/charts/vsphere-cpi-v1.30.0.tgz b/charts/vsphere-cpi-v1.30.0.tgz new file mode 100644 index 000000000..195759e1b Binary files /dev/null and b/charts/vsphere-cpi-v1.30.0.tgz differ diff --git a/charts/vsphere-cpi/Chart.yaml b/charts/vsphere-cpi/Chart.yaml index 7f7286eec..bdb095eb0 100644 --- a/charts/vsphere-cpi/Chart.yaml +++ b/charts/vsphere-cpi/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: 1.29.0 +appVersion: 1.30.0 description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) name: vsphere-cpi -version: 1.29.0 +version: 1.30.0 keywords: - vsphere - vmware diff --git a/charts/vsphere-cpi/README.md b/charts/vsphere-cpi/README.md index 4b64c6865..1831c1e68 100644 --- a/charts/vsphere-cpi/README.md +++ b/charts/vsphere-cpi/README.md @@ -149,7 +149,7 @@ helm repo add vsphere-cpi https://kubernetes.github.io/cloud-provider-vsphere helm repo update # Package CPI Chart -VERSION=1.29.0 +VERSION=1.30.0 cd charts helm package vsphere-cpi --version $VERSION --app-version $VERSION diff --git a/charts/vsphere-cpi/values.yaml b/charts/vsphere-cpi/values.yaml index 19e6b7220..297ebcec5 100644 --- a/charts/vsphere-cpi/values.yaml +++ b/charts/vsphere-cpi/values.yaml @@ -55,7 +55,7 @@ serviceAccount: daemonset: annotations: {} image: gcr.io/cloud-provider-vsphere/cpi/release/manager - tag: v1.29.0 + tag: v1.30.0 pullPolicy: IfNotPresent dnsPolicy: ClusterFirst cmdline: diff --git a/docs/book/tutorials/disable-node-deletion.yaml b/docs/book/tutorials/disable-node-deletion.yaml index efd511fac..ba83d3735 100644 --- a/docs/book/tutorials/disable-node-deletion.yaml +++ b/docs/book/tutorials/disable-node-deletion.yaml @@ -233,7 +233,7 @@ spec: priorityClassName: system-node-critical containers: - name: vsphere-cloud-controller-manager - image: gcr.io/cloud-provider-vsphere/cpi/release/manager:v1.29.0 + image: gcr.io/cloud-provider-vsphere/cpi/release/manager:v1.30.0 args: - --cloud-provider=vsphere - --v=2 diff --git a/index.yaml b/index.yaml index d66ec843c..7f6b41e4d 100644 --- a/index.yaml +++ b/index.yaml @@ -1,9 +1,28 @@ apiVersion: v1 entries: vsphere-cpi: + - apiVersion: v2 + appVersion: v1.30.0 + created: "2024-04-18T12:18:32.267299+08:00" + description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) + digest: 86719831dd7d9edeff9b54e2854a36ac3c13d23fa959d56e93bba681e55d65d6 + home: https://github.com/kubernetes/cloud-provider-vsphere + icon: https://raw.githubusercontent.com/kubernetes/cloud-provider-vsphere/master/docs/vmware_logo.png + keywords: + - vsphere + - vmware + - cloud + - provider + - cpi + name: vsphere-cpi + sources: + - https://github.com/kubernetes/cloud-provider-vsphere + urls: + - https://kubernetes.github.io/cloud-provider-vsphere/charts/vsphere-cpi-v1.30.0.tgz + version: v1.30.0 - apiVersion: v2 appVersion: 1.29.0 - created: "2024-01-17T14:57:22.240838+08:00" + created: "2024-04-18T12:18:32.264302+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: 68bcac15c329570ff41ab5f7c6c4387e40eede03eca6b95fea73e3667b194564 home: https://github.com/kubernetes/cloud-provider-vsphere @@ -22,7 +41,7 @@ entries: version: 1.29.0 - apiVersion: v2 appVersion: 1.28.0 - created: "2024-01-17T14:57:22.240004+08:00" + created: "2024-04-18T12:18:32.260719+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: 2cb4772b757548de51481089706e6c2f1a2cbfe72eef9c8e673b9e22e8e1e9e0 home: https://github.com/kubernetes/cloud-provider-vsphere @@ -41,7 +60,7 @@ entries: version: 1.28.0 - apiVersion: v2 appVersion: 1.27.0 - created: "2024-01-17T14:57:22.238882+08:00" + created: "2024-04-18T12:18:32.257816+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: 4b70f3e1ac580079f4600703bef4fc2007e87e96e587c866657a6e91fad83a1c home: https://github.com/kubernetes/cloud-provider-vsphere @@ -60,7 +79,7 @@ entries: version: 1.27.0 - apiVersion: v2 appVersion: 1.26.0 - created: "2024-01-17T14:57:22.237838+08:00" + created: "2024-04-18T12:18:32.254878+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: 2ecf416700c819f408eedf9263d08dbc04cd61969576be13d8935f15605f4a69 home: https://github.com/kubernetes/cloud-provider-vsphere @@ -79,7 +98,7 @@ entries: version: 1.26.0 - apiVersion: v2 appVersion: 1.25.0 - created: "2024-01-17T14:57:22.236866+08:00" + created: "2024-04-18T12:18:32.251588+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: 3d48df49fdfb8bda6b5cec1d9e9f566183a150c8c01e111eec5e22ab1f557e31 home: https://github.com/kubernetes/cloud-provider-vsphere @@ -98,7 +117,7 @@ entries: version: 1.25.0 - apiVersion: v2 appVersion: 1.24.2 - created: "2024-01-17T14:57:22.235407+08:00" + created: "2024-04-18T12:18:32.248919+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: d0bfaf8a081128f9477b8d8ff00079f8506d4aa2ea899f55511d06400179b159 home: https://github.com/kubernetes/cloud-provider-vsphere @@ -117,7 +136,7 @@ entries: version: 1.24.2 - apiVersion: v2 appVersion: 1.24.1 - created: "2024-01-17T14:57:22.233136+08:00" + created: "2024-04-18T12:18:32.245964+08:00" description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI) digest: 6e9dec3e4c6aaeed0d7f95aa2beade986d5a0a2261509b11479ceb1a51312096 home: https://github.com/kubernetes/cloud-provider-vsphere @@ -134,4 +153,4 @@ entries: urls: - https://kubernetes.github.io/cloud-provider-vsphere/charts/vsphere-cpi-1.24.1.tgz version: 1.24.1 -generated: "2024-01-17T14:57:22.230807+08:00" +generated: "2024-04-18T12:18:32.242922+08:00" diff --git a/releases/README.md b/releases/README.md index b1ea8d588..7e4595340 100644 --- a/releases/README.md +++ b/releases/README.md @@ -8,14 +8,14 @@ Note that YAML files from [manifests/controller-manager repo](https://github.com ## Example workflow -In this tutorial, we will be installing the latest version of cloud provider vsphere(v1.29.0) freshly. If you have an older version of CPI already installed, the steps to deploy and upgrade CPI stay the same. With our `RollingUpdate` update strategy, after you update a DaemonSet template, old DaemonSet pods will be killed, and new DaemonSet pods will be created automatically. +In this tutorial, we will be installing the latest version of cloud provider vsphere(v1.30.0) freshly. If you have an older version of CPI already installed, the steps to deploy and upgrade CPI stay the same. With our `RollingUpdate` update strategy, after you update a DaemonSet template, old DaemonSet pods will be killed, and new DaemonSet pods will be created automatically. ### Step 1: find the kubernetes major version you are using -For example, the major version of '1.29.x' is '1.29', then run: +For example, the major version of '1.30.x' is '1.30', then run: ```bash -VERSION=1.29 +VERSION=1.30 wget https://raw.githubusercontent.com/kubernetes/cloud-provider-vsphere/release-$VERSION/releases/v$VERSION/vsphere-cloud-controller-manager.yaml ``` diff --git a/releases/v1.30/vsphere-cloud-controller-manager.yaml b/releases/v1.30/vsphere-cloud-controller-manager.yaml new file mode 100644 index 000000000..e7c576581 --- /dev/null +++ b/releases/v1.30/vsphere-cloud-controller-manager.yaml @@ -0,0 +1,263 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cloud-controller-manager + labels: + vsphere-cpi-infra: service-account + component: cloud-controller-manager + namespace: kube-system +--- +apiVersion: v1 +kind: Secret +metadata: + name: vsphere-cloud-secret + labels: + vsphere-cpi-infra: secret + component: cloud-controller-manager + namespace: kube-system + # NOTE: this is just an example configuration, update with real values based on your environment +stringData: + 10.0.0.1.username: "" + 10.0.0.1.password: "" + 1.2.3.4.username: "" + 1.2.3.4.password: "" +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vsphere-cloud-config + labels: + vsphere-cpi-infra: config + component: cloud-controller-manager + namespace: kube-system +data: + # NOTE: this is just an example configuration, update with real values based on your environment + vsphere.conf: | + # Global properties in this section will be used for all specified vCenters unless overriden in VirtualCenter section. + global: + port: 443 + # set insecureFlag to true if the vCenter uses a self-signed cert + insecureFlag: true + # settings for using k8s secret + secretName: vsphere-cloud-secret + secretNamespace: kube-system + + # vcenter section + vcenter: + your-vcenter-name-here: + server: 10.0.0.1 + user: use-your-vcenter-user-here + password: use-your-vcenter-password-here + datacenters: + - hrwest + - hreast + could-be-a-tenant-label: + server: 1.2.3.4 + datacenters: + - mytenantdc + secretName: cpi-engineering-secret + secretNamespace: kube-system + + # labels for regions and zones + labels: + region: k8s-region + zone: k8s-zone +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: servicecatalog.k8s.io:apiserver-authentication-reader + labels: + vsphere-cpi-infra: role-binding + component: cloud-controller-manager + namespace: kube-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: extension-apiserver-authentication-reader +subjects: + - apiGroup: "" + kind: ServiceAccount + name: cloud-controller-manager + namespace: kube-system + - apiGroup: "" + kind: User + name: cloud-controller-manager +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: system:cloud-controller-manager + labels: + vsphere-cpi-infra: cluster-role-binding + component: cloud-controller-manager +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:cloud-controller-manager +subjects: + - kind: ServiceAccount + name: cloud-controller-manager + namespace: kube-system + - kind: User + name: cloud-controller-manager +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: system:cloud-controller-manager + labels: + vsphere-cpi-infra: role + component: cloud-controller-manager +rules: + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - update + - apiGroups: + - "" + resources: + - nodes + verbs: + - "*" + - apiGroups: + - "" + resources: + - nodes/status + verbs: + - patch + - apiGroups: + - "" + resources: + - services + verbs: + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - services/status + verbs: + - patch + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - get + - list + - update + - watch + - apiGroups: + - "" + resources: + - endpoints + verbs: + - create + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - "coordination.k8s.io" + resources: + - leases + verbs: + - create + - get + - list + - watch + - update +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: vsphere-cloud-controller-manager + labels: + component: cloud-controller-manager + tier: control-plane + namespace: kube-system +spec: + selector: + matchLabels: + name: vsphere-cloud-controller-manager + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + name: vsphere-cloud-controller-manager + component: cloud-controller-manager + tier: control-plane + spec: + tolerations: + - key: node.cloudprovider.kubernetes.io/uninitialized + value: "true" + effect: NoSchedule + - key: node-role.kubernetes.io/master + effect: NoSchedule + operator: Exists + - key: node-role.kubernetes.io/control-plane + effect: NoSchedule + operator: Exists + - key: node.kubernetes.io/not-ready + effect: NoSchedule + operator: Exists + securityContext: + runAsUser: 1001 + serviceAccountName: cloud-controller-manager + priorityClassName: system-node-critical + containers: + - name: vsphere-cloud-controller-manager + image: gcr.io/cloud-provider-vsphere/cpi/release/manager:v1.30.0 + args: + - --cloud-provider=vsphere + - --v=2 + - --cloud-config=/etc/cloud/vsphere.conf + volumeMounts: + - mountPath: /etc/cloud + name: vsphere-config-volume + readOnly: true + resources: + requests: + cpu: 200m + hostNetwork: true + volumes: + - name: vsphere-config-volume + configMap: + name: vsphere-cloud-config + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-role.kubernetes.io/control-plane + operator: Exists + - matchExpressions: + - key: node-role.kubernetes.io/master + operator: Exists