Example GitOps deployments using Flux.
Deployed Kubernetes cluster contains:
-
GitOps
- Flux CD continuous and progressive delivery solution for Kubernetes
-
Infrastructure
-
Linkerd service mesh
-
MetalLB bare-metal load balancer
-
Bitnami Sealed Secrets
-
Kyverno policy management and enforcement
-
-
Observability
-
Monitoring stack using Grafana and Prometheus
-
Linkerd Viz service mesh and Grafana dashboards
-
Log monitoring and alerting using Loki
-
-
Tools
-
LitmusChaos open source Chaos Engineering platform
-
Trivy-Operator Automated vulnerability scanning for Kubernetes workloads. image scanning and resource misconfiguration discovery
-
-
Applications
- Podinfo sample microservice application
Shell scripts are provided to create a Kubernetes cluster using Kind and populate it with infrastructure, tools and a sample application from a GitHub repo.
Run the installation script enter the following command:
./install.sh
The installation script will create and test a multi-node cluster running in Docker containers.
To force Flux to run reconcile the manifests held in the Git repository to the cluster run:
flux reconcile kustomization flux-system --with-source
To view Flux resources use:
flux get all
View the Flux Kustomization
dependency tree with:
flux tree kustomization flux-system --compact
Flux manifests are used to deploy and maintain cluster resources.
Manifests within the ./k8s/cluster/
folder are used to bootstrap the cluster.
The ./k8s/infrastructure/source/finalizers
folder contains a finalizers
Kustomization that is used to ensure all infrastructure resources are deployed before synchronizing application or tool manifests.