forked from k-space/kube
		
	Add rawfile-localpv
This commit is contained in:
		
							
								
								
									
										11
									
								
								openebs/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								openebs/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| # Raw file based local PV-s | ||||
|  | ||||
| We currently only use `rawfile-localpv` portion of OpenEBS. | ||||
|  | ||||
| The manifests were rendered using Helm template from https://github.com/openebs/rawfile-localpv | ||||
| and subsequently modified | ||||
|  | ||||
| ``` | ||||
| kubectl create namespace openebs | ||||
| kubectl apply -n openebs -f rawfile.yaml | ||||
| ``` | ||||
							
								
								
									
										404
									
								
								openebs/rawfile.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										404
									
								
								openebs/rawfile.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,404 @@ | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: ServiceAccount | ||||
| metadata: | ||||
|   name: rawfile-csi-driver | ||||
|   namespace: openebs | ||||
| --- | ||||
| kind: ClusterRole | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| metadata: | ||||
|   name: rawfile-csi-provisioner | ||||
| rules: | ||||
|   - apiGroups: [""] | ||||
|     resources: ["secrets"] | ||||
|     verbs: ["get", "list"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumes"] | ||||
|     verbs: ["get", "list", "watch", "create", "delete"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumeclaims"] | ||||
|     verbs: ["get", "list", "watch", "update"] | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["storageclasses"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["events"] | ||||
|     verbs: ["list", "watch", "create", "update", "patch"] | ||||
|   - apiGroups: ["snapshot.storage.k8s.io"] | ||||
|     resources: ["volumesnapshots"] | ||||
|     verbs: ["get", "list"] | ||||
|   - apiGroups: ["snapshot.storage.k8s.io"] | ||||
|     resources: ["volumesnapshotcontents"] | ||||
|     verbs: ["get", "list"] | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["csinodes"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["nodes"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["volumeattachments"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["csistoragecapacities"] | ||||
|     verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["pods"] | ||||
|     verbs: ["get"] | ||||
|   - apiGroups: ["apps"] | ||||
|     resources: ["daemonsets"] | ||||
|     verbs: ["get"] | ||||
| --- | ||||
| kind: ClusterRole | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| metadata: | ||||
|   name: rawfile-csi-broker | ||||
| rules: | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumes"] | ||||
|     verbs: ["get"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["pods"] | ||||
|     verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] | ||||
| --- | ||||
| kind: ClusterRole | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| metadata: | ||||
|   name: rawfile-csi-resizer | ||||
| rules: | ||||
|   - apiGroups: [""] | ||||
|     resources: ["secrets"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumes"] | ||||
|     verbs: ["get", "list", "watch", "patch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumeclaims"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["pods"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumeclaims/status"] | ||||
|     verbs: ["patch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["events"] | ||||
|     verbs: ["list", "watch", "create", "update", "patch"] | ||||
| --- | ||||
| kind: ClusterRoleBinding | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| metadata: | ||||
|   name: rawfile-csi-provisioner | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: rawfile-csi-driver | ||||
|     namespace: openebs | ||||
| roleRef: | ||||
|   kind: ClusterRole | ||||
|   name: rawfile-csi-provisioner | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
| --- | ||||
| kind: ClusterRoleBinding | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| metadata: | ||||
|   name: rawfile-csi-broker | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: rawfile-csi-driver | ||||
|     namespace: openebs | ||||
| roleRef: | ||||
|   kind: ClusterRole | ||||
|   name: rawfile-csi-broker | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
| --- | ||||
| kind: ClusterRoleBinding | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| metadata: | ||||
|   name: rawfile-csi-resizer | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: rawfile-csi-driver | ||||
|     namespace: openebs | ||||
| roleRef: | ||||
|   kind: ClusterRole | ||||
|   name: rawfile-csi-resizer | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: rawfile-csi-controller | ||||
|   namespace: openebs | ||||
|   labels: | ||||
|     app.kubernetes.io/name: rawfile-csi | ||||
|     component: controller | ||||
| spec: | ||||
|   type: ClusterIP | ||||
|   selector: | ||||
|     app.kubernetes.io/name: rawfile-csi | ||||
|     component: controller | ||||
|   clusterIP: None | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: rawfile-csi-node | ||||
|   namespace: openebs | ||||
|   labels: | ||||
|     app.kubernetes.io/name: rawfile-csi | ||||
|     component: node | ||||
| spec: | ||||
|   type: ClusterIP | ||||
|   ports: | ||||
|     - name: metrics | ||||
|       port: 9100 | ||||
|       targetPort: metrics | ||||
|       protocol: TCP | ||||
|   selector: | ||||
|     app.kubernetes.io/name: rawfile-csi | ||||
|     component: node | ||||
| --- | ||||
| apiVersion: apps/v1 | ||||
| kind: DaemonSet | ||||
| metadata: | ||||
|   name: rawfile-csi-node | ||||
|   namespace: openebs | ||||
| spec: | ||||
|   updateStrategy: | ||||
|     rollingUpdate: | ||||
|       maxUnavailable: "100%" | ||||
|   selector: | ||||
|     matchLabels: &selectorLabels | ||||
|       app.kubernetes.io/name: rawfile-csi | ||||
|       component: node | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: *selectorLabels | ||||
|     spec: | ||||
|       serviceAccount: rawfile-csi-driver | ||||
|       priorityClassName: system-node-critical | ||||
|       tolerations: | ||||
|         - operator: "Exists" | ||||
|       volumes: | ||||
|         - name: registration-dir | ||||
|           hostPath: | ||||
|             path: /var/lib/kubelet/plugins_registry | ||||
|             type: Directory | ||||
|         - name: socket-dir | ||||
|           hostPath: | ||||
|             path: /var/lib/kubelet/plugins/rawfile-csi | ||||
|             type: DirectoryOrCreate | ||||
|         - name: mountpoint-dir | ||||
|           hostPath: | ||||
|             path: /var/lib/kubelet | ||||
|             type: DirectoryOrCreate | ||||
|         - name: data-dir | ||||
|           hostPath: | ||||
|             path: /var/csi/rawfile | ||||
|             type: DirectoryOrCreate | ||||
|       containers: | ||||
|         - name: csi-driver | ||||
|           image: "harbor.k-space.ee/k-space/rawfile-localpv:latest" | ||||
|           imagePullPolicy: Always | ||||
|           securityContext: | ||||
|             privileged: true | ||||
|           env: | ||||
|             - name: PROVISIONER_NAME | ||||
|               value: "rawfile.csi.openebs.io" | ||||
|             - name: CSI_ENDPOINT | ||||
|               value: unix:///csi/csi.sock | ||||
|             - name: IMAGE_REPOSITORY | ||||
|               value: "harbor.k-space.ee/k-space/rawfile-localpv" | ||||
|             - name: IMAGE_TAG | ||||
|               value: "latest" | ||||
|             - name: NODE_ID | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   apiVersion: v1 | ||||
|                   fieldPath: spec.nodeName | ||||
|           ports: | ||||
|             - name: metrics | ||||
|               containerPort: 9100 | ||||
|             - name: csi-probe | ||||
|               containerPort: 9808 | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|             - name: mountpoint-dir | ||||
|               mountPath: /var/lib/kubelet | ||||
|               mountPropagation: "Bidirectional" | ||||
|             - name: data-dir | ||||
|               mountPath: /data | ||||
|           resources: | ||||
|             limits: | ||||
|               cpu: 1 | ||||
|               memory: 100Mi | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 100Mi | ||||
|         - name: node-driver-registrar | ||||
|           image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.2.0 | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - --csi-address=$(ADDRESS) | ||||
|             - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) | ||||
|             - --health-port=9809 | ||||
|           env: | ||||
|             - name: ADDRESS | ||||
|               value: /csi/csi.sock | ||||
|             - name: DRIVER_REG_SOCK_PATH | ||||
|               value: /var/lib/kubelet/plugins/rawfile-csi/csi.sock | ||||
|           ports: | ||||
|             - containerPort: 9809 | ||||
|               name: healthz | ||||
|           livenessProbe: | ||||
|             httpGet: | ||||
|               path: /healthz | ||||
|               port: healthz | ||||
|             initialDelaySeconds: 5 | ||||
|             timeoutSeconds: 5 | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|             - name: registration-dir | ||||
|               mountPath: /registration | ||||
|           resources: | ||||
|             limits: | ||||
|               cpu: 500m | ||||
|               memory: 100Mi | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 100Mi | ||||
|         - name: external-provisioner | ||||
|           image: k8s.gcr.io/sig-storage/csi-provisioner:v2.2.2 | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "--csi-address=$(ADDRESS)" | ||||
|             - "--feature-gates=Topology=true" | ||||
|             - "--strict-topology" | ||||
|             - "--immediate-topology=false" | ||||
|             - "--timeout=120s" | ||||
|             - "--enable-capacity=true" | ||||
|             - "--capacity-ownerref-level=1" # DaemonSet | ||||
|             - "--node-deployment=true" | ||||
|           env: | ||||
|             - name: ADDRESS | ||||
|               value: /csi/csi.sock | ||||
|             - name: NODE_NAME | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   fieldPath: spec.nodeName | ||||
|             - name: NAMESPACE | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   fieldPath: metadata.namespace | ||||
|             - name: POD_NAME | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   fieldPath: metadata.name | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
| --- | ||||
| apiVersion: apps/v1 | ||||
| kind: StatefulSet | ||||
| metadata: | ||||
|   name: rawfile-csi-controller | ||||
|   namespace: openebs | ||||
| spec: | ||||
|   replicas: 1 | ||||
|   serviceName: rawfile-csi | ||||
|   selector: | ||||
|     matchLabels: &selectorLabels | ||||
|       app.kubernetes.io/name: rawfile-csi | ||||
|       component: controller | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: *selectorLabels | ||||
|     spec: | ||||
|       serviceAccount: rawfile-csi-driver | ||||
|       priorityClassName: system-cluster-critical | ||||
|       tolerations: | ||||
|         - key: "node-role.kubernetes.io/master" | ||||
|           operator: Equal | ||||
|           value: "true" | ||||
|           effect: NoSchedule | ||||
|       volumes: | ||||
|         - name: socket-dir | ||||
|           emptyDir: {} | ||||
|       containers: | ||||
|         - name: csi-driver | ||||
|           image: "harbor.k-space.ee/k-space/rawfile-localpv" | ||||
|           imagePullPolicy: Always | ||||
|           args: | ||||
|             - csi-driver | ||||
|             - --disable-metrics | ||||
|           env: | ||||
|             - name: PROVISIONER_NAME | ||||
|               value: "rawfile.csi.openebs.io" | ||||
|             - name: CSI_ENDPOINT | ||||
|               value: unix:///csi/csi.sock | ||||
|             - name: IMAGE_REPOSITORY | ||||
|               value: "harbor.k-space.ee/k-space/rawfile-localpv" | ||||
|             - name: IMAGE_TAG | ||||
|               value: "latest" | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|           ports: | ||||
|             - name: csi-probe | ||||
|               containerPort: 9808 | ||||
|           resources: | ||||
|             limits: | ||||
|               cpu: 1 | ||||
|               memory: 100Mi | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 100Mi | ||||
|         - name: external-resizer | ||||
|           image: k8s.gcr.io/sig-storage/csi-resizer:v1.4.0 | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "--csi-address=$(ADDRESS)" | ||||
|             - "--handle-volume-inuse-error=false" | ||||
|           env: | ||||
|             - name: ADDRESS | ||||
|               value: /csi/csi.sock | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
| --- | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: CSIDriver | ||||
| metadata: | ||||
|   name: rawfile.csi.openebs.io | ||||
| spec: | ||||
|   attachRequired: false | ||||
|   podInfoOnMount: true | ||||
|   fsGroupPolicy: File | ||||
|   storageCapacity: true | ||||
|   volumeLifecycleModes: | ||||
|     - Persistent | ||||
| --- | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: StorageClass | ||||
| metadata: | ||||
|   name: rawfile-ext4 | ||||
| provisioner: rawfile.csi.openebs.io | ||||
| reclaimPolicy: Retain | ||||
| volumeBindingMode: WaitForFirstConsumer | ||||
| allowVolumeExpansion: true | ||||
| parameters: | ||||
|   fsType: "ext4" | ||||
| --- | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: StorageClass | ||||
| metadata: | ||||
|   name: rawfile-xfs | ||||
| provisioner: rawfile.csi.openebs.io | ||||
| reclaimPolicy: Retain | ||||
| volumeBindingMode: WaitForFirstConsumer | ||||
| allowVolumeExpansion: true | ||||
| parameters: | ||||
|   fsType: "xfs" | ||||
		Reference in New Issue
	
	Block a user