From 655ca4dc8cebfd3843f79ea6cd60f14e6c51ce49 Mon Sep 17 00:00:00 2001 From: alkatrazz Date: Wed, 13 May 2026 21:22:05 +0200 Subject: [PATCH] feat: NFS provisioner + persistance Prometheus et Grafana MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - k8s/infra/nfs-provisioner/ : nfs-subdir-external-provisioner v4.0.18 StorageClass "nfs" (default), ReclaimPolicy=Retain, server=192.168.10.1 path=/srv/data/nfs/k8s (export RAID5 déjà existant) - k8s/apps-of-apps/apps/nfs-provisioner.yaml : Application ArgoCD - monitoring/values.yaml : persistance activée Prometheus: 20Gi sur nfs, Grafana: 2Gi sur nfs Co-Authored-By: Claude Sonnet 4.6 --- k8s/apps-of-apps/apps/nfs-provisioner.yaml | 22 +++++++++++++++++ k8s/infra/monitoring/values.yaml | 14 ++++++++--- k8s/infra/nfs-provisioner/helmrelease.yaml | 28 ++++++++++++++++++++++ k8s/infra/nfs-provisioner/values.yaml | 16 +++++++++++++ 4 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 k8s/apps-of-apps/apps/nfs-provisioner.yaml create mode 100644 k8s/infra/nfs-provisioner/helmrelease.yaml create mode 100644 k8s/infra/nfs-provisioner/values.yaml diff --git a/k8s/apps-of-apps/apps/nfs-provisioner.yaml b/k8s/apps-of-apps/apps/nfs-provisioner.yaml new file mode 100644 index 0000000..498caab --- /dev/null +++ b/k8s/apps-of-apps/apps/nfs-provisioner.yaml @@ -0,0 +1,22 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: nfs-provisioner + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: git@github.com:Alkatrazz24/Funk-lab.git + targetRevision: main + path: k8s/infra/nfs-provisioner + destination: + server: https://kubernetes.default.svc + namespace: nfs-provisioner + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/k8s/infra/monitoring/values.yaml b/k8s/infra/monitoring/values.yaml index 012ab85..6653446 100644 --- a/k8s/infra/monitoring/values.yaml +++ b/k8s/infra/monitoring/values.yaml @@ -15,7 +15,9 @@ grafana: limits: memory: 256Mi persistence: - enabled: false + enabled: true + storageClassName: nfs + size: 2Gi prometheus: prometheusSpec: @@ -27,8 +29,14 @@ prometheus: memory: 512Mi limits: memory: 1Gi - # Pas de StorageClass encore — emptyDir implicite (éphémère) - # À remplacer par Longhorn une fois installé + storageSpec: + volumeClaimTemplate: + spec: + storageClassName: nfs + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 20Gi # Scrape des nœuds hors cluster (storage-01, gpu-01) additionalScrapeConfigs: diff --git a/k8s/infra/nfs-provisioner/helmrelease.yaml b/k8s/infra/nfs-provisioner/helmrelease.yaml new file mode 100644 index 0000000..52ccc0e --- /dev/null +++ b/k8s/infra/nfs-provisioner/helmrelease.yaml @@ -0,0 +1,28 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: nfs-provisioner + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + sources: + - repoURL: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ + chart: nfs-subdir-external-provisioner + targetRevision: 4.0.18 + helm: + valueFiles: + - $values/k8s/infra/nfs-provisioner/values.yaml + - repoURL: git@github.com:Alkatrazz24/Funk-lab.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: nfs-provisioner + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/k8s/infra/nfs-provisioner/values.yaml b/k8s/infra/nfs-provisioner/values.yaml new file mode 100644 index 0000000..9b140df --- /dev/null +++ b/k8s/infra/nfs-provisioner/values.yaml @@ -0,0 +1,16 @@ +nfs: + server: 192.168.10.1 + path: /srv/data/nfs/k8s + +storageClass: + name: nfs + defaultClass: true + reclaimPolicy: Retain + archiveOnDelete: false + +resources: + requests: + cpu: 50m + memory: 64Mi + limits: + memory: 128Mi