zfs-to-hostpath until talos 1.8 #409

Merged
jahanson merged 3 commits from zfs-to-hostpath into main 2024-07-08 11:22:29 -05:00
45 changed files with 148 additions and 85 deletions

View file

@ -12,7 +12,7 @@ spec:
app.kubernetes.io/name: *app app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: external-secrets-stores - name: external-secrets-stores
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
path: ./kubernetes/apps/home-automation/home-assistant/app path: ./kubernetes/apps/home-automation/home-assistant/app
prune: true prune: true

View file

@ -11,7 +11,7 @@ spec:
labels: labels:
app.kubernetes.io/name: *app app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
path: ./kubernetes/apps/home-automation/matter-server/app path: ./kubernetes/apps/home-automation/matter-server/app
prune: true prune: true

View 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
- ./openebs/ks.yaml

View file

@ -0,0 +1,8 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: openebs-system
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled
volsync.backube/privileged-movers: "true"

View file

@ -0,0 +1,32 @@
---
# yaml-language-server: $schema=https://ks.hsn.dev/helm.toolkit.fluxcd.io/helmrelease_v2beta2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: openebs-zfs
spec:
interval: 30m
chart:
spec:
chart: zfs-localpv
version: 2.6.0
sourceRef:
kind: HelmRepository
name: openebs-zfs
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
uninstall:
keepHistory: false
values:
zfsNode:
encrKeysDir: /var/openebs/keys
crds:
csi:
volumeSnapshots:
enabled: false

View file

@ -0,0 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml

View 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 openebs
namespace: flux-system
spec:
targetNamespace: openebs-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/openebs-system/openebs/app
prune: true
sourceRef:
kind: GitRepository
name: homelab
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

View file

@ -9,7 +9,7 @@ spec:
resources: resources:
requests: requests:
storage: 2Gi storage: 2Gi
storageClassName: "openebs-zfs" storageClassName: "openebs-hostpath"
accessModes: accessModes:
- "ReadWriteOnce" - "ReadWriteOnce"
source: source:

View file

@ -8,7 +8,7 @@ metadata:
app.kubernetes.io/component: storage app.kubernetes.io/component: storage
app.kubernetes.io/managed-by: cdi-controller app.kubernetes.io/managed-by: cdi-controller
cdi.kubevirt.io: "" cdi.kubevirt.io: ""
name: openebs-zfs name: openebs-hostpath
spec: spec:
claimPropertySets: claimPropertySets:
- accessModes: - accessModes:
@ -22,5 +22,5 @@ status:
cloneStrategy: copy cloneStrategy: copy
dataImportCronSourceFormat: pvc dataImportCronSourceFormat: pvc
provisioner: zfs.csi.openebs.io provisioner: zfs.csi.openebs.io
snapshotClass: openebs-zfs snapshotClass: openebs-hostpath
storageClass: openebs-zfs storageClass: openebs-hostpath

View file

@ -9,7 +9,7 @@ spec:
targetNamespace: cdi targetNamespace: cdi
dependsOn: dependsOn:
- name: kubevirt - name: kubevirt
- name: openebs-cluster - name: openebs-system
path: ./deploy path: ./deploy
prune: true prune: true
sourceRef: sourceRef:

View file

@ -41,7 +41,7 @@ spec:
app.kubernetes.io/name: crunchy-postgres app.kubernetes.io/name: crunchy-postgres
replicas: &replica 1 replicas: &replica 1
dataVolumeClaimSpec: dataVolumeClaimSpec:
storageClassName: openebs-zfs storageClassName: openebs-hostpath
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View file

@ -18,7 +18,7 @@ spec:
name: homelab name: homelab
wait: false wait: false
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
- name: external-secrets-stores - name: external-secrets-stores
postBuild: postBuild:

View file

@ -16,7 +16,7 @@ spec:
kind: GitRepository kind: GitRepository
name: homelab name: homelab
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
wait: false wait: false
interval: 30m interval: 30m

View file

@ -13,7 +13,7 @@ spec:
dependsOn: dependsOn:
- name: crunchy-postgres-operator - name: crunchy-postgres-operator
- name: external-secrets-stores - name: external-secrets-stores
- name: openebs-cluster - name: openebs-system
path: ./kubernetes/apps/default/radarr/app path: ./kubernetes/apps/default/radarr/app
prune: true prune: true
sourceRef: sourceRef:

View file

@ -12,7 +12,7 @@ spec:
app.kubernetes.io/name: *app app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: external-secrets-stores - name: external-secrets-stores
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
path: ./kubernetes/apps/default/sabnzbd/app path: ./kubernetes/apps/default/sabnzbd/app
prune: true prune: true

View file

@ -14,7 +14,7 @@ spec:
- name: crunchy-postgres-operator - name: crunchy-postgres-operator
- name: external-secrets-stores - name: external-secrets-stores
- name: volsync - name: volsync
- name: openebs-cluster - name: openebs-system
path: ./kubernetes/apps/default/sonarr/app path: ./kubernetes/apps/default/sonarr/app
prune: true prune: true
sourceRef: sourceRef:

View file

