-
Notifications
You must be signed in to change notification settings - Fork 718
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c28525a
commit ffa5a87
Showing
22 changed files
with
1,543 additions
and
0 deletions.
There are no files selected for viewing
Binary file added
BIN
+10.2 KB
assets/rancher-vsphere-csi/rancher-vsphere-csi-104.0.0+up3.1.2-rancher4.tgz
Binary file not shown.
24 changes: 24 additions & 0 deletions
24
charts/rancher-vsphere-csi/104.0.0+up3.1.2-rancher4/Chart.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
annotations: | ||
catalog.cattle.io/certified: rancher | ||
catalog.cattle.io/display-name: vSphere CSI | ||
catalog.cattle.io/kube-version: '>= 1.20.0-0 < 1.29.0-0' | ||
catalog.cattle.io/namespace: kube-system | ||
catalog.cattle.io/os: linux,windows | ||
catalog.cattle.io/permits-os: linux,windows | ||
catalog.cattle.io/rancher-version: '>= 2.9.0-0 < 2.10.0-0' | ||
catalog.cattle.io/release-name: vsphere-csi | ||
apiVersion: v1 | ||
appVersion: 3.1.2-rancher4 | ||
description: vSphere Cloud Storage Interface (CSI) | ||
icon: https://charts.rancher.io/assets/logos/vsphere-csi.svg | ||
keywords: | ||
- infrastructure | ||
maintainers: | ||
- email: jiaqi.luo@suse.com | ||
name: Jiaqi Luo | ||
- email: brad.davidson@suse.com | ||
name: Brad Davidson | ||
name: rancher-vsphere-csi | ||
sources: | ||
- https://github.com/kubernetes-sigs/vsphere-csi-driver | ||
version: 104.0.0+up3.1.2-rancher4 |
84 changes: 84 additions & 0 deletions
84
charts/rancher-vsphere-csi/104.0.0+up3.1.2-rancher4/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# vSphere Container Storage Interface (CSI) | ||
|
||
[vSphere Container Storage Interface (CSI)](https://github.com/kubernetes-sigs/vsphere-csi-driver/tree/release-2.1/manifests/v2.1.0/vsphere-7.0u1/) is a specification designed to enable persistent storage volume management on Container Orchestrators (COs) such as Kubernetes. The specification allows storage systems to integrate with containerized workloads running on Kubernetes. Using CSI, storage providers, such as VMware, can write and deploy plugins for storage systems in Kubernetes without a need to modify any core Kubernetes code. | ||
|
||
CSI allows volume plugins to be installed on Kubernetes clusters as extensions. Once a CSI compatible volume driver is deployed on a Kubernetes cluster, users can use the CSI to provision, attach, mount, and format the volumes exposed by the CSI driver. | ||
|
||
The CSI driver for vSphere is `csi.vsphere.vmware.com`. | ||
|
||
## Prerequisites | ||
|
||
- vSphere 6.7 U3+ | ||
- Kubernetes v1.20+ | ||
- Out-of-tree vSphere Cloud Provider Interface (CPI) | ||
- A Secret on your Kubernetes cluster that contains vSphere CSI configuration and credentials | ||
|
||
## Installation | ||
|
||
This chart requires a Secret in your Kubernetes cluster that contains the CSI configuration and credentials to connect to the vCenter. You can have the chart generate it for you, or create it yourself and provide the name of the Secret during installation. | ||
|
||
<span style="color:orange">Warning</span>: When the option to generate the Secret is enabled, the credentials are visible in the API to authorized users. If you create the Secret yourself they will not be visible. | ||
|
||
You can create a Secret in one of the following ways: | ||
|
||
### <B>Option 1</b>: Create a Secret using the Rancher UI | ||
|
||
Go to your cluster's project (Same project you will be installing the chart) > Resources > Secrets > Add Secret. | ||
```yaml | ||
# Example of data required in the Secret | ||
# The csi-vsphere.conf key name is required, otherwise the installation will fail | ||
csi-vsphere.conf: | | ||
[Global] | ||
cluster-id = "<cluster-id>" | ||
user = "<username>" | ||
password = "<password>" | ||
port = "<port>" | ||
insecure-flag = "<insecure-flag>" | ||
[VirtualCenter "<host>"] | ||
datacenters = "<dc-1>, <dc-2>, ..." | ||
``` | ||
More information on CSI vSphere configuration [here](https://vsphere-csi-driver.sigs.k8s.io/driver-deployment/installation.html#create_k8s_secret). | ||
### <B>Option 2</b>: Create a Secret using kubectl | ||
Replace placeholders with actual values, and execute the following: | ||
```bash | ||
# The csi-vsphere.conf key name is required, otherwise the installation will fail | ||
cat <<EOF | kubectl apply -f - | ||
apiVersion: v1 | ||
kind: Secret | ||
type: Opaque | ||
metadata: | ||
name: <secret-name> | ||
namespace: <charts-namespace> | ||
stringData: | ||
csi-vsphere.conf: | | ||
[Global] | ||
cluster-id = "<cluster-id>" | ||
user = "<username>" | ||
password = "<password>" | ||
port = "<port>" | ||
insecure-flag = "<insecure-flag>" | ||
[VirtualCenter "<host>"] | ||
datacenters = "<dc-1>, <dc-2>, ..." | ||
EOF | ||
``` | ||
|
||
More information on managing Secrets using kubectl [here](https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kubectl/). | ||
|
||
## Migration | ||
|
||
The CSI migration feature is only available for vSphere 7.0 U1. | ||
|
||
## vSphere CSI with Topology | ||
|
||
When deploying to a vSphere environment using zoning, the topology plugin can be enabled for the CSI to make intelligent volume provisioning decisions. More information on vSphere zoning and prerequisites for the CSI toplogy plugin can be found [here](https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in/2.0/vmware-vsphere-csp-getting-started/GUID-162E7582-723B-4A0F-A937-3ACE82EAFD31.html#guidelines-and-best-practices-for-deployment-with-topology-0). | ||
|
||
To enable the topology plugin, adjust the values for the chart as follows: | ||
|
||
```yaml | ||
topology: | ||
enabled: true | ||
``` |
14 changes: 14 additions & 0 deletions
14
charts/rancher-vsphere-csi/104.0.0+up3.1.2-rancher4/app-readme.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# vSphere Container Storage Interface (CSI) | ||
|
||
[vSphere Container Storage Interface (CSI)](https://github.com/kubernetes-sigs/vsphere-csi-driver) is a specification designed to enable persistent storage volume management on Container Orchestrators (COs) such as Kubernetes. The specification allows storage systems to integrate with containerized workloads running on Kubernetes. Using CSI, storage providers, such as VMware, can write and deploy plugins for storage systems in Kubernetes without a need to modify any core Kubernetes code. | ||
|
||
CSI allows volume plugins to be installed on Kubernetes clusters as extensions. Once a CSI compatible volume driver is deployed on a Kubernetes cluster, users can use the CSI to provision, attach, mount, and format the volumes exposed by the CSI driver. | ||
|
||
The CSI driver for vSphere is `csi.vsphere.vmware.com`. | ||
|
||
## Prerequisites | ||
|
||
- vSphere 6.7 U3+ | ||
- Kubernetes v1.14+ | ||
- Out-of-tree vSphere Cloud Provider Interface (CPI) | ||
- A Secret on your Kubernetes cluster that contains vSphere CSI configuration and credentials (Refer to `README` or `Detailed Descriptions`) |
162 changes: 162 additions & 0 deletions
162
charts/rancher-vsphere-csi/104.0.0+up3.1.2-rancher4/questions.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
questions: | ||
- variable: vCenter.configSecret.generate | ||
label: Generate CSI vSphere Config Secret | ||
description: Generates a Secret that contains a CSI vSphere config and credentials (If the option to generate it is enabled, credentials will be visible in the API to authorized users) | ||
type: boolean | ||
default: true | ||
required: true | ||
group: vCenter Configuration | ||
show_subquestion_if: true | ||
subquestions: | ||
- variable: vCenter.host | ||
label: vCenter Host | ||
description: IP address or FQDN of the vCenter | ||
type: string | ||
|
||
- variable: vCenter.datacenters | ||
description: Comma-separated list of paths to data centers. E.g "<dc1-path>, <dc2-path>, ..." | ||
label: Data Centers | ||
type: string | ||
|
||
- variable: vCenter.username | ||
label: Username | ||
description: Username for vCenter | ||
type: string | ||
|
||
- variable: vCenter.password | ||
label: Password | ||
description: Password for vCenter | ||
type: password | ||
|
||
- variable: vCenter.configSecret.name | ||
label: CSI vSphere Config Secret Name | ||
description: Name of the Secret that contains a CSI vSphere config and credentials (Will not be visible in the API. More info in the README) | ||
type: string | ||
group: vCenter Configuration | ||
show_if: "vCenter.configSecret.generate=false" | ||
|
||
- variable: csiMigration.enabled | ||
label: Enable CSI Migration | ||
description: Enable migration of volumes provisioned by in-tree vSphere provider to CSI (Available for vSphere 7.0 U1+ only) | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: csiAuthCheck.enabled | ||
label: Enable authorization checks on operations involving datastores | ||
type: boolean | ||
default: true | ||
group: Driver Configuration | ||
|
||
- variable: onlineVolumeExtend.enabled | ||
label: Enable Online Volume Extend | ||
description: Enable expansion of PVCs that are in use by a Pod or mounted in a Node (Available for vSphere 7.0 U2+ only) | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: triggerCsiFullsync.enabled | ||
label: Enable CSI Full Sync | ||
description: Keeps CNS up to date with Kubernetes volume metadata information (such as PVs, PVCs, pods, and so on) | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: asyncQueryVolume.enabled | ||
label: Enable Async Query Volume | ||
description: Improves retrieval of volume information | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: improvedCsiIdempotency.enabled | ||
label: Enable Improved CSI Idempotency | ||
description: Enhances driver to ensure volume operations are idempotent | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: improvedVolumeTopology.enabled | ||
label: Enable Improved Volume Topology | ||
description: Allows using the topology feature without the need to mount vSphere credentials in the CSI node daemonset | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: multiVcenterCsiTopology.enabled | ||
label: Enable Multi vCenter CSI Topology | ||
description: Enables the vSphere CSI Driver to operate on a topology-aware Kubernetes Cluster (Generally this should always be enabled for CSI Plugin v3.1.0 and up) | ||
type: boolean | ||
default: true | ||
group: Driver Configuration | ||
|
||
- variable: csiWindowsSupport.enabled | ||
label: Enable CSI Windows Support | ||
description: Enables Windows support. | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: topology.enabled | ||
label: Enable CSI Topology Plugin | ||
description: Enables the CSI Topology Plugin | ||
type: boolean | ||
default: false | ||
group: Driver Configuration | ||
|
||
- variable: csiController.csiResizer.enabled | ||
label: Enable CSI Volume Resizer | ||
description: This feature is available for vSphere 7.0 U1+ only | ||
type: boolean | ||
default: false | ||
group: Storage | ||
|
||
- variable: storageClass.enabled | ||
default: true | ||
label: Create Storage Class | ||
description: Create a storageClass with the vSphere CSI provisioner | ||
type: boolean | ||
required: true | ||
show_subquestion_if: true | ||
group: Storage | ||
subquestions: | ||
- variable: storageClass.name | ||
label: Storage Class Name | ||
default: "vsphere-csi-sc" | ||
type: string | ||
|
||
- variable: storageClass.isDefault | ||
label: Default Storage Class | ||
description: Set the Storage Class as the default | ||
default: true | ||
type: boolean | ||
|
||
- variable: storageClass.allowVolumeExpansion | ||
label: Allow Volume Expansion | ||
description: Allows resizing the volume by editing the corresponding PVC object (Available for vSphere 7.0+ only) | ||
default: false | ||
type: boolean | ||
|
||
- variable: storageClass.storagePolicyName | ||
label: Storage Policy Name | ||
description: Name of the Storage Policy created in vCenter | ||
type: string | ||
|
||
- variable: storageClass.datastoreURL | ||
label: Data Store URL | ||
description: URL of the data store to use for new volumes (If unspecified, any data store that matches the request will be selected). | ||
type: string | ||
|
||
- variable: csiNode.prefixPath | ||
label: Prefix Path for `/var/lib/kubelet` | ||
description: For some operating systems including RancherOS, RKE prefixes `/var/lib/kubelet` with `/opt/rke`. Add the prefix path of the location of /var/lib/kubelet | ||
type: string | ||
default: "" | ||
group: Node Configuration | ||
|
||
- variable: csiNode.prefixPathWindows | ||
label: Prefix Path for `/var/lib/kubelet` | ||
description: For some operating systems including RancherOS, RKE prefixes `/var/lib/kubelet` with `/opt/rke`. For Windows, this will likely be the default value, which is 'C:' | ||
type: string | ||
default: "" | ||
group: Node Configuration |
48 changes: 48 additions & 0 deletions
48
charts/rancher-vsphere-csi/104.0.0+up3.1.2-rancher4/templates/_helpers.tpl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
{{- define "system_default_registry" -}} | ||
{{- if .Values.global.cattle.systemDefaultRegistry -}} | ||
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}} | ||
{{- else -}} | ||
{{- "" -}} | ||
{{- end -}} | ||
{{- end -}} | ||
|
||
{{- define "applyVersionOverrides" -}} | ||
{{- $overrides := dict -}} | ||
{{- range $override := .Values.versionOverrides -}} | ||
{{- if semverCompare $override.constraint $.Capabilities.KubeVersion.Version -}} | ||
{{- $_ := mergeOverwrite $overrides $override.values -}} | ||
{{- end -}} | ||
{{- end -}} | ||
{{- $_ := mergeOverwrite .Values $overrides -}} | ||
{{- end -}} | ||
|
||
{{/* | ||
Windows cluster will add default taint for linux nodes, | ||
add below linux tolerations to workloads could be scheduled to those linux nodes | ||
*/}} | ||
{{- define "linux-node-tolerations" -}} | ||
- key: "cattle.io/os" | ||
value: "linux" | ||
effect: "NoSchedule" | ||
operator: "Equal" | ||
{{- end -}} | ||
|
||
{{- define "linux-node-selector" -}} | ||
kubernetes.io/os: linux | ||
{{- end -}} | ||
|
||
{{/* | ||
Create chart name and version as used by the chart label. | ||
*/}} | ||
{{- define "chartName" -}} | ||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} | ||
{{- end -}} | ||
|
||
{{/* | ||
Labels that should be added on each resource | ||
*/}} | ||
{{- define "labels" -}} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
app.kubernetes.io/managed-by: {{ .Release.Service }} | ||
helm.sh/chart: {{ include "chartName" . }} | ||
{{- end -}} |
23 changes: 23 additions & 0 deletions
23
charts/rancher-vsphere-csi/104.0.0+up3.1.2-rancher4/templates/configmap.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Source: https://github.com/kubernetes-sigs/vsphere-csi-driver | ||
apiVersion: v1 | ||
data: | ||
"csi-migration": {{ .Values.csiMigration.enabled | quote }} | ||
"csi-auth-check": {{ .Values.csiAuthCheck.enabled | quote }} | ||
"online-volume-extend": {{ .Values.onlineVolumeExtend.enabled | quote }} | ||
"trigger-csi-fullsync": {{ .Values.triggerCsiFullsync.enabled | quote }} | ||
"async-query-volume": {{ .Values.asyncQueryVolume.enabled | quote }} | ||
"improved-csi-idempotency": {{ .Values.improvedCsiIdempotency.enabled | quote }} | ||
"improved-volume-topology": {{ .Values.improvedVolumeTopology.enabled | quote }} | ||
"block-volume-snapshot": {{ .Values.blockVolumeSnapshot.enabled | quote }} | ||
"csi-windows-support": {{ .Values.csiWindowsSupport.enabled | quote }} | ||
"use-csinode-id": {{ .Values.useCsinodeId.enabled | quote }} | ||
"list-volumes": {{ .Values.listVolumes.enabled | quote }} | ||
"pv-to-backingdiskobjectid-mapping": {{ .Values.pvToBackingdiskobjectidMapping.enabled | quote }} | ||
"cnsmgr-suspend-create-volume": {{ .Values.cnsmgrSuspendCreateVolume.enabled | quote }} | ||
"topology-preferential-datastores": {{ .Values.topologyPreferentialDatastores.enabled | quote }} | ||
"max-pvscsi-targets-per-vm": {{ .Values.maxPvscsiTargetsPerVm.enabled | quote }} | ||
"multi-vcenter-csi-topology": {{ .Values.multiVcenterCsiTopology.enabled | quote }} | ||
kind: ConfigMap | ||
metadata: | ||
name: internal-feature-states.csi.vsphere.vmware.com | ||
namespace: {{ .Release.Namespace }} |
Oops, something went wrong.