From 52e4396c26b78e6ba88c6da8b7688e85cd3cc692 Mon Sep 17 00:00:00 2001 From: "azykov@mail.ru" Date: Tue, 21 Jul 2026 12:49:13 +0300 Subject: [PATCH] folder structure. longhorn installation --- README.md | 39 ---------------- .../certificate-issuers}/kustomization.yaml | 0 .../letsencrypt-prod.yaml | 0 .../longhorn/longhorn-system/helmrelease.yaml | 45 +++++++++++++++++++ .../longhorn-system/helmrepository.yaml | 8 ++++ .../longhorn-system}/kustomization.yaml | 4 +- .../kustomization.yaml | 0 .../storageclass.yaml | 0 clusters/base/namespaces/longhorn-system.yaml | 6 +++ clusters/home/apps.yaml | 2 +- clusters/home/apps/radicale.yaml | 2 +- clusters/home/apps/vaultwarden.yaml | 2 +- clusters/home/apps/zigbee2mqtt.yaml | 2 +- .../cert-manager/certificate-issuers.yaml} | 4 +- clusters/home/infra/kustomization.yaml | 4 +- .../longhorn-system.yaml} | 4 +- .../longhorn/storage-classes.yaml} | 11 ++--- clusters/home/kustomization.yaml | 2 - clusters/home/namespaces/kustomization.yaml | 1 + 19 files changed, 77 insertions(+), 59 deletions(-) rename clusters/base/{infra-apps/cert-manager-issuers => infra/cert-manager/certificate-issuers}/kustomization.yaml (100%) rename clusters/base/{infra-apps/cert-manager-issuers => infra/cert-manager/certificate-issuers}/letsencrypt-prod.yaml (100%) create mode 100644 clusters/base/infra/longhorn/longhorn-system/helmrelease.yaml create mode 100644 clusters/base/infra/longhorn/longhorn-system/helmrepository.yaml rename clusters/{home/infra-apps => base/infra/longhorn/longhorn-system}/kustomization.yaml (53%) rename clusters/base/infra/{ => longhorn}/storage-class-longhorn-no-retain/kustomization.yaml (100%) rename clusters/base/infra/{ => longhorn}/storage-class-longhorn-no-retain/storageclass.yaml (100%) create mode 100644 clusters/base/namespaces/longhorn-system.yaml rename clusters/home/{infra-apps/cert-manager-issuers.yaml => infra/cert-manager/certificate-issuers.yaml} (75%) rename clusters/home/infra/{storage-class-longhorn-no-retain.yaml => longhorn/longhorn-system.yaml} (71%) rename clusters/home/{infra-apps.yaml => infra/longhorn/storage-classes.yaml} (57%) diff --git a/README.md b/README.md index bf2fe30..e69de29 100644 --- a/README.md +++ b/README.md @@ -1,39 +0,0 @@ -clusters/ - base/ - namespaces/ - vaultwarden.yaml - myai.yaml - shared.yaml - infra/ - default-storageclass-patch.yaml - infra-apps/ - metallb/ - longhorn/ - caddy/ - mosquitto/ - apps/ - vaultwarden/ - myai/ - caldav-mcp/ - - home/ - flux-system/ # bootstrap-managed, см. п.4 - kustomization.yaml # explicit, см. выше - namespaces.yaml # Flux Kustomization CRD - namespaces/ - kustomization.yaml # resources: [../../base/namespaces/*.yaml] - infra.yaml # Flux Kustomization CRD, dependsOn: namespaces - infra/ - kustomization.yaml # resources: [../../base/infra/*.yaml] - infra-nodes.yaml # Flux Kustomization CRD, dependsOn: infra - infra-nodes/ - node1/ - kustomization.yaml - node2/ - kustomization.yaml - infra-apps.yaml # Flux Kustomization CRD, dependsOn: infra-nodes - infra-apps/ - kustomization.yaml # resources: [../../base/infra-apps/metallb, ...] - apps.yaml # Flux Kustomization CRD, dependsOn: infra-apps - apps/ - kustomization.yaml # resources: [../../base/apps/vaultwarden, ...] \ No newline at end of file diff --git a/clusters/base/infra-apps/cert-manager-issuers/kustomization.yaml b/clusters/base/infra/cert-manager/certificate-issuers/kustomization.yaml similarity index 100% rename from clusters/base/infra-apps/cert-manager-issuers/kustomization.yaml rename to clusters/base/infra/cert-manager/certificate-issuers/kustomization.yaml diff --git a/clusters/base/infra-apps/cert-manager-issuers/letsencrypt-prod.yaml b/clusters/base/infra/cert-manager/certificate-issuers/letsencrypt-prod.yaml similarity index 100% rename from clusters/base/infra-apps/cert-manager-issuers/letsencrypt-prod.yaml rename to clusters/base/infra/cert-manager/certificate-issuers/letsencrypt-prod.yaml diff --git a/clusters/base/infra/longhorn/longhorn-system/helmrelease.yaml b/clusters/base/infra/longhorn/longhorn-system/helmrelease.yaml new file mode 100644 index 0000000..48ba6db --- /dev/null +++ b/clusters/base/infra/longhorn/longhorn-system/helmrelease.yaml @@ -0,0 +1,45 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: longhorn + namespace: longhorn-system +spec: + interval: 30m + chart: + spec: + chart: longhorn + version: "1.9.x" # зафиксируй актуальную стабильную ветку + sourceRef: + kind: HelmRepository + name: longhorn + namespace: longhorn-system + interval: 1h + install: + createNamespace: false # namespace создаём отдельным ресурсом с PSA-меткой + remediation: + retries: 3 + upgrade: + remediation: + retries: 3 + values: + defaultSettings: + defaultReplicaCount: 3 # по числу нод control-plane + defaultDataPath: /var/lib/longhorn + guaranteedEngineManagerCPU: 12 + guaranteedReplicaManagerCPU: 12 + # если backup target ещё не настроен — оставь пустым, донастроишь позже через UI/CR + backupTarget: "" + # чтобы не разъезжались реплики при 3 нодах + replicaSoftAntiAffinity: false + persistence: + defaultClass: true + defaultClassReplicaCount: 3 + defaultFsType: ext4 + reclaimPolicy: Retain + csi: + attacherReplicaCount: 3 + provisionerReplicaCount: 3 + resizerReplicaCount: 3 + snapshotterReplicaCount: 3 + ingress: + enabled: false # у тебя уже есть Caddy/Traefik, заведёшь свой Ingress/IngressRoute отдельно \ No newline at end of file diff --git a/clusters/base/infra/longhorn/longhorn-system/helmrepository.yaml b/clusters/base/infra/longhorn/longhorn-system/helmrepository.yaml new file mode 100644 index 0000000..ec2290a --- /dev/null +++ b/clusters/base/infra/longhorn/longhorn-system/helmrepository.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: longhorn + namespace: longhorn-system +spec: + interval: 1h + url: https://charts.longhorn.io \ No newline at end of file diff --git a/clusters/home/infra-apps/kustomization.yaml b/clusters/base/infra/longhorn/longhorn-system/kustomization.yaml similarity index 53% rename from clusters/home/infra-apps/kustomization.yaml rename to clusters/base/infra/longhorn/longhorn-system/kustomization.yaml index 25d9aa1..37e8d2e 100644 --- a/clusters/home/infra-apps/kustomization.yaml +++ b/clusters/base/infra/longhorn/longhorn-system/kustomization.yaml @@ -1,4 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - cert-manager-issuers.yaml + - helmrepository.yaml + - helmrelease.yaml + - secret.enc.yaml diff --git a/clusters/base/infra/storage-class-longhorn-no-retain/kustomization.yaml b/clusters/base/infra/longhorn/storage-class-longhorn-no-retain/kustomization.yaml similarity index 100% rename from clusters/base/infra/storage-class-longhorn-no-retain/kustomization.yaml rename to clusters/base/infra/longhorn/storage-class-longhorn-no-retain/kustomization.yaml diff --git a/clusters/base/infra/storage-class-longhorn-no-retain/storageclass.yaml b/clusters/base/infra/longhorn/storage-class-longhorn-no-retain/storageclass.yaml similarity index 100% rename from clusters/base/infra/storage-class-longhorn-no-retain/storageclass.yaml rename to clusters/base/infra/longhorn/storage-class-longhorn-no-retain/storageclass.yaml diff --git a/clusters/base/namespaces/longhorn-system.yaml b/clusters/base/namespaces/longhorn-system.yaml new file mode 100644 index 0000000..edb3466 --- /dev/null +++ b/clusters/base/namespaces/longhorn-system.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: longhorn-system + labels: + pod-security.kubernetes.io/enforce: privileged \ No newline at end of file diff --git a/clusters/home/apps.yaml b/clusters/home/apps.yaml index 1db1084..1af79ac 100644 --- a/clusters/home/apps.yaml +++ b/clusters/home/apps.yaml @@ -13,7 +13,7 @@ spec: wait: true dependsOn: - name: namespaces - - name: infra-apps + - name: infra decryption: provider: sops secretRef: diff --git a/clusters/home/apps/radicale.yaml b/clusters/home/apps/radicale.yaml index b2a7cce..f332225 100644 --- a/clusters/home/apps/radicale.yaml +++ b/clusters/home/apps/radicale.yaml @@ -13,7 +13,7 @@ spec: wait: true dependsOn: - name: namespaces - - name: infra-apps + - name: infra decryption: provider: sops secretRef: diff --git a/clusters/home/apps/vaultwarden.yaml b/clusters/home/apps/vaultwarden.yaml index d7923cc..8117a5d 100644 --- a/clusters/home/apps/vaultwarden.yaml +++ b/clusters/home/apps/vaultwarden.yaml @@ -13,7 +13,7 @@ spec: wait: true dependsOn: - name: namespaces - - name: infra-apps + - name: infra decryption: provider: sops secretRef: diff --git a/clusters/home/apps/zigbee2mqtt.yaml b/clusters/home/apps/zigbee2mqtt.yaml index 4647b67..0e1fec9 100644 --- a/clusters/home/apps/zigbee2mqtt.yaml +++ b/clusters/home/apps/zigbee2mqtt.yaml @@ -13,7 +13,7 @@ spec: wait: true dependsOn: - name: namespaces - - name: infra-apps + - name: infra decryption: provider: sops secretRef: diff --git a/clusters/home/infra-apps/cert-manager-issuers.yaml b/clusters/home/infra/cert-manager/certificate-issuers.yaml similarity index 75% rename from clusters/home/infra-apps/cert-manager-issuers.yaml rename to clusters/home/infra/cert-manager/certificate-issuers.yaml index 1239910..2350134 100644 --- a/clusters/home/infra-apps/cert-manager-issuers.yaml +++ b/clusters/home/infra/cert-manager/certificate-issuers.yaml @@ -1,14 +1,14 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: cert-manager-issuers + name: cert-manager-certificate-issuers namespace: flux-system spec: interval: 10m sourceRef: kind: GitRepository name: flux-system - path: ./clusters/base/infra-apps/cert-manager-issuers + path: ./clusters/base/infra/cert-manager/certificate-issuers prune: true wait: true dependsOn: diff --git a/clusters/home/infra/kustomization.yaml b/clusters/home/infra/kustomization.yaml index 89ed771..0424f58 100644 --- a/clusters/home/infra/kustomization.yaml +++ b/clusters/home/infra/kustomization.yaml @@ -1,4 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - storage-class-longhorn-no-retain.yaml + - longhorn/longhorn-system.yaml + - longhorn/storage-classes.yaml + - cert-manager/certificate-issuers.yaml diff --git a/clusters/home/infra/storage-class-longhorn-no-retain.yaml b/clusters/home/infra/longhorn/longhorn-system.yaml similarity index 71% rename from clusters/home/infra/storage-class-longhorn-no-retain.yaml rename to clusters/home/infra/longhorn/longhorn-system.yaml index 1a0a9b4..1891992 100644 --- a/clusters/home/infra/storage-class-longhorn-no-retain.yaml +++ b/clusters/home/infra/longhorn/longhorn-system.yaml @@ -1,13 +1,13 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: local-path + name: longhorn-system namespace: flux-system spec: interval: 10m sourceRef: kind: GitRepository name: flux-system - path: ./clusters/base/infra/storage-class-longhorn-no-retain + path: ./clusters/base/infra/longhorn/longhorn-system prune: true wait: true diff --git a/clusters/home/infra-apps.yaml b/clusters/home/infra/longhorn/storage-classes.yaml similarity index 57% rename from clusters/home/infra-apps.yaml rename to clusters/home/infra/longhorn/storage-classes.yaml index 60d89e5..24648ac 100644 --- a/clusters/home/infra-apps.yaml +++ b/clusters/home/infra/longhorn/storage-classes.yaml @@ -1,20 +1,15 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: infra-apps + name: longhorn-storage-classes namespace: flux-system spec: interval: 10m sourceRef: kind: GitRepository name: flux-system - path: ./clusters/home/infra-apps + path: ./clusters/base/infra/longhorn-storage-classes prune: true wait: true dependsOn: - - name: namespaces - - name: infra - decryption: - provider: sops - secretRef: - name: sops-age \ No newline at end of file + - name: longhorn-system diff --git a/clusters/home/kustomization.yaml b/clusters/home/kustomization.yaml index 7feb2d8..138460e 100644 --- a/clusters/home/kustomization.yaml +++ b/clusters/home/kustomization.yaml @@ -4,6 +4,4 @@ resources: - flux-system - namespaces.yaml - infra.yaml - # - infra-nodes.yaml - - infra-apps.yaml - apps.yaml diff --git a/clusters/home/namespaces/kustomization.yaml b/clusters/home/namespaces/kustomization.yaml index 628ebdf..848e088 100644 --- a/clusters/home/namespaces/kustomization.yaml +++ b/clusters/home/namespaces/kustomization.yaml @@ -4,3 +4,4 @@ resources: - ../../base/namespaces/vaultwarden.yaml - ../../base/namespaces/zigbee2mqtt.yaml - ../../base/namespaces/pim.yaml + - ../../base/namespaces/longhorn-system.yaml