Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitOps Platform

A self-contained GitOps example for deploying a small API to Kubernetes with Helm, Argo CD and Terraform-managed Kind.

Workflow

  1. GitHub Actions runs application tests and Helm validation.
  2. The workflow builds and publishes the immutable commit image to GHCR.
  3. Argo CD watches the Helm source and reconciles the desired state.
  4. Kubernetes performs rolling updates and horizontal autoscaling.

Local lab

terraform -chdir=terraform init
terraform -chdir=terraform apply
helm lint helm/demo-api
helm template demo-api helm/demo-api
kubectl apply -f argocd/application.yaml

Replace every OWNER placeholder with your GitHub username or organization. In a real repository, use an image updater or a separate environment repository to commit the tested image digest instead of deploying latest.

Portfolio highlights

GitOps reconciliation, Helm templating, Argo CD automated sync/self-heal, Terraform infrastructure, rolling updates, HPA, security contexts and CI validation.

Architecture

Terraform (Kind) -> Argo CD (Git source of truth) -> Helm chart -> Rolling update + HPA

Key files

  • terraform/main.tf — provisions the Kind-managed cluster and network.
  • helm/demo-api/ — chart with Deployment, Service, Ingress, HPA and securityContext.
  • argocd/application.yaml — Argo CD app pointing at the Helm source.

What I learned

GitOps works only if Git is the single source of truth and drift is impossible: Argo CD's self-heal continuously reconciles back to the committed manifests, so a manually changed pod is reverted. Pairing that with :<sha> image tags means every applied revision is reproducible and auditable, and an Ingress + HPA in the same chart keeps the app usable and elastic without extra repos.

Commands

terraform -chdir=terraform init
terraform -chdir=terraform apply
helm lint helm/demo-api
helm template demo-api helm/demo-api
kubectl apply -f argocd/application.yaml
# watch reconciliation:
kubectl get argocd app -w

About

Helm, Argo CD and Terraform GitOps platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages