| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- {{ $cluster := .Values.cluster }}
- {{ $mysql := $cluster.mysql }}
- {{ $mysqlSs := $mysql.statefulset }}
- {{ $mysqlSsEnabled := $mysqlSs.enabled }}
- {{ $mysqlStorageClass := $mysqlSs.persistence.storageClass }}
- {{ $clusterStorageClass := $cluster.storageClass }}
- {{- if (or (and $mysqlSsEnabled (eq $mysqlStorageClass "")) (eq $clusterStorageClass "")) -}}
- ---
- # deploy local path storage CSI component
- apiVersion: v1
- kind: Namespace
- metadata:
- name: local-path-storage
- ---
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: local-path-provisioner-service-account
- namespace: local-path-storage
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: ClusterRole
- metadata:
- name: local-path-provisioner-role
- rules:
- - apiGroups: [""]
- resources: ["nodes", "persistentvolumeclaims", "configmaps"]
- verbs: ["get", "list", "watch"]
- - apiGroups: [""]
- resources: ["endpoints", "persistentvolumes", "pods"]
- verbs: ["*"]
- - apiGroups: [""]
- resources: ["events"]
- verbs: ["create", "patch"]
- - apiGroups: ["storage.k8s.io"]
- resources: ["storageclasses"]
- verbs: ["get", "list", "watch"]
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: ClusterRoleBinding
- metadata:
- name: local-path-provisioner-bind
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: local-path-provisioner-role
- subjects:
- - kind: ServiceAccount
- name: local-path-provisioner-service-account
- namespace: local-path-storage
- ---
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: local-path-provisioner
- namespace: local-path-storage
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: local-path-provisioner
- template:
- metadata:
- labels:
- app: local-path-provisioner
- spec:
- serviceAccountName: local-path-provisioner-service-account
- tolerations:
- - key: node-role.kubernetes.io/master
- effect: NoSchedule
- - key: node-role.kubernetes.io/controlplane
- effect: NoSchedule
- containers:
- - name: local-path-provisioner
- image: {{ template "cloudpods.localPathCSI.image" . }}
- imagePullPolicy: IfNotPresent
- command:
- - local-path-provisioner
- - --debug
- - start
- - --config
- - /etc/config/config.json
- volumeMounts:
- - name: config-volume
- mountPath: /etc/config/
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- volumes:
- - name: config-volume
- configMap:
- name: local-path-config
- ---
- apiVersion: storage.k8s.io/v1
- kind: StorageClass
- metadata:
- name: local-path
- provisioner: rancher.io/local-path
- volumeBindingMode: WaitForFirstConsumer
- reclaimPolicy: Delete
- ---
- kind: ConfigMap
- apiVersion: v1
- metadata:
- name: local-path-config
- namespace: local-path-storage
- data:
- config.json: |-
- {
- "nodePathMap":[
- {
- "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
- "paths":["/opt/local-path-provisioner"]
- }
- ]
- }
- setup: |-
- #!/bin/sh
- set -eu
- mkdir -m 0777 -p "$VOL_DIR"
- teardown: |-
- #!/bin/sh
- set -eu
- rm -rf "$VOL_DIR"
- helperPod.yaml: |-
- apiVersion: v1
- kind: Pod
- metadata:
- name: helper-pod
- spec:
- containers:
- - name: helper-pod
- image: {{ .Values.localPathCSI.helperPod.image }}
- imagePullPolicy: {{ .Values.localPathCSI.helperPod.pullPolicy }}
- {{- end -}}
|