33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
# 6.3 — Argo Application in the homelab-root GitOps repo (GREEN)
|
|||
|
|
|
||
|
|
Phase: 6 — Deploy and cutover
|
||
|
|
Stage: GREEN
|
||
|
|
Depends on: [6.2](6.2-kubernetes-manifests.md)
|
||
|
|
|
||
|
|
Verified live 2026-08-19: zero Argo Applications anywhere in the cluster source from
|
||
|
|
any Forgejo URL. `github.com/Riotpiaole/riotpiao.homelab.com` is authoritative — do
|
||
|
|
not introduce a second source of truth.
|
||
|
|
|
||
|
|
- [ ] An Argo Application for the gateway is committed under `k8s/argocd/apps/` in `github.com/Riotpiaole/riotpiao.homelab.com`
|
||
|
|
- [ ] `repoURL` is that GitHub repo. No Forgejo URL, no local path, no second remote
|
||
|
|
- [ ] It targets the `api` namespace, alongside the existing Kong deployment
|
||
|
|
- [ ] Its sync wave orders it so the gateway is healthy before anything that depends on it, and does not disturb Kong's existing wave-7 Application
|
||
|
|
- [ ] Automated sync with prune and selfHeal is enabled, so drift is corrected without a human
|
||
|
|
- [ ] The Application reaches `Synced` and `Healthy` and stays there across a resync
|
||
|
|
- [ ] Adding it changes nothing about live traffic — Kong still serves `api.riotpiao.com` after this lands
|
||
|
|
- [ ] The commit is pushed and Argo picks it up on its own. No `kubectl apply` of the Application itself (G7)
|
||
|
|
|
||
|
|
## Verify
|
||
|
|
|
||
|
|
```bash
|
||
|
|
kubectl -n argocd get app homelab-frontend \
|
||
|
|
-o jsonpath='{.spec.source.repoURL}{" "}{.status.sync.status}{" "}{.status.health.status}{"\n"}'
|
||
|
|
# expected: the GitHub repo URL, Synced, Healthy
|
||
|
|
|
||
|
|
kubectl -n argocd get app -o json | grep -ci forgejo
|
||
|
|
# expected: 0 — GitHub remains the only Application source
|
||
|
|
|
||
|
|
curl -s -o /dev/null -w '%{http_code}\n' https://api.riotpiao.com/v1/models
|
||
|
|
# expected: 200, still served by Kong — this task changed no live traffic
|
||
|
|
```
|