@ -16,7 +16,7 @@ spec:
kind: GitRepository kind: GitRepository
name: homelab name: homelab
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
wait: false wait: false
interval: 30m interval: 30m

View file

@ -18,7 +18,7 @@ spec:
name: homelab name: homelab
wait: true wait: true
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
- name: external-secrets-stores - name: external-secrets-stores
postBuild: postBuild:

View file

@ -13,8 +13,8 @@ resources:
- ./kubelet-csr-approver/ks.yaml - ./kubelet-csr-approver/ks.yaml
- ./metrics-server/ks.yaml - ./metrics-server/ks.yaml
- ./multus/ks.yaml - ./multus/ks.yaml
# - ./nvidia-device-plugin/ks.yaml # Until nvidia-container-plugin issues are resolved with the ZFS extension. - ./nvidia-device-plugin/ks.yaml
- ./node-feature-discovery/ks.yaml - ./node-feature-discovery/ks.yaml
- ./reloader/ks.yaml - ./reloader/ks.yaml
- ./spegel/ks.yaml - ./spegel/ks.yaml
- ./zfs-scrub/ks.yaml # - ./zfs-scrub/ks.yaml # Until nvidia-container-plugin issues are resolved with the ZFS extension.

View file

@ -8,7 +8,7 @@ metadata:
spec: spec:
targetNamespace: kubevirt targetNamespace: kubevirt
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
path: ./deploy path: ./deploy
prune: true prune: true
sourceRef: sourceRef:
@ -40,7 +40,7 @@ spec:
featureGates: featureGates:
- CPUNodeDiscovery - CPUNodeDiscovery
- ExpandDisks - ExpandDisks
vmStateStorageClass: openebs-zfs vmStateStorageClass: openebs-hostpath
target: target:
group: kubevirt.io group: kubevirt.io
kind: KubeVirt kind: KubeVirt

View file

@ -9,4 +9,4 @@ spec:
resources: resources:
requests: requests:
storage: 80Gi storage: 80Gi
storageClassName: openebs-zfs storageClassName: openebs-hostpath

View file

@ -9,4 +9,4 @@ spec:
resources: resources:
requests: requests:
storage: 80Gi storage: 80Gi
storageClassName: openebs-zfs storageClassName: openebs-hostpath

View file

@ -46,7 +46,7 @@ spec:
storage: storage:
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: openebs-zfs storageClassName: openebs-hostpath
resources: resources:
requests: requests:
storage: 1Gi storage: 1Gi
@ -142,7 +142,7 @@ spec:
storageSpec: storageSpec:
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: openebs-zfs storageClassName: openebs-hostpath
resources: resources:
requests: requests:
storage: 20Gi storage: 20Gi

View file

@ -12,7 +12,7 @@ spec:
app.kubernetes.io/name: *app app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: external-secrets-stores - name: external-secrets-stores
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
path: ./kubernetes/apps/observability/kube-prometheus-stack/app path: ./kubernetes/apps/observability/kube-prometheus-stack/app
prune: true prune: true

View file

@ -104,7 +104,7 @@ spec:
replicas: 1 replicas: 1
persistence: persistence:
size: 20Gi size: 20Gi
storageClass: openebs-zfs storageClass: openebs-hostpath
gateway: gateway:
replicas: 1 replicas: 1
image: image:
@ -125,7 +125,7 @@ spec:
replicas: 1 replicas: 1
persistence: persistence:
size: 20Gi size: 20Gi
storageClass: openebs-zfs storageClass: openebs-hostpath
sidecar: sidecar:
image: image:
repository: ghcr.io/kiwigrid/k8s-sidecar repository: ghcr.io/kiwigrid/k8s-sidecar

View file

@ -12,7 +12,7 @@ spec:
app.kubernetes.io/name: *app app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: external-secrets-stores - name: external-secrets-stores
- name: openebs-cluster - name: openebs-system
- name: vector - name: vector
path: ./kubernetes/apps/observability/loki/app path: ./kubernetes/apps/observability/loki/app
prune: true prune: true

View file

@ -65,7 +65,7 @@ spec:
- --retention.resolution-1h=60d - --retention.resolution-1h=60d
persistence: &persistence persistence: &persistence
enabled: true enabled: true
storageClass: openebs-zfs storageClass: openebs-hostpath
size: 10Gi size: 10Gi
query: query:
replicas: 1 replicas: 1

View file

@ -12,7 +12,7 @@ spec:
app.kubernetes.io/name: *app app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: external-secrets-stores - name: external-secrets-stores
- name: openebs-cluster - name: openebs-system
- name: dragonfly-operator - name: dragonfly-operator
path: ./kubernetes/apps/observability/thanos/app path: ./kubernetes/apps/observability/thanos/app
prune: true prune: true

View file

