feat(democratic-csi): add nas-zfs-local

This commit is contained in:
JJGadgets
2023-08-12 04:01:05 +08:00
parent b363f9e7d7
commit 18df11e4a4
5 changed files with 169 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ resources:
- ../../../deploy/core/storage/rook-ceph/cluster/
- ../../../deploy/core/storage/democratic-csi/_deps/
- ../../../deploy/core/storage/democratic-csi/local-hostpath/
- ../../../deploy/core/storage/democratic-csi/nas-zfs-local/
- ../../../deploy/core/storage/volsync/
- ../../../deploy/core/tls/cert-manager/
- ../../../deploy/core/dns/internal/_deps/

View File

@@ -0,0 +1,78 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: nas-zfs-local-dataset
namespace: democratic-csi
spec:
chart:
spec:
chart: democratic-csi
version: 0.13.7
sourceRef:
name: democratic-csi
kind: HelmRepository
namespace: flux-system
values:
csiDriver:
name: "nas-zfs-local-dataset.democratic-csi.${CLUSTER_NAME}.home.arpa"
attachRequired: false
storageCapacity: true
fsGroupPolicy: File
storageClasses:
- name: nas-zfs-local-dataset
defaultClass: false
reclaimPolicy: Retain
# distributed support is not yet ready for expansion
allowVolumeExpansion: false
parameters:
fsType: zfs
mountOptions: ["noatime"]
# below selects node(s) for this storageClass
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
- key: role.nodes.home.arpa/nas
values: ["true"]
volumeSnapshotClasses:
- name: nas-zfs-local-dataset
deletionPolicy: Delete
controller:
enabled: true
strategy: node
nodeSelector:
role.nodes.home.arpa/nas: "true"
externalProvisioner:
extraArgs: ["--leader-election=false", "--node-deployment=true", "--node-deployment-immediate-binding=false", "--feature-gates=Topology=true", "--strict-topology=true", "--enable-capacity=true", "--capacity-ownerref-level=1"]
externalAttacher:
enabled: false
# distributed support is not yet ready
externalResizer:
enabled: false
externalSnapshotter:
enabled: true
extraArgs: ["--leader-election=false", "--node-deployment=true"]
node:
nodeSelector:
role.nodes.home.arpa/nas: "true"
driver:
config:
driver: zfs-local-dataset
zfs:
datasetParentName: bigsmoke/data
detachedSnapshotsDatasetParentName: bigsmoke/data/s
datasetProperties:
recordsize: "1M"
compression: "zstd-9"
atime: "off"
overlay: "on"
datasetEnableQuotas: true
datasetEnableReservation: false

View File

@@ -0,0 +1,76 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: nas-zfs-local-zvol
namespace: democratic-csi
spec:
chart:
spec:
chart: democratic-csi
version: 0.13.7
sourceRef:
name: democratic-csi
kind: HelmRepository
namespace: flux-system
values:
csiDriver:
name: "nas-zfs-local-zvol.democratic-csi.${CLUSTER_NAME}.home.arpa"
attachRequired: false
storageCapacity: true
fsGroupPolicy: File
storageClasses:
- name: nas-zfs-local-zvol
defaultClass: false
reclaimPolicy: Retain
# distributed support is not yet ready for expansion
allowVolumeExpansion: false
parameters:
fsType: ext4
mountOptions: ["noatime"]
# below selects node(s) for this storageClass
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
- key: role.nodes.home.arpa/nas
values: ["true"]
volumeSnapshotClasses:
- name: nas-zfs-local-zvol
deletionPolicy: Delete
controller:
enabled: true
strategy: node
nodeSelector:
role.nodes.home.arpa/nas: "true"
externalProvisioner:
extraArgs: ["--leader-election=false", "--node-deployment=true", "--node-deployment-immediate-binding=false", "--feature-gates=Topology=true", "--strict-topology=true", "--enable-capacity=true", "--capacity-ownerref-level=1"]
externalAttacher:
enabled: false
# distributed support is not yet ready
externalResizer:
enabled: false
externalSnapshotter:
enabled: true
extraArgs: ["--leader-election=false", "--node-deployment=true"]
node:
nodeSelector:
role.nodes.home.arpa/nas: "true"
driver:
config:
driver: zfs-local-zvol
zfs:
datasetParentName: bigsmoke/vol
detachedSnapshotsDatasetParentName: bigsmoke/vol/s
datasetProperties:
atime: "off"
zvolCompression: "zstd-9"
zvolEnableReservation: false
zvolBlocksize: "32k"

View File

@@ -0,0 +1,9 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: 1-core-storage-democratic-csi-nas-zfs-local
namespace: flux-system
spec:
path: ./kube/deploy/core/storage/democratic-csi/nas-zfs-local/app
dependsOn: []

View File

@@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ks.yaml