forked from k-space/kube
		
	test proxmox csi
This commit is contained in:
		
							
								
								
									
										6
									
								
								proxmox-csi/config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								proxmox-csi/config.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| clusters: | ||||
|   - url: https://pve1.proxmox.infra.k-space.ee:8006/api2/json | ||||
|     insecure: false | ||||
|     token_id: "ks-kubernetes-csi@pve!cs" | ||||
|     token_secret: "<token goes here>" | ||||
|     region: pve-cluster | ||||
							
								
								
									
										552
									
								
								proxmox-csi/proxmox-csi-plugin.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										552
									
								
								proxmox-csi/proxmox-csi-plugin.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,552 @@ | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/namespace.yaml | ||||
| apiVersion: v1 | ||||
| kind: Namespace | ||||
| metadata: | ||||
|   name: csi-proxmox | ||||
|   labels: | ||||
|     pod-security.kubernetes.io/enforce: privileged | ||||
|     pod-security.kubernetes.io/audit: baseline | ||||
|     pod-security.kubernetes.io/warn: baseline | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/serviceaccount.yaml | ||||
| apiVersion: v1 | ||||
| kind: ServiceAccount | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-controller | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/serviceaccount.yaml | ||||
| apiVersion: v1 | ||||
| kind: ServiceAccount | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-node | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/storageclass.yaml | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: StorageClass | ||||
| metadata: | ||||
|   name: proxmox-data-xfs | ||||
| provisioner: csi.proxmox.sinextra.dev | ||||
| allowVolumeExpansion: true | ||||
| volumeBindingMode: WaitForFirstConsumer | ||||
| reclaimPolicy: Delete | ||||
| parameters: | ||||
|   csi.storage.k8s.io/fstype: xfs | ||||
|   storage: data | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/storageclass.yaml | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: StorageClass | ||||
| metadata: | ||||
|   name: proxmox-data | ||||
| provisioner: csi.proxmox.sinextra.dev | ||||
| allowVolumeExpansion: true | ||||
| volumeBindingMode: WaitForFirstConsumer | ||||
| reclaimPolicy: Delete | ||||
| parameters: | ||||
|   csi.storage.k8s.io/fstype: ext4 | ||||
|   ssd: "true" | ||||
|   storage: data | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/controller-clusterrole.yaml | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: ClusterRole | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-controller | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| rules: | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumes"] | ||||
|     verbs: ["get", "list", "watch", "create", "patch", "delete"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumeclaims"] | ||||
|     verbs: ["get", "list", "watch", "update"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["persistentvolumeclaims/status"] | ||||
|     verbs: ["patch"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["events"] | ||||
|     verbs: ["get","list", "watch", "create", "update", "patch"] | ||||
|  | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["storageclasses"] | ||||
|     verbs: ["get", "list", "watch"] | ||||
|   - 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", "patch"] | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["volumeattachments/status"] | ||||
|     verbs: ["patch"] | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/node-clusterrole.yaml | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: ClusterRole | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-node | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| rules: | ||||
|   - apiGroups: | ||||
|       - "" | ||||
|     resources: | ||||
|       - nodes | ||||
|     verbs: | ||||
|       - get | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/controller-rolebinding.yaml | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: ClusterRoleBinding | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-controller | ||||
| roleRef: | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
|   kind: ClusterRole | ||||
|   name: proxmox-csi-plugin-controller | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: proxmox-csi-plugin-controller | ||||
|     namespace: csi-proxmox | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/node-rolebinding.yaml | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: ClusterRoleBinding | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-node | ||||
| roleRef: | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
|   kind: ClusterRole | ||||
|   name: proxmox-csi-plugin-node | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: proxmox-csi-plugin-node | ||||
|     namespace: csi-proxmox | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/controller-role.yaml | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: Role | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-controller | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| rules: | ||||
|   - apiGroups: ["coordination.k8s.io"] | ||||
|     resources: ["leases"] | ||||
|     verbs: ["get", "watch", "list", "delete", "update", "create"] | ||||
|  | ||||
|   - apiGroups: ["storage.k8s.io"] | ||||
|     resources: ["csistoragecapacities"] | ||||
|     verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] | ||||
|   - apiGroups: [""] | ||||
|     resources: ["pods"] | ||||
|     verbs: ["get"] | ||||
|   - apiGroups: ["apps"] | ||||
|     resources: ["replicasets"] | ||||
|     verbs: ["get"] | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/controller-rolebinding.yaml | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: RoleBinding | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-controller | ||||
|   namespace: csi-proxmox | ||||
| roleRef: | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
|   kind: Role | ||||
|   name: proxmox-csi-plugin-controller | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: proxmox-csi-plugin-controller | ||||
|     namespace: csi-proxmox | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/node-deployment.yaml | ||||
| apiVersion: apps/v1 | ||||
| kind: DaemonSet | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-node | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| spec: | ||||
|   updateStrategy: | ||||
|     type: RollingUpdate | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: proxmox-csi-plugin | ||||
|       app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|       app.kubernetes.io/component: node | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         app.kubernetes.io/name: proxmox-csi-plugin | ||||
|         app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|         app.kubernetes.io/component: node | ||||
|     spec: | ||||
|       priorityClassName: system-node-critical | ||||
|       enableServiceLinks: false | ||||
|       serviceAccountName: proxmox-csi-plugin-node | ||||
|       securityContext: | ||||
|         runAsUser: 0 | ||||
|         runAsGroup: 0 | ||||
|       containers: | ||||
|         - name: proxmox-csi-plugin-node | ||||
|           securityContext: | ||||
|             privileged: true | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|               add: | ||||
|               - SYS_ADMIN | ||||
|               - CHOWN | ||||
|               - DAC_OVERRIDE | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "ghcr.io/sergelogvinov/proxmox-csi-node:edge" | ||||
|           imagePullPolicy: Always | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|             - "--node-id=$(NODE_NAME)" | ||||
|           env: | ||||
|             - name: NODE_NAME | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   fieldPath: spec.nodeName | ||||
|           resources: | ||||
|             {} | ||||
|           volumeMounts: | ||||
|             - name: socket | ||||
|               mountPath: /csi | ||||
|             - name: kubelet | ||||
|               mountPath: /var/lib/kubelet | ||||
|               mountPropagation: Bidirectional | ||||
|             - name: dev | ||||
|               mountPath: /dev | ||||
|             - name: sys | ||||
|               mountPath: /sys | ||||
|         - name: csi-node-driver-registrar | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.4" | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|             - "--kubelet-registration-path=/var/lib/kubelet/plugins/csi.proxmox.sinextra.dev/csi.sock" | ||||
|           volumeMounts: | ||||
|             - name: socket | ||||
|               mountPath: /csi | ||||
|             - name: registration | ||||
|               mountPath: /registration | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|         - name: liveness-probe | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "registry.k8s.io/sig-storage/livenessprobe:v2.11.0" | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|           volumeMounts: | ||||
|             - name: socket | ||||
|               mountPath: /csi | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|       volumes: | ||||
|         - name: socket | ||||
|           hostPath: | ||||
|             path: /var/lib/kubelet/plugins/csi.proxmox.sinextra.dev/ | ||||
|             type: DirectoryOrCreate | ||||
|         - name: registration | ||||
|           hostPath: | ||||
|             path: /var/lib/kubelet/plugins_registry/ | ||||
|             type: Directory | ||||
|         - name: kubelet | ||||
|           hostPath: | ||||
|             path: /var/lib/kubelet | ||||
|             type: Directory | ||||
|         - name: dev | ||||
|           hostPath: | ||||
|             path: /dev | ||||
|             type: Directory | ||||
|         - name: sys | ||||
|           hostPath: | ||||
|             path: /sys | ||||
|             type: Directory | ||||
|       tolerations: | ||||
|         - effect: NoSchedule | ||||
|           key: node.kubernetes.io/unschedulable | ||||
|           operator: Exists | ||||
|         - effect: NoSchedule | ||||
|           key: node.kubernetes.io/disk-pressure | ||||
|           operator: Exists | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/controller-deployment.yaml | ||||
| apiVersion: apps/v1 | ||||
| kind: Deployment | ||||
| metadata: | ||||
|   name: proxmox-csi-plugin-controller | ||||
|   namespace: csi-proxmox | ||||
|   labels: | ||||
|     helm.sh/chart: proxmox-csi-plugin-0.2.8 | ||||
|     app.kubernetes.io/name: proxmox-csi-plugin | ||||
|     app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|     app.kubernetes.io/version: "v0.7.0" | ||||
|     app.kubernetes.io/managed-by: Helm | ||||
| spec: | ||||
|   replicas: 1 | ||||
|   strategy: | ||||
|     type: RollingUpdate | ||||
|     rollingUpdate: | ||||
|       maxUnavailable: 1 | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: proxmox-csi-plugin | ||||
|       app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|       app.kubernetes.io/component: controller | ||||
|   template: | ||||
|     metadata: | ||||
|       annotations: | ||||
|         checksum/config: c69436cb1e16c36ff708b1003d3ca4c6ee6484d2524e2ba7d9b68f473acaa1ca | ||||
|       labels: | ||||
|         app.kubernetes.io/name: proxmox-csi-plugin | ||||
|         app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|         app.kubernetes.io/component: controller | ||||
|     spec: | ||||
|       priorityClassName: system-cluster-critical | ||||
|       enableServiceLinks: false | ||||
|       serviceAccountName: proxmox-csi-plugin-controller | ||||
|       securityContext: | ||||
|         fsGroup: 65532 | ||||
|         fsGroupChangePolicy: OnRootMismatch | ||||
|         runAsGroup: 65532 | ||||
|         runAsNonRoot: true | ||||
|         runAsUser: 65532 | ||||
|       hostAliases: | ||||
|         [] | ||||
|       initContainers: | ||||
|         [] | ||||
|       containers: | ||||
|         - name: proxmox-csi-plugin-controller | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "ghcr.io/sergelogvinov/proxmox-csi-controller:edge" | ||||
|           imagePullPolicy: Always | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|             - "--cloud-config=/etc/proxmox/config.yaml" | ||||
|             # - "--metrics-address=:8080" | ||||
|           # ports: | ||||
|           #   - name: metrics | ||||
|           #     containerPort: 8080 | ||||
|           #     protocol: TCP | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|             - name: cloud-config | ||||
|               mountPath: /etc/proxmox/ | ||||
|         - name: csi-attacher | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "registry.k8s.io/sig-storage/csi-attacher:v4.4.4" | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|             - "--timeout=3m" | ||||
|             - "--leader-election" | ||||
|             - "--default-fstype=ext4" | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|           resources:  | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|         - name: csi-provisioner | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "registry.k8s.io/sig-storage/csi-provisioner:v3.6.4" | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|             - "--timeout=3m" | ||||
|             - "--leader-election" | ||||
|             - "--default-fstype=ext4" | ||||
|             - "--feature-gates=Topology=True" | ||||
|             - "--enable-capacity" | ||||
|             - "--capacity-ownerref-level=2" | ||||
|           env: | ||||
|             - name: NAMESPACE | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   fieldPath: metadata.namespace | ||||
|             - name: POD_NAME | ||||
|               valueFrom: | ||||
|                 fieldRef: | ||||
|                   fieldPath: metadata.name | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|           resources:  | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|         - name: csi-resizer | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "registry.k8s.io/sig-storage/csi-resizer:v1.9.4" | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|             - "--timeout=3m" | ||||
|             - "--handle-volume-inuse-error=false" | ||||
|             - "--leader-election" | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|           resources:  | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|         - name: liveness-probe | ||||
|           securityContext: | ||||
|             allowPrivilegeEscalation: false | ||||
|             capabilities: | ||||
|               drop: | ||||
|               - ALL | ||||
|             readOnlyRootFilesystem: true | ||||
|             seccompProfile: | ||||
|               type: RuntimeDefault | ||||
|           image: "registry.k8s.io/sig-storage/livenessprobe:v2.11.0" | ||||
|           imagePullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - "-v=5" | ||||
|             - "--csi-address=unix:///csi/csi.sock" | ||||
|           volumeMounts: | ||||
|             - name: socket-dir | ||||
|               mountPath: /csi | ||||
|           resources:  | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 16Mi | ||||
|       volumes: | ||||
|         - name: socket-dir | ||||
|           emptyDir: {} | ||||
|         - name: cloud-config | ||||
|           secret: | ||||
|             secretName: proxmox-csi-plugin | ||||
|       nodeSelector: | ||||
|         node-role.kubernetes.io/control-plane: "" | ||||
|       tolerations: | ||||
|         - effect: NoSchedule | ||||
|           key: node-role.kubernetes.io/control-plane | ||||
|       topologySpreadConstraints: | ||||
|         - maxSkew: 1 | ||||
|           topologyKey: kubernetes.io/hostname | ||||
|           whenUnsatisfiable: DoNotSchedule | ||||
|           labelSelector: | ||||
|             matchLabels: | ||||
|               app.kubernetes.io/name: proxmox-csi-plugin | ||||
|               app.kubernetes.io/instance: proxmox-csi-plugin | ||||
|               app.kubernetes.io/component: controller | ||||
| --- | ||||
| # Source: proxmox-csi-plugin/templates/csidriver.yaml | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: CSIDriver | ||||
| metadata: | ||||
|   name: csi.proxmox.sinextra.dev | ||||
| spec: | ||||
|   attachRequired: true | ||||
|   podInfoOnMount: true | ||||
|   storageCapacity: true | ||||
|   volumeLifecycleModes: | ||||
|   - Persistent | ||||
							
								
								
									
										19
									
								
								proxmox-csi/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								proxmox-csi/readme.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| # proxmox-csi | ||||
|  | ||||
| 1. create role in pve if it doesn't exist | ||||
| 2. create user and assign permissions, preferrably at resource pool level | ||||
|     ``` | ||||
|     pveum user add ks-kubernetes-csi@pve | ||||
|     pveum aclmod /pool/kspace_pool -user ks-kubernetes-csi@pve -role CSI | ||||
|     pveum user token add ks-kubernetes-csi@pve cs -privsep 0 | ||||
|     ``` | ||||
|     save the token! | ||||
| 3. apply `proxmox-csi-plugin.yml` and `storage-class.yaml`, delete proxmox-csi default storage classes from kube. | ||||
| 4. add the token from pve to `config.yaml` and create the secret: `kubectl -n csi-proxmox create secret generic proxmox-csi-plugin --from-file=config.yaml` | ||||
| 5. label the nodes according to allocation: | ||||
|     ```  | ||||
|     kubectl --kubeconfig ~/.kube/k-space label nodes worker1.kube.k-space.ee topology.kubernetes.io/region=pve-cluster topology.kubernetes.io/zone=pve1 --overwrite | ||||
|     kubectl --kubeconfig ~/.kube/k-space label nodes worker2.kube.k-space.ee topology.kubernetes.io/region=pve-cluster topology.kubernetes.io/zone=pve2 --overwrite | ||||
|     kubectl --kubeconfig ~/.kube/k-space label nodes worker3.kube.k-space.ee topology.kubernetes.io/region=pve-cluster topology.kubernetes.io/zone=pve8 --overwrite | ||||
|     kubectl --kubeconfig ~/.kube/k-space label nodes worker4.kube.k-space.ee topology.kubernetes.io/region=pve-cluster topology.kubernetes.io/zone=pve9 --overwrite | ||||
|     ``` | ||||
							
								
								
									
										14
									
								
								proxmox-csi/storage-class.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								proxmox-csi/storage-class.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| apiVersion: storage.k8s.io/v1 | ||||
| kind: StorageClass | ||||
| metadata: | ||||
|   name: proxmox | ||||
| parameters: | ||||
|   csi.storage.k8s.io/fstype: xfs | ||||
|   storage: ks-pvs | ||||
|   cache: none | ||||
|   ssd: "false" | ||||
|   shared: "true" | ||||
| provisioner: csi.proxmox.sinextra.dev | ||||
| allowVolumeExpansion: true | ||||
| reclaimPolicy: Delete | ||||
| volumeBindingMode: WaitForFirstConsumer | ||||
		Reference in New Issue
	
	Block a user