diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml index 879e5cd..14adeae 100644 --- a/kubernetes/kustomization.yaml +++ b/kubernetes/kustomization.yaml @@ -1,5 +1,7 @@ # Root Kustomization for Flux # Components managed by separate Flux Kustomizations (CRD dependency ordering): +# - longhorn: managed by Flux Kustomization (CRDs must be installed first) +# - longhorn-jobs: managed by Flux Kustomization (RecurringJob CRDs need longhorn) # - cert-manager: managed by Flux Kustomization (CRDs must be installed first) # - cert-manager-webhook-ovh: managed by Flux Kustomization (depends on cert-manager) # - cert-manager-issuer: managed by Flux Kustomization (depends on cert-manager + webhook) @@ -12,7 +14,6 @@ resources: - system/cilium # cilium IP pool is managed here - system/coredns - system/csi-driver-nfs - - system/longhorn - system/external-dns - system/flux # Infrastructure (backbone services apps depend on) diff --git a/kubernetes/system/flux/kustomization.yaml b/kubernetes/system/flux/kustomization.yaml index 6d6fe27..4c01c66 100644 --- a/kubernetes/system/flux/kustomization.yaml +++ b/kubernetes/system/flux/kustomization.yaml @@ -9,3 +9,5 @@ resources: - cert-manager-issuer.yaml - caddy-certificates.yaml - stalwart-certificates.yaml + - longhorn.yaml + - longhorn-jobs.yaml diff --git a/kubernetes/system/flux/longhorn-jobs.yaml b/kubernetes/system/flux/longhorn-jobs.yaml new file mode 100644 index 0000000..3ee4748 --- /dev/null +++ b/kubernetes/system/flux/longhorn-jobs.yaml @@ -0,0 +1,20 @@ +# Flux Kustomization for Longhorn recurring jobs +# Depends on Longhorn being fully operational (CRDs installed) +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: longhorn-jobs + namespace: flux-system +spec: + interval: 10m + prune: true + sourceRef: + kind: GitRepository + name: homeprod + path: ./kubernetes/system/longhorn-jobs + dependsOn: + - name: longhorn + decryption: + provider: sops + secretRef: + name: flux-sops diff --git a/kubernetes/system/flux/longhorn.yaml b/kubernetes/system/flux/longhorn.yaml new file mode 100644 index 0000000..cb05827 --- /dev/null +++ b/kubernetes/system/flux/longhorn.yaml @@ -0,0 +1,24 @@ +# Flux Kustomization for Longhorn +# Separate from main homeprod because Longhorn CRDs must be installed +# before RecurringJob resources can be applied +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: longhorn + namespace: flux-system +spec: + interval: 10m + prune: true + sourceRef: + kind: GitRepository + name: homeprod + path: ./kubernetes/system/longhorn + decryption: + provider: sops + secretRef: + name: flux-sops + healthChecks: + - apiVersion: apps/v1 + kind: Deployment + name: longhorn-manager + namespace: longhorn-system diff --git a/kubernetes/system/longhorn-jobs/kustomization.yaml b/kubernetes/system/longhorn-jobs/kustomization.yaml new file mode 100644 index 0000000..49d96ce --- /dev/null +++ b/kubernetes/system/longhorn-jobs/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - recurring-jobs.yaml diff --git a/kubernetes/system/longhorn/recurring-jobs.yaml b/kubernetes/system/longhorn-jobs/recurring-jobs.yaml similarity index 97% rename from kubernetes/system/longhorn/recurring-jobs.yaml rename to kubernetes/system/longhorn-jobs/recurring-jobs.yaml index eb8e41f..456c360 100644 --- a/kubernetes/system/longhorn/recurring-jobs.yaml +++ b/kubernetes/system/longhorn-jobs/recurring-jobs.yaml @@ -31,4 +31,4 @@ spec: labels: type: backup groups: - - default \ No newline at end of file + - default diff --git a/kubernetes/system/longhorn/kustomization.yaml b/kubernetes/system/longhorn/kustomization.yaml index 586f4fe..0512a3d 100644 --- a/kubernetes/system/longhorn/kustomization.yaml +++ b/kubernetes/system/longhorn/kustomization.yaml @@ -5,7 +5,6 @@ resources: - namespace.yaml - repository.yaml - release.yaml - - recurring-jobs.yaml secretGenerator: - name: longhorn-values files: