Terraform IaC & Kubernetes
Create a K3d (local) Kubernetes cluster
Local/Cloud provisioning tool for building GitOps Kubernetes platforms
-
1. Git provider: GitHub, GitLab
-
2. Automate Infrastructure as Code: Terraform, Pulumi, CDK
-
3. GitOps Driver: Argo workflow, OpenGitOps, Flux, GitLab
-
4. Secrets Manager: Hashicorp Vault
-
5. Artifact Repository: DockerHub, Github
-
6. Continuous Integration Pipeline: Argo Workflows, GitHub Actions Runner Controller, GitLab Runner
-
7. Authentication and Authorization: principle of least privilege
-
8. Observability: Prometheus for metrics, Grafana for dashboarding, Jaeger for tracing and application performance monitoring
-
9. Local: Minikube, K3D
- 🚀 Reproducible Local Development with DevContainers: VSCode, K8s, TF, Python/R
References:
- https://github.com/vilaca/awesome-k8s-tools/blob/main/README.md
- https://collabnix.github.io/kubetools/
Local vs Cloud
Here's the provided content rewritten in a Markdown table format:
Number | Local | AWS Cloud |
---|---|---|
1 | Your Laptop | VPC |
2 | K3d cluster | EKS cluster |
3 | Minio localhost storage for state and artifacts | S3 |
4 | GitHub container storage | ECR |
5 | Helm chart storage in chartmuseum backed by Minio | S3 |
6 | Minio s3 storage | Vault's dynamodb backend |
7 | Ngrok is automatically added to your localhost and started so that your new GitOps repo can webhook to your local cluster's Atlantis for automatic terraform plans and applies that run from within your local cluster | |
8 | There is a localhost variation of our argo workflow templates being used that accommodate the local environment changes to continuous integration |
This table outlines the main differences and similarities between cloud and local platforms, focusing on specific components and their local counterparts.