Add democratic CSI
This commit is contained in:
parent
31a7b8bdd1
commit
d8638eb17d
6 changed files with 190 additions and 0 deletions
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://ks.hsn.dev/external-secrets.io/externalsecret_v1beta1.json
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: democratic-csi
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: onepassword-connect
|
||||
target:
|
||||
name: democratic-csi-secret
|
||||
creationPolicy: Owner
|
||||
template:
|
||||
engineVersion: v2
|
||||
data:
|
||||
CSI_USERNAME: "{{ .dcsi_username }}"
|
||||
CSI_PRIVATEKEY: "{{ .dcsi_privatekey }}"
|
||||
dataFrom:
|
||||
- extract:
|
||||
key: democratic-csi
|
||||
rewrite:
|
||||
- regexp:
|
||||
source: "(.*)"
|
||||
target: "dcsi_$1"
|
|
@ -0,0 +1,120 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta2.json
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: nfs-zfs-dataset
|
||||
namespace: democratic-csi
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: democratic-csi
|
||||
version: 0.14.6
|
||||
sourceRef:
|
||||
name: democratic-csi
|
||||
kind: HelmRepository
|
||||
namespace: flux-system
|
||||
valuesFrom:
|
||||
- targetPath: driver.config.driver.sshConnection.username
|
||||
kind: Secret
|
||||
name: zfs-nfs-csi-username
|
||||
valuesKey: CSI_USERNAME
|
||||
- targetPath: driver.config.driver.sshConnection.privateKey
|
||||
kind: Secret
|
||||
name: zfs-nfs-csi-private-key
|
||||
valuesKey: CSI_PRIVATEKEY
|
||||
values:
|
||||
csiDriver:
|
||||
# should be globally unique for a given cluster
|
||||
name: "org.democratic-csi.nfs"
|
||||
fsGroupPolicy: File
|
||||
|
||||
storageClasses:
|
||||
- name: zfs-generic-nfs-csi
|
||||
defaultClass: false
|
||||
reclaimPolicy: Delete
|
||||
volumeBindingMode: Immediate
|
||||
allowVolumeExpansion: true
|
||||
parameters:
|
||||
# for block-based storage can be ext3, ext4, xfs
|
||||
# for nfs should be nfs
|
||||
fsType: nfs
|
||||
|
||||
# if true, volumes created from other snapshots will be
|
||||
# zfs send/received instead of zfs cloned
|
||||
# detachedVolumesFromSnapshots: "false"
|
||||
|
||||
# if true, volumes created from other volumes will be
|
||||
# zfs send/received instead of zfs cloned
|
||||
# detachedVolumesFromVolumes: "false"
|
||||
|
||||
mountOptions:
|
||||
- noatime
|
||||
- nfsvers=3
|
||||
secrets:
|
||||
provisioner-secret:
|
||||
controller-publish-secret:
|
||||
node-stage-secret:
|
||||
node-publish-secret:
|
||||
controller-expand-secret:
|
||||
volumeSnapshotClasses:
|
||||
- name: zfs-generic-nfs-csi
|
||||
parameters:
|
||||
# if true, snapshots will be created with zfs send/receive
|
||||
detachedSnapshots: "true"
|
||||
secrets:
|
||||
snapshotter-secret:
|
||||
driver:
|
||||
config:
|
||||
# please see the most up-to-date example of the corresponding config here:
|
||||
# https://github.com/democratic-csi/democratic-csi/tree/master/examples
|
||||
# YOU MUST COPY THE DATA HERE INLINE!
|
||||
driver: zfs-generic-nfs
|
||||
sshConnection:
|
||||
host: 10.1.1.13
|
||||
port: 22
|
||||
|
||||
zfs:
|
||||
# can be used to override defaults if necessary
|
||||
# the example below is useful for TrueNAS 12
|
||||
#cli:
|
||||
# sudoEnabled: true
|
||||
# paths:
|
||||
# zfs: /usr/local/sbin/zfs
|
||||
# zpool: /usr/local/sbin/zpool
|
||||
# sudo: /usr/local/bin/sudo
|
||||
# chroot: /usr/sbin/chroot
|
||||
|
||||
# can be used to set arbitrary values on the dataset/zvol
|
||||
# can use handlebars templates with the parameters from the storage class/CO
|
||||
#datasetProperties:
|
||||
# "org.freenas:description": "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}/{{ parameters.[csi.storage.k8s.io/pvc/name] }}"
|
||||
# "org.freenas:test": "{{ parameters.foo }}"
|
||||
# "org.freenas:test2": "some value"
|
||||
|
||||
datasetParentName: eru/k8s/homelab
|
||||
# do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap
|
||||
# they may be siblings, but neither should be nested in the other
|
||||
# do NOT comment this option out even if you don't plan to use snapshots, just leave it with dummy value
|
||||
detachedSnapshotsDatasetParentName: tanks/k8s/homelab-snapshots
|
||||
|
||||
datasetEnableQuotas: true
|
||||
datasetEnableReservation: false
|
||||
datasetPermissionsMode: "0777"
|
||||
datasetPermissionsUser: 0
|
||||
datasetPermissionsGroup: 0
|
||||
#datasetPermissionsAcls:
|
||||
#- "-m everyone@:full_set:allow"
|
||||
#- "-m u:kube:full_set:allow"
|
||||
|
||||
# nfs:
|
||||
# # https://docs.oracle.com/cd/E23824_01/html/821-1448/gayne.html
|
||||
# # https://www.hiroom2.com/2016/05/18/ubuntu-16-04-share-zfs-storage-via-nfs-smb/
|
||||
# shareStrategy: "setDatasetProperties"
|
||||
# shareStrategySetDatasetProperties:
|
||||
# properties:
|
||||
# #sharenfs: "rw,no_subtree_check,no_root_squash"
|
||||
# sharenfs: "on"
|
||||
# # share: ""
|
||||
# shareHost: "10.1.1.13"
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./externalsecret.yaml
|
||||
- ./helmrelease.yaml
|
21
kubernetes/apps/democratic-csi/democratic-csi/ks.yaml
Normal file
21
kubernetes/apps/democratic-csi/democratic-csi/ks.yaml
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://ks.hsn.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: &app democratic-csi
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: democratic-csi
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/democratic-csi/democratic-csi/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: homelab
|
||||
wait: false
|
||||
interval: 30m
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
9
kubernetes/apps/democratic-csi/kustomization.yaml
Normal file
9
kubernetes/apps/democratic-csi/kustomization.yaml
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
# Pre Flux-Kustomizations
|
||||
- ./namespace.yaml
|
||||
# Flux-Kustomizations
|
||||
- ./democratic-csi/ks.yaml
|
8
kubernetes/apps/democratic-csi/namespace.yaml
Normal file
8
kubernetes/apps/democratic-csi/namespace.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: democratic-csi
|
||||
annotations:
|
||||
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||
volsync.backube/privileged-movers: "true"
|
Loading…
Reference in a new issue