📄 For in-depth documentation, click here
- Go (Golang) – Application language
- Docker – Containerization
- Docker Hub – Image registry
- Kubernetes (EKS) – Container orchestration
- kubectl & eksctl – Cluster management
- Helm – Kubernetes package manager (templating)
- GitHub & Git – Source control
- GitHub Actions – Continuous Integration (CI)
- ArgoCD – GitOps-based Continuous Delivery (CD)
- AWS EC2, VPC, Load Balancer, CloudFormation – Cloud infrastructure
- A simple Go application that renders an "About Me" page.
- Multi-stage
Dockerfileused. - Final image uses distroless base.
- Tagged and pushed to Docker Hub.
- Created a cluster with
eksctl. - Wrote Kubernetes manifests:
deployment.yamlservice.yamlingress.yaml
- Applied manifests via
kubectl.
- Deployed NGINX ingress controller.
- Configured ingress resource for load balancing.
- Used LoadBalancer IP mapped to domain via
/etc/hosts.
- Used
helm createto scaffold chart. - Replaced hardcoded values with templated variables in:
values.yamldeployment.yaml, etc.
- Supports multiple environments (e.g., dev, prod).
- CI Workflow stages:
- Run unit tests
- Static code analysis
- Build and tag Docker image (with commit ID)
- Push image to Docker Hub
- Update Helm
values.yamlwith new tag - Commit updated chart back to GitHub
- Installed ArgoCD in its own namespace.
- Configured to monitor Helm chart repo.
- Syncs and deploys the latest image on change.
- Enabled auto-sync with self-healing.
✅ This end-to-end workflow automates development, testing, deployment, and delivery using modern DevOps tools and GitOps principles.