In principle we seperate out items into 3 types of components
- Cloud/On-Prem provider - This is all Terraform on equiv to setup the base infrastructure primitives to provide and k8s cluster - The terraform folder in the repo has an example
- Kustomize (Cluster bootstrap) - Kustomize install of Argocd for declaritive setup
- Environment add-ons - All the extras the Organization needs
A Foundation cluster comes with the following base components installed:
- ArgoCD: GitOps agent (installed with declarative setup)
- external-dns: Automatic DNS record management
- cert-manager: Automatic TLS certificate management
- EBS CSI Driver: Support persistent storage using AWS EBS volumes
- NGINX Ingress controller: NGINX Ingress controller paired with AWS NLB
- Reloader: automatically reload: Automatically reload deployments when secrets/configmaps change
Additionally the following optional components can be installed:
- Amazon Distribution for Open Telemetry (ADOT): Collect and export metrics with Open Telemetry
- Fluent Bit: Lightweight log collector and exporter for containerized solutions
- Loki: Open source: Log aggregator from Grafana Labs with S3 log persistence
- Cluster Autoscaler:: Cluster node scaling
- Goldilocks: Initial recommendations for setting resource requests and limits
- Tailscale: VPN access within the cluster