feat: add ArgoCD bootstrap with ApplicationSet pattern

- Add root ApplicationSet using Git Directory Generator
- Configure AppProjects for infrastructure and apps separation
- Add cert-manager with Let's Encrypt ClusterIssuers (staging/prod)
- Add SOPS configuration for age-encrypted secrets
- Add bootstrap documentation (docs/BOOTSTRAP.md)
- Scaffold infrastructure dirs (networking, storage, monitoring)
- Update README with quick start and architecture

GitOps pattern: directories auto-discovered by ArgoCD ApplicationSets
Reference: CNCF App-of-Apps best practices 2025
This commit is contained in:
Greg Hendrickson
2026-02-02 18:02:32 +00:00
parent 1e402ff027
commit 124a29a0a9
16 changed files with 503 additions and 13 deletions

View File

@@ -0,0 +1,48 @@
# infrastructure/cert-manager/kustomization.yaml
# Cert-Manager with Let's Encrypt ClusterIssuers
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: cert-manager
resources:
- namespace.yaml
- clusterissuers.yaml
helmCharts:
- name: cert-manager
repo: https://charts.jetstack.io
version: v1.14.4
releaseName: cert-manager
namespace: cert-manager
valuesInline:
installCRDs: true
replicaCount: 1
# Pod Security Standards compliance
podSecurityPolicy:
enabled: false
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
webhook:
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
cainjector:
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
# Prometheus ServiceMonitor
prometheus:
enabled: true
servicemonitor:
enabled: true