|
2 | 2 |
|
3 | 3 | Kustomize configurations for OpenShift cluster workloads. Uses ArgoCD sync waves and KSOPS for secret decryption. |
4 | 4 |
|
5 | | -## Structure |
6 | | - |
7 | | -``` |
8 | | -bootstrap/ # ArgoCD bootstrap and cluster configuration |
9 | | -├── console-branding/ # OpenShift console branding and banner removal |
10 | | -├── openshift-oauth/ # GitHub OAuth identity provider for OpenShift |
11 | | -├── ci-service-account # CI/CD service account for GitHub Actions |
12 | | -└── ci-token-sync-job # PostSync job to sync SA token to GitHub secrets |
13 | | -operators/ # Operator installations and CRDs |
14 | | -├── ansible/ # AWX Operator (OLM Subscription) |
15 | | -├── arc/ # GitHub Actions Runner Controller (Helm) |
16 | | -├── cert-manager/ # Let's Encrypt certs via DNS-01 (Cloudflare) |
17 | | -├── cloudflare/ # Cloudflare Tunnel Operator + ClusterTunnel |
18 | | -├── generator/ # Shared KSOPS generator config |
19 | | -├── grafana/ # Grafana Operator (OLM Subscription) |
20 | | -└── tor-controller/ # Tor hidden service operator |
21 | | -workloads/ # CRs and resources that depend on operator CRDs |
22 | | -├── apps/ # App-of-Apps orchestrator (ArgoCD Applications) |
23 | | -├── ansible/ # AWX instance + GitHub SSO + Tor + TunnelBinding |
24 | | -├── arc/ # DinD runners + image registry + pull-through cache |
25 | | -├── argocd-proxy/ # Tor hidden service + TunnelBinding for ArgoCD |
26 | | -├── grafana/ # Internal Grafana + public status Grafana + probes + TunnelBindings |
27 | | -├── makeitwork-proxy/ # Tor hidden service for makeitwork.cloud |
28 | | -├── uptime-kuma/ # Legacy uptime stack (status host migrated to Grafana) |
29 | | -└── warp/ # Cloudflare WARP connector for private network access |
30 | | -``` |
31 | | - |
32 | 5 | ## Sync Wave Flow |
33 | 6 |
|
34 | 7 | ``` |
35 | | -Wave 0: ArgoCD config (KSOPS patch, wait for repo-server) |
36 | | - │ ├── Console branding (custom logo, favicon, remove security banner) |
37 | | - │ ├── OpenShift OAuth (GitHub identity provider, cluster-admin for org members) |
38 | | - │ └── CI service account (ci-deployer with cluster-admin) |
39 | | - ▼ |
40 | | -Wave 1: gitops-operators Application → operators/ (CRDs installed) |
41 | | - │ └── wait-for-crds Job ensures CRDs are ready |
42 | | - ▼ |
43 | | -Wave 2: gitops-workloads Application → workloads/apps/ (App-of-Apps) |
44 | | - │ ├── Wave 0: argocd-proxy, makeitwork-proxy, uptime-kuma (no CRD deps) |
45 | | - │ └── Wave 1: ansible, arc, grafana (depend on operator CRDs) |
46 | | - ▼ |
47 | | -PostSync: ci-token-sync Job syncs ci-deployer token to GitHub Actions secrets |
| 8 | +Wave 0: Bootstrap and cluster baseline configuration |
| 9 | +Wave 1: Operator layer and CRD providers |
| 10 | +Wave 2: Workload layer that depends on installed operators |
| 11 | +PostSync: Operational follow-up automation |
48 | 12 | ``` |
49 | 13 |
|
50 | | -Operators must be installed before workloads to ensure CRDs exist. |
| 14 | +Waves are evaluated per ArgoCD Application. They provide ordering intent but do not create global ordering across all Applications. |
51 | 15 |
|
52 | 16 | ## Features |
53 | 17 |
|
|
0 commit comments