diff --git a/clusters/base/apps/radicale/helmrelease.yaml b/clusters/base/apps/radicale/helmrelease.yaml index b44266b..d21a6a9 100644 --- a/clusters/base/apps/radicale/helmrelease.yaml +++ b/clusters/base/apps/radicale/helmrelease.yaml @@ -69,7 +69,7 @@ spec: type: persistentVolumeClaim accessMode: ReadWriteOnce size: 1Gi - storageClass: longhorn + storageClass: longhorn-retain retain: true globalMounts: - path: /data diff --git a/clusters/base/apps/vaultwarden/helmrelease.yaml b/clusters/base/apps/vaultwarden/helmrelease.yaml index 8335a98..83010a2 100644 --- a/clusters/base/apps/vaultwarden/helmrelease.yaml +++ b/clusters/base/apps/vaultwarden/helmrelease.yaml @@ -59,7 +59,7 @@ spec: persistence: data: type: persistentVolumeClaim - storageClass: longhorn + storageClass: longhorn-retain accessMode: ReadWriteOnce size: 2Gi retain: true diff --git a/clusters/base/apps/zigbee2mqtt/helmrelease.yaml b/clusters/base/apps/zigbee2mqtt/helmrelease.yaml index ed1b885..90e18f3 100644 --- a/clusters/base/apps/zigbee2mqtt/helmrelease.yaml +++ b/clusters/base/apps/zigbee2mqtt/helmrelease.yaml @@ -21,7 +21,7 @@ spec: storage: enabled: true size: 1Gi - storageClassName: longhorn + storageClassName: longhorn-retain secrets: name: zigbee2mqtt-secrets diff --git a/clusters/base/infra/storage-classes/kustomization.yaml b/clusters/base/infra/storage-classes/kustomization.yaml new file mode 100644 index 0000000..d8b04f1 --- /dev/null +++ b/clusters/base/infra/storage-classes/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - longhorn-retain.yaml diff --git a/clusters/base/infra/storage-classes/longhorn-retain.yaml b/clusters/base/infra/storage-classes/longhorn-retain.yaml new file mode 100644 index 0000000..3266666 --- /dev/null +++ b/clusters/base/infra/storage-classes/longhorn-retain.yaml @@ -0,0 +1,12 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: longhorn-retain + annotations: + storageclass.kubernetes.io/is-default-class: "true" +provisioner: driver.longhorn.io +reclaimPolicy: Retain +allowVolumeExpansion: true +parameters: + numberOfReplicas: "3" + staleReplicaTimeout: "30" diff --git a/clusters/home/infra/kustomization.yaml b/clusters/home/infra/kustomization.yaml index b83b23e..4bc2f29 100644 --- a/clusters/home/infra/kustomization.yaml +++ b/clusters/home/infra/kustomization.yaml @@ -1,3 +1,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -resources: [] +resources: + - storage-classes.yaml diff --git a/clusters/home/infra/storage-classes.yaml b/clusters/home/infra/storage-classes.yaml new file mode 100644 index 0000000..b884f71 --- /dev/null +++ b/clusters/home/infra/storage-classes.yaml @@ -0,0 +1,19 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: storage-classes + namespace: flux-system +spec: + interval: 10m + sourceRef: + kind: GitRepository + name: flux-system + path: ./clusters/base/infra/storage-classes + prune: true + wait: true + dependsOn: + - name: namespaces + decryption: + provider: sops + secretRef: + name: sops-age