@ -3,16 +3,16 @@
apiVersion: helm.toolkit.fluxcd.io/v2 apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: openebs-zfs name: openebs
spec: spec:
interval: 30m interval: 30m
chart: chart:
spec: spec:
chart: zfs-localpv chart: openebs
version: 2.6.0 version: 4.0.1
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: openebs-zfs name: openebs
namespace: flux-system namespace: flux-system
install: install:
remediation: remediation:
@ -20,13 +20,34 @@ spec:
upgrade: upgrade:
cleanupOnFail: true cleanupOnFail: true
remediation: remediation:
strategy: rollback
retries: 3 retries: 3
uninstall:
keepHistory: false
values: values:
zfsNode: localpv-provisioner:
encrKeysDir: /var/openebs/keys localpv:
crds: image:
registry: quay.io/
repository: openebs/provisioner-localpv
hostpathClass:
name: openebs-hostpath
isDefaultClass: true
openebs-crds:
csi: csi:
volumeSnapshots: volumeSnapshots:
enabled: false enabled: false
keep: false
zfs-localpv:
enabled: false
lvm-localpv:
enabled: false
mayastor:
enabled: false
engines:
local:
lvm:
enabled: false
zfs:
enabled: false
replicated:
mayastor:
enabled: false

View file

@ -19,26 +19,3 @@ spec:
interval: 30m interval: 30m
retryInterval: 1m retryInterval: 1m
timeout: 5m timeout: 5m
---
# 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 openebs-cluster
namespace: flux-system
spec:
targetNamespace: openebs-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/openebs-system/openebs/cluster
dependsOn:
- name: openebs
prune: true
sourceRef:
kind: GitRepository
name: homelab
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

View file

@ -18,7 +18,7 @@ spec:
name: homelab name: homelab
wait: true wait: true
dependsOn: dependsOn:
- name: openebs-cluster - name: openebs-system
- name: volsync - name: volsync
- name: external-secrets-stores - name: external-secrets-stores
postBuild: postBuild:

View file

@ -26,7 +26,6 @@ resources:
- kubernetes-sigs-external-dns.yaml - kubernetes-sigs-external-dns.yaml
- nvidia.yaml - nvidia.yaml
- openebs.yaml - openebs.yaml
- openebs-zfs.yaml
- piraeus.yaml - piraeus.yaml
- postfinance.yaml - postfinance.yaml
- prometheus-community.yaml - prometheus-community.yaml

View file

@ -1,10 +0,0 @@
---
# yaml-language-server: $schema=https://ks.hsn.dev/source.toolkit.fluxcd.io/helmrepository_v1beta2.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: openebs-zfs
namespace: flux-system
spec:
interval: 2h
url: https://openebs.github.io/zfs-localpv

View file

@ -36,7 +36,7 @@ spec:
app.kubernetes.io/name: pgo-${APP} app.kubernetes.io/name: pgo-${APP}
replicas: 1 replicas: 1
dataVolumeClaimSpec: dataVolumeClaimSpec:
storageClassName: openebs-zfs storageClassName: openebs-hostpath
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View file

@ -12,4 +12,4 @@ spec:
resources: resources:
requests: requests:
storage: "${VOLSYNC_CAPACITY}" storage: "${VOLSYNC_CAPACITY}"
storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-zfs}" storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-hostpath}"

View file

@ -36,11 +36,11 @@ spec:
copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}" copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}"
pruneIntervalDays: 7 pruneIntervalDays: 7
repository: "${APP}-volsync-secret" repository: "${APP}-volsync-secret"
volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-openebs-zfs}" volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-openebs-hostpath}"
cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}" cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}"
cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-zfs}" cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-hostpath}"
cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"] cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-zfs}" storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-hostpath}"
accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"] accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
moverSecurityContext: moverSecurityContext:
runAsUser: ${APP_UID:-568} runAsUser: ${APP_UID:-568}
@ -62,11 +62,11 @@ spec:
restic: restic:
repository: "${APP}-volsync-secret" repository: "${APP}-volsync-secret"
copyMethod: Snapshot # must be Snapshot copyMethod: Snapshot # must be Snapshot
volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-openebs-zfs}" volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-openebs-hostpath}"
cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-zfs}" cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-hostpath}"
cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"] cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}" cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}"
storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-zfs}" storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-hostpath}"
accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"] accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
capacity: "${VOLSYNC_CAPACITY}" capacity: "${VOLSYNC_CAPACITY}"
moverSecurityContext: moverSecurityContext:

View file

@ -36,11 +36,11 @@ spec:
copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}" copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}"
pruneIntervalDays: 7 pruneIntervalDays: 7
repository: "${APP}-volsync-r2-secret" repository: "${APP}-volsync-r2-secret"
volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-openebs-zfs}" volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-openebs-hostpath}"
cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}" cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-4Gi}"
cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-zfs}" cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-openebs-hostpath}"
cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"] cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-zfs}" storageClassName: "${VOLSYNC_STORAGECLASS:-openebs-hostpath}"
accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"] accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
moverSecurityContext: moverSecurityContext:
runAsUser: ${APP_UID:-568} runAsUser: ${APP_UID:-568}

View file

@ -4,7 +4,7 @@ apiVersion: v1
metadata: metadata:
name: kbench-pvc name: kbench-pvc
spec: spec:
storageClassName: openebs-zfs storageClassName: openebs-hostpath
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources: