This repo serves as a starting point to explore and learn GitOps tooling in a local Kubernetes cluster.
GitOps is the automation of DevOps best practices for application management.
Key Properties:
- Git is the single source of truth
- System state is defined in a declarative manner
- CI/CD is responsible for building, testing, and deployment
- Commits are the trigger for changes to a target environment
- Changes to the environment can be monitored and provide feedback
- Flux
- ArgoCD
- Pros
- Supports Helm and Kustomize
- Native UI
- Multi-tenant support
- Cons
- Argo deployments are a bit more involved
- Pros
Local development leverages K3D to create a local Kubernetes cluster.
Kubectl and FluxCLI are used to bootstrap the cluster.
A hello world app will be deployed via Flux and ArgoCD. The built-in Traefik ingress controller is used to proxy the applications.
URL endpoints:
Run make create
to create the local Kubernetes cluster and bootstrap Flux and ArgoCD.
❯ make
help View help information
asdf-bootstrap Install all tools through asdf-vm
flux-bootstrap Install flux in k3d cluster
argo-bootstrap Install argo in k3d cluster
bootstrap Perform all bootstrapping required for local development
create Create local development environment
clean Destroy local development environment