fix argocd install + add root bootstrap Application manifest

- remove server.httproute from argocd values.yaml: helm install failed
  since Gateway API CRDs (installed by envoy-gateway, wave 2) don't
  exist yet; HTTPRoute is already applied manually in Phase 6
- add bootstrap-app.yaml as the Git-committed root/seed Application,
  replacing ad-hoc UI creation (GitOps anti-pattern: apps not stored
  in Git can't be recreated)
This commit is contained in:
2026-07-14 17:50:06 +07:00
parent 1432e9e114
commit cffaa7449d
3 changed files with 25 additions and 19 deletions

View File

@@ -125,22 +125,15 @@ git push origin main
---
## Phase 4 — Create bootstrap app in ArgoCD UI
## Phase 4 — Apply the root bootstrap Application
In ArgoCD UI, create a new Application:
`bootstrap-app.yaml` (repo root) is the one seed manifest — it lives in Git, not created ad-hoc via UI/CLI. Per GitOps practice, every Application ArgoCD runs must be recreatable from Git; a UI-created app that's stored nowhere can't survive a rebuild. This is the only manifest ever applied by hand — everything downstream (including ArgoCD managing itself, wave -1) is reached by ArgoCD syncing `bootstrap/apps/` from here.
| Field | Value |
|-------|-------|
| Application Name | `bootstrap` |
| Project | `default` |
| Sync Policy | Automated (enable Prune + Self Heal) |
| Repository URL | `https://gitea.fireflylab.cc/duynguyen/cluster-bootstrap.git` |
| Revision | `main` |
| Path | `bootstrap/apps` |
| Cluster URL | `https://kubernetes.default.svc` |
| Namespace | `argocd` |
```bash
kubectl apply -f bootstrap-app.yaml
```
Click **Create**. ArgoCD syncs all child Applications in wave order automatically.
ArgoCD syncs all child Applications in wave order automatically, including self-managing itself via `bootstrap/apps/argocd.yaml` (wave -1).
Monitor progress:
@@ -273,6 +266,7 @@ All Applications should be `Synced` / `Healthy`.
```
cluster-bootstrap/
├── README.md
├── bootstrap-app.yaml # root seed Application — the only manifest applied by hand
├── bootstrap/
│ └── apps/ # ArgoCD Application CRDs
│ ├── argocd.yaml # wave -1 — self-managed ArgoCD

18
bootstrap-app.yaml Normal file
View File

@@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: bootstrap
namespace: argocd
spec:
project: default
source:
repoURL: https://gitea.fireflylab.cc/duynguyen/cluster-bootstrap.git
targetRevision: main
path: bootstrap/apps
destination:
server: https://kubernetes.default.svc
namespace: argocd
syncPolicy:
automated:
prune: true
selfHeal: true

View File

@@ -24,9 +24,3 @@ configs:
server:
replicas: 1
httproute:
enabled: true
parentRefs:
- name: envoy-gateway
namespace: gateway-system
sectionName: http