Skip to content

Commit

Permalink
v1.23.0-alpha.1 release
Browse files Browse the repository at this point in the history
  • Loading branch information
lubronzhan committed Jan 10, 2022
1 parent 556ede7 commit 1bced90
Show file tree
Hide file tree
Showing 10 changed files with 263 additions and 9 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ Version matrix:

| Kubernetes Version | vSphere Cloud Provider Release Version | Cloud Provider Branch |
| ----------- | ----------- | ----------- |
| v1.23.X | v1.23.X | release-1.23 |
| v1.22.X | v1.22.X | release-1.22 |
| v1.21.X | v1.21.X | release-1.21 |
| v1.20.X | v1.20.X | release-1.20 |
| v1.19.X | v1.19.X | release-1.19 |
| v1.18.X | v1.18.X | release-1.18 |

Our current support policy is that when a new Kubernetes release comes out, we will bump our k8s dependencies to the new version and cut a new release for CPI, e.g. CPI v1.22.x was released after k8s v1.22 comes out.
Our current support policy is that when a new Kubernetes release comes out, we will bump our k8s dependencies to the new version and cut a new release for CPI, e.g. CPI v1.23.x was released after k8s v1.23 comes out.

The latest CPI version is ![GitHub release (latest SemVer including pre-releases](https://img.shields.io/github/v/release/kubernetes/cloud-provider-vsphere?include_prereleases). The recommended way to upgrade CPI can be found on [this page](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/releases/README.md).

Expand Down
2 changes: 1 addition & 1 deletion charts/vsphere-cpi/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: 1.22.2
appVersion: 1.22.4
description: A Helm chart for vSphere Cloud Provider Interface Manager (CPI)
name: vsphere-cpi
version: 1.0.0
Expand Down
2 changes: 1 addition & 1 deletion charts/vsphere-cpi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This chart deploys all components required to run the external vSphere CPI as de

## Prerequisites

- Has been tested on Kubernetes 1.22.X+
- Has been tested on Kubernetes 1.23.X+
- Assumes your Kubernetes cluster has been configured to use the external cloud provider. Please take a look at configuration guidelines located in the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/#running-cloud-controller-manager).

## Installing the Chart using Helm 3.0+
Expand Down
2 changes: 1 addition & 1 deletion charts/vsphere-cpi/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ serviceAccount:
daemonset:
annotations: {}
image: gcr.io/cloud-provider-vsphere/cpi/release/manager
tag: v1.22.2
tag: v1.23.0-alpha.1
pullPolicy: IfNotPresent
dnsPolicy: ClusterFirst
cmdline:
Expand Down
2 changes: 1 addition & 1 deletion cluster/images/controller-manager/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ARG DISTROLESS_IMAGE=gcr.io/distroless/static@sha256:9b60270ec0991bc4f14bda475e8
FROM ${GOLANG_IMAGE} as builder

# This build arg is the version to embed in the CPI binary
ARG VERSION=1.22.3
ARG VERSION=1.23.0-alpha.1

# This build arg controls the GOPROXY setting
ARG GOPROXY
Expand Down
2 changes: 1 addition & 1 deletion docs/book/tutorials/deploying-cpi-with-k3s.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document is designed to show you how to integrate k3s with cloud provider v

When running with a cloud-controller-manager, it is expected to pass the node provider ID to a CCM as `<provider>://<id>`, in our case, `vsphere://1234567`. However, k3s passes it as `k3s://<hostname>`, which makes vsphere CCM not be able to find the node.

We only support `vsphere` as the provider name that is used for constructing **providerID** for both [vsphere](https://github.com/kubernetes/cloud-provider-vsphere/blob/v1.22.2/pkg/cloudprovider/vsphere/cloud.go#L51) and [vsphere-paravirtual](https://github.com/kubernetes/cloud-provider-vsphere/blob/v1.22.2/pkg/cloudprovider/vsphereparavirtual/cloud.go#L42).
We only support `vsphere` as the provider name that is used for constructing **providerID** for both [vsphere](https://github.com/kubernetes/cloud-provider-vsphere/blob/v1.23.0-alpha.1/pkg/cloudprovider/vsphere/cloud.go#L51) and [vsphere-paravirtual](https://github.com/kubernetes/cloud-provider-vsphere/blob/1.23.0-alpha.1/pkg/cloudprovider/vsphereparavirtual/cloud.go#L42).

## How to integrate k3s with cloud provider vsphere

Expand Down
2 changes: 1 addition & 1 deletion docs/book/tutorials/disable-node-deletion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ spec:
serviceAccountName: cloud-controller-manager
containers:
- name: vsphere-cloud-controller-manager
image: gcr.io/cloud-provider-vsphere/cpi/release/manager:v1.22.2
image: gcr.io/cloud-provider-vsphere/cpi/release/manager:v1.23.0-alpha.1
args:
- --cloud-provider=vsphere
- --v=2
Expand Down
2 changes: 1 addition & 1 deletion releases/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ 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.22.3) 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.23.0-alpha.1) 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

Expand Down
253 changes: 253 additions & 0 deletions releases/v1.23/vsphere-cloud-controller-manager.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
---
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: "<ENTER_YOUR_VCENTER_USERNAME>"
10.0.0.1.password: "<ENTER_YOUR_VCENTER_PASSWORD>"
1.2.3.4.username: "<ENTER_YOUR_VCENTER_USERNAME>"
1.2.3.4.password: "<ENTER_YOUR_VCENTER_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
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
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:
nodeSelector:
node-role.kubernetes.io/master: ""
tolerations:
- key: node.cloudprovider.kubernetes.io/uninitialized
value: "true"
effect: NoSchedule
- key: node-role.kubernetes.io/master
effect: NoSchedule
operator: Exists
- key: node.kubernetes.io/not-ready
effect: NoSchedule
operator: Exists
securityContext:
runAsUser: 1001
serviceAccountName: cloud-controller-manager
containers:
- name: vsphere-cloud-controller-manager
image: gcr.io/cloud-provider-vsphere/cpi/release/manager:v1.23.0-alpha.1
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
2 changes: 1 addition & 1 deletion test/e2e/config/vsphere-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ providers:
- sourcePath: "../data/infrastructure-vsphere/capi-upgrades/v1alpha4/cluster-template.yaml"

variables:
KUBERNETES_VERSION: "v1.22.3"
KUBERNETES_VERSION: "1.23.0-alpha.1"
CNI: "./data/cni/calico/calico.yaml"
EXP_CLUSTER_RESOURCE_SET: "true"
CONTROL_PLANE_MACHINE_COUNT: 1
Expand Down

0 comments on commit 1bced90

Please sign in to comment.