KubeShip is a real-world GitOps platform that automates the deployment and management of containerized applications using:
- Amazon EKS for Kubernetes orchestration
- ArgoCD for GitOps-based continuous delivery
- Terraform for infrastructure as code
- Helm for Kubernetes packaging
- GitHub Actions for CI pipelines
- React + FastAPI for microservices
- PostgreSQL + Redis for backend storage
This project shows how modern teams deploy applications at scale with automation and best DevOps practices.
Because deploying microservices manually doesn’t scale. You need:
- Declarative infrastructure (Terraform)
- Automated provisioning (EKS)
- GitOps deployment model (ArgoCD)
- CI/CD pipelines (GitHub Actions)
- Monitoring and scalability
KubeShip combines all of these in one integrated stack.
| Layer | Tool |
|---|---|
| Infra Provision | Terraform |
| Cluster | Amazon EKS |
| GitOps CD | ArgoCD |
| Helm Packaging | Helm |
| CI/CD | GitHub Actions |
| Container Registry | Amazon ECR |
| Microservices | FastAPI, React, PostgreSQL |
| Monitoring | Prometheus + Grafana |
┌──────────────────────────────┐
│ GitHub Repo (IaC + App) │
└────────────┬─────────────────┘
│ Push
┌──────────▼──────────┐
│ GitHub Actions │────────────┐
└──────────┬──────────┘ │
│ Image Build/Push │
┌──────────▼──────────┐ │
│ Amazon ECR │ │
└─────────────────────┘ │
▼
┌────────────────────────┐
│ Amazon EKS Cluster │
│ (Provisioned via TF) │
└──────────┬─────────────┘
│
┌─────────▼─────────┐
│ ArgoCD │
│ (GitOps CD Tool) │
└──────┬────────────┘
│
┌───────────▼────────────┐
│ Helm Deployments │
│ (Frontend, API, Redis) │
└─────────────────────────┘
kubeship/
├── terraform/ # VPC + EKS via Terraform
├── microservices/ # React + FastAPI + DB
│ ├── api-gateway/
│ ├── auth-service/
│ └── frontend/
├── helm-charts/ # Helm charts per service
├── manifests/ # ArgoCD apps and projects
└── .github/workflows/ # CI build and push pipelines
Provision:
- VPC with public and private subnets
- NAT Gateway for outbound traffic
- Amazon EKS cluster
- IAM roles and node groups
Modules used:
terraform-aws-modules/vpc/awsterraform-aws-modules/eks/aws
Command:
terraform init
terraform applyArgoCD tracks:
- Git repo for Helm chart changes
- Helm charts from
helm-charts/ - Syncs them to EKS cluster
To access ArgoCD:
kubectl port-forward svc/argocd-server -n argocd 8080:443Open: https://localhost:8080
- Builds Docker images
- Pushes to ECR
- ArgoCD picks up and syncs latest deployment
CI defined in: .github/workflows/deploy.yaml
Post-deployment:
- Validate apps in ArgoCD UI
kubectl get pods -Afor health checks- Test endpoints using ALB DNS
Monitoring with Prometheus + Grafana (optional):
helm install monitoring prometheus-community/kube-prometheus-stack -n monitoring --create-namespace| Concern | KubeShip Solution |
|---|---|
| Scalable Deployments | GitOps + ArgoCD |
| CI/CD | GitHub Actions + ECR |
| Infra as Code | Terraform |
| Secrets + Networking | EKS best practices |
| Observability | Prometheus + Grafana |
- Add custom domain with cert-manager + Route 53
- Use Sealed Secrets or External Secrets
- Setup staging and prod ArgoCD environments
- Enable autoscaling (HPA)
KubeShip lets you:
✅ Learn GitOps & EKS
✅ Use Terraform professionally
✅ Automate deployments
✅ Build full-stack apps in Kubernetes
Built with ❤️ by Celestine — GitHub