Files
duynguyen ed040bc606 chore: manual sync for leaf apps, keep root app-of-apps automated
Convention: only the root app-of-apps (platform) auto-syncs so it picks up
new/changed child Application definitions from Git. Every leaf service app
(vault, headlamp, harbor, jenkins, sonarqube, external-secrets,
kube-prometheus-stack) now requires an explicit manual Sync — matches
cluster-bootstrap and homelab-services' existing ignis convention.
2026-09-02 16:22:21 +07:00

45 lines
1.7 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kube-prometheus-stack
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
project: default
sources:
- repoURL: https://prometheus-community.github.io/helm-charts
chart: kube-prometheus-stack
targetRevision: "65.0.0" # TODO: verify latest via `helm search repo prometheus-community/kube-prometheus-stack --versions`
helm:
valueFiles:
- $values/platform/apps/kube-prometheus-stack/values.yaml
- repoURL: https://gitea.fireflylab.cc/duynguyen/cluster-platform.git
targetRevision: main
ref: values
- repoURL: https://gitea.fireflylab.cc/duynguyen/cluster-platform.git
targetRevision: main
path: platform/apps/kube-prometheus-stack
directory:
exclude: "{application.yaml,values.yaml}"
destination:
server: https://kubernetes.default.svc
namespace: monitoring
# Gateway API's admission webhook server-side-defaults backendRefs[].group
# and .weight on the grafana HTTPRoute — fields our manifest omits — so
# ArgoCD sees permanent drift vs Git even though the object matches intent
# (route itself is Accepted/ResolvedRefs=True, Grafana reachable). Ignore
# the defaulted fields instead of chasing a diff that will never close.
ignoreDifferences:
- group: gateway.networking.k8s.io
kind: HTTPRoute
jsonPointers:
- /spec/rules/0/backendRefs/0/group
- /spec/rules/0/backendRefs/0/weight
# Leaf app — manual sync only; root `platform` app-of-apps stays automated.
syncPolicy:
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
- SkipDryRunOnMissingResource=true