This project is a simple Go web application that I used to practice and implement a complete DevOps workflow — from writing the application, to containerizing it, deploying it on Kubernetes, and automating everything with CI/CD and GitOps.
The goal of this project wasn’t to build a complex product, but to understand how real-world DevOps pipelines come together when working with cloud resources, container orchestration, and automated deployments.
The application is packaged using a multi-stage Dockerfile, keeping the final image lean and production-friendly.
The app is deployed on Kubernetes using both:
- raw manifests (for understanding the basics)
- a Helm chart (for managing multiple environments cleanly)
A GitHub Actions workflow handles:
- building the Go binary
- running tests
- linting with golangci-lint
- building & pushing the Docker image to DockerHub
Every push to master automatically triggers the pipeline.
Argo CD watches this repository and automatically syncs deployments to the Kubernetes cluster whenever the Helm chart gets a new tag.
The application is exposed through an Ingress controller using an AWS Load Balancer.
Custom DNS routing can be added for cleaner access.
Languages & Frameworks
- Go (Golang)
DevOps / Cloud
- Docker & Multi-Stage Builds
- Kubernetes (EKS)
- Helm
- GitHub Actions
- Argo CD (GitOps CD)
- AWS Load Balancer + Route 53 (optional)
You can run this app locally with:
go run main.go-
Commit pushed → GitHub Actions builds, tests, and pushes the Docker image
-
The workflow updates the image tag inside the Helm chart
-
Argo CD detects the change and syncs it to the Kubernetes cluster
-
The app rolls out with the new version automatically
-
This replicates how modern GitOps pipelines work in production teams.