mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 06:20:11 +01:00
adding topology support for zfspv (#7)
This PR adds support to allow the CSI driver to pick up a node matching the topology specified in the storage class. Admin can specify allowedTopologies in the StorageClass to specify the nodes where the zfs pools are setup
```yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: openebs-zfspv
allowVolumeExpansion: true
parameters:
blocksize: "4k"
compression: "on"
dedup: "on"
thinprovision: "yes"
poolname: "zfspv-pool"
provisioner: zfs-localpv
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
- key: kubernetes.io/hostname
values:
- gke-zfspv-pawan-default-pool-c8929518-cgd4
- gke-zfspv-pawan-default-pool-c8929518-dxzc
```
Note: This PR picks up the first node from the list of nodes available.
Signed-off-by: Pawan <pawan@mayadata.io>
This commit is contained in:
parent
0218dacea0
commit
d0e97cddb2
11 changed files with 88 additions and 48 deletions
|
|
@ -12,8 +12,14 @@ parameters:
|
|||
#keyformat: "raw"
|
||||
#keylocation: "file:///home/pawan/key"
|
||||
poolname: "zfspv-pool"
|
||||
provisioner: openebs.io/zfs
|
||||
provisioner: zfs-localpv
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
allowedTopologies:
|
||||
- matchLabelExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
values:
|
||||
- gke-zfspv-pawan-default-pool-c8929518-cgd4
|
||||
- gke-zfspv-pawan-default-pool-c8929518-dxzc
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
|
|
@ -32,15 +38,6 @@ kind: Pod
|
|||
metadata:
|
||||
name: fio
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- gke-pawan-zfspv-default-pool-1813a371-6nhl
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: perfrunner
|
||||
|
|
|
|||
|
|
@ -9,7 +9,14 @@ parameters:
|
|||
dedup: "on"
|
||||
thinprovision: "yes"
|
||||
poolname: "zfspv-pool"
|
||||
provisioner: openebs.io/zfs
|
||||
provisioner: zfs-localpv
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
allowedTopologies:
|
||||
- matchLabelExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
values:
|
||||
- gke-zfspv-pawan-default-pool-c8929518-cgd4
|
||||
- gke-zfspv-pawan-default-pool-c8929518-dxzc
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
|
|
@ -57,7 +64,7 @@ data:
|
|||
mysql -uroot -pk8sDem0 -e "INSERT INTO Hardware (id, name, owner, description) values (1, "dellserver", "basavaraj", "controller");" $DB_NAME
|
||||
mysql -uroot -pk8sDem0 -e "DROP DATABASE $DB_NAME;"
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: percona
|
||||
|
|
@ -73,15 +80,6 @@ spec:
|
|||
labels:
|
||||
name: percona
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- gke-pawan-zfspv-default-pool-26f2b9a9-5fqd
|
||||
containers:
|
||||
- resources:
|
||||
name: percona
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ roleRef:
|
|||
|
||||
---
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1beta1
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: openebs-zfs-controller
|
||||
namespace: kube-system
|
||||
|
|
@ -107,13 +107,13 @@ spec:
|
|||
serviceAccount: openebs-zfs-controller-sa
|
||||
containers:
|
||||
- name: csi-provisioner
|
||||
image: quay.io/k8scsi/csi-provisioner:v1.0.1
|
||||
image: quay.io/k8scsi/csi-provisioner:v1.4.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- "--provisioner=openebs.io/zfs"
|
||||
- "--csi-address=$(ADDRESS)"
|
||||
- "--v=5"
|
||||
- "--feature-gates=Topology=true"
|
||||
- "--strict-topology"
|
||||
env:
|
||||
- name: ADDRESS
|
||||
value: /var/lib/csi/sockets/pluginproxy/csi.sock
|
||||
|
|
@ -121,7 +121,7 @@ spec:
|
|||
- name: socket-dir
|
||||
mountPath: /var/lib/csi/sockets/pluginproxy/
|
||||
- name: csi-attacher
|
||||
image: quay.io/k8scsi/csi-attacher:v1.0.1
|
||||
image: quay.io/k8scsi/csi-attacher:v2.0.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- "--v=5"
|
||||
|
|
@ -184,7 +184,7 @@ rules:
|
|||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["volumeattachments", "csinodes"]
|
||||
verbs: ["get", "list", "watch", "update"]
|
||||
verbs: ["get", "list", "watch", "update", "patch"]
|
||||
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
|
|
@ -324,7 +324,7 @@ roleRef:
|
|||
---
|
||||
|
||||
kind: DaemonSet
|
||||
apiVersion: apps/v1beta2
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: openebs-zfs-node
|
||||
namespace: kube-system
|
||||
|
|
@ -343,7 +343,7 @@ spec:
|
|||
hostNetwork: true
|
||||
containers:
|
||||
- name: csi-node-driver-registrar
|
||||
image: quay.io/k8scsi/csi-node-driver-registrar:v1.0.1
|
||||
image: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0
|
||||
args:
|
||||
- "--v=5"
|
||||
- "--csi-address=$(ADDRESS)"
|
||||
|
|
@ -427,21 +427,27 @@ spec:
|
|||
- name: zfs-bin
|
||||
hostPath:
|
||||
path: /sbin/zfs
|
||||
type: File
|
||||
- name: libzpool
|
||||
hostPath:
|
||||
path: /lib/libzpool.so.2.0.0
|
||||
type: File
|
||||
- name: libzfscore
|
||||
hostPath:
|
||||
path: /lib/libzfs_core.so.1.0.0
|
||||
type: File
|
||||
- name: libzfs
|
||||
hostPath:
|
||||
path: /lib/libzfs.so.2.0.0
|
||||
type: File
|
||||
- name: libuutil
|
||||
hostPath:
|
||||
path: /lib/libuutil.so.1.0.1
|
||||
type: File
|
||||
- name: libnvpair
|
||||
hostPath:
|
||||
path: /lib/libnvpair.so.1.0.1
|
||||
type: File
|
||||
- name: registration-dir
|
||||
hostPath:
|
||||
path: /var/lib/kubelet/plugins_registry/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue