chore: scaffold cluster-platform repo (root app-of-apps for platform services)
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
.env
|
||||||
|
|
||||||
|
# OS/editor
|
||||||
|
.DS_Store
|
||||||
|
*.swp
|
||||||
|
CLAUDE.md
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# K8s Cluster Platform — Services
|
||||||
|
|
||||||
|
Bootstraps platform/application services (vault, external-secrets, harbor, jenkins,
|
||||||
|
sonarqube, etc.) onto the cluster using ArgoCD app-of-apps pattern.
|
||||||
|
|
||||||
|
Run this after `cluster-bootstrap` finishes (ArgoCD, MetalLB, Envoy Gateway, NFS
|
||||||
|
storage must already be up).
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
Git repo (cluster-platform)
|
||||||
|
└── ArgoCD watches platform/apps/ → syncs all Applications
|
||||||
|
|
||||||
|
platform-app.yaml ← root Application, applied once by hand (kubectl apply)
|
||||||
|
platform/apps/ ← ArgoCD watches this path; one Application CRD per service
|
||||||
|
manifests/ ← Helm values referenced by those Applications
|
||||||
|
```
|
||||||
|
|
||||||
|
## Bootstrap Sequence
|
||||||
|
|
||||||
|
**Apply the root platform Application**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f platform-app.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Everything else is reached by ArgoCD syncing `platform/apps/` from here.
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: platform
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitea.fireflylab.cc/duynguyen/cluster-platform.git
|
||||||
|
targetRevision: main
|
||||||
|
path: platform/apps
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
Reference in New Issue
Block a user