apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: openproject # <--- Name der App in ArgoCD UI namespace: argocd annotations: argocd.argoproj.io/sync-wave: "5" spec: project: default source: repoURL: https://git.cloud-infra.prod.openmailserver.de/stabify/gitops.git targetRevision: HEAD path: apps/openproject # <--- WICHTIG: Hier muss dein Wrapper-Chart liegen destination: server: https://kubernetes.default.svc namespace: openproject # <--- WICHTIG: Der Namespace, in den installiert wird syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true # Erstellt den Namespace 'openproject' automatisch ignoreDifferences: # Das hast du gut drin! Behalte es bei. # Da OpenProject PVCs (Speicher) nutzt, verhindert das, dass ArgoCD # ständig "Out of Sync" schreit, wenn K3s/Longhorn kleine Metadaten am Speicher ändert. - group: "" kind: PersistentVolumeClaim jqPathExpressions: - .metadata.annotations."pv.kubernetes.io/bind-completed" - .metadata.annotations."pv.kubernetes.io/bound-by-controller" - .metadata.annotations."volume.beta.kubernetes.io/storage-provisioner" - .metadata.annotations."volume.kubernetes.io/storage-provisioner" - .metadata.uid - .metadata.resourceVersion - .status - group: apps kind: Deployment name: openproject-hocuspocus jsonPointers: # Ignoriert Ressourcen-Limits (oft der Grund für Sync-Probleme bei leeren Values) - /spec/template/spec/containers/0/resources # Ignoriert Port-Protokolle, falls K8s "TCP" hinzufügt - /spec/template/spec/containers/0/ports