Common operations¶
Everyday tasks for working in the GitOps repos. Commands assume you're at the root of one
of the repos with kubectl/helm configured against the cluster.
Validate before you commit¶
Every GitOps repo ships a validate.sh that discovers all Chart.yaml files and lints each:
./validate.sh # yamllint + helm lint, all charts
./validate.sh --kubeconform # + manifest schema validation
./validate.sh --kubelinter # + kube-linter checks
./validate.sh path/to/Chart.yaml # a single chart
Render a chart locally¶
helm template <release> applications/<app>/ -f applications/<app>/values.yaml
# the whole app-of-apps for a repo:
helm template <prefix>-app-of-apps clusters/<cluster>/applications/ -f values/global.yaml
Add an application¶
- Create
applications/<new-app>/— a Helm chart. - Add
clusters/<cluster>/applications/templates/<new-app>.yaml— copy an existing Application CR and adjust. - (Optional) cluster overrides in
clusters/<cluster>/values/<new-app>.yaml. - If it pins a container image tag that Renovate should track, add a matching
customManagerentry.
Commit — the layer's ArgoCD picks it up on its next sync.
Trigger a sync now¶
ArgoCD auto-syncs on push. To force it immediately, patch the Application's operation:
kubectl patch application <name> -n <argocd-namespace> --type merge \
-p '{"operation":{"initiatedBy":{"username":"you"},"sync":{"revision":"HEAD"}}}'
<argocd-namespace> is platform-argocd, addons-argocd, or opendesk-argocd.
See what's out of sync¶
Re-run a completed Job¶
A plain (non-hook) ArgoCD-managed Job won't re-run by itself — its spec is immutable and
already Complete, so a resync is a no-op. Re-run it in three steps:
- Delete the
Jobobject. - Terminate any in-progress sync on its Application.
- Trigger a sync (command above) — ArgoCD recreates the Job from the chart.
See also: Architecture · Sealed Secrets · Renovate.