argocd was originally helm-installed by hand before ArgoCD existed to
manage it; client-side 3-way merge apply can't prune fields it never
saw in a last-applied-configuration, so a later chart bump left a stale
args on repo-server's copyutil init container (old shell-string command
lingering alongside the new plain cp command) -> cp got 4 args instead
of 3 -> 'No such file or directory' -> CrashLoopBackOff -> Degraded.
Same bug class as envoy-gateway (020b248). ServerSideApply=true tracks
field ownership properly and prunes the stray field on next sync.
32 lines
1.0 KiB
YAML
32 lines
1.0 KiB
YAML
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
metadata:
|
|
name: argocd
|
|
namespace: argocd
|
|
annotations:
|
|
argocd.argoproj.io/sync-wave: "-1"
|
|
spec:
|
|
project: default
|
|
sources:
|
|
- repoURL: https://argoproj.github.io/argo-helm
|
|
chart: argo-cd
|
|
targetRevision: "7.8.26"
|
|
helm:
|
|
valueFiles:
|
|
- $values/manifests/argocd/values.yaml
|
|
- repoURL: https://gitea.fireflylab.cc/duynguyen/cluster-bootstrap.git
|
|
targetRevision: main
|
|
ref: values
|
|
destination:
|
|
server: https://kubernetes.default.svc
|
|
namespace: argocd
|
|
# ArgoCD was originally `helm install`ed by hand before ArgoCD existed to
|
|
# manage it (see README Phase 3), so client-side 3-way merge apply can't
|
|
# see/prune fields from that pre-existing object — left a stale `args` on
|
|
# argocd-repo-server's copyutil init container after a later chart bump,
|
|
# crashlooping it (same bug class as envoy-gateway, see 020b248).
|
|
# ServerSideApply properly tracks field ownership and prunes it.
|
|
syncPolicy:
|
|
syncOptions:
|
|
- ServerSideApply=true
|