A streamlined, automated setup for a local Kubernetes development environment using KIND (Kubernetes IN Docker), complete with essential tools and services for modern cloud-native development.
- Automated Cluster Setup using Terraform and KIND
- Pre-configured Tools & Services:
- ArgoCD for GitOps
- NGINX Ingress Controller
- Prometheus & Grafana for monitoring
- Sample Guestbook application
- Easy Setup with automated scripts
- Development Ready with port forwarding configured
The following tools are required:
- Docker
- KIND (Kubernetes IN Docker)
- Terraform
- kubectl
- Helm
You can install all prerequisites using our setup script:
sudo ./scripts/install_prerequisites.sh- Clone the repository:
git clone https://github.com/azbndr/k8s-dev-environment-setup.git
cd k8s-dev-environment-setup- Run the setup script:
./scripts/setup.sh- Access the services:
- ArgoCD UI: http://localhost:8080 (user: admin)
- Grafana: http://localhost:3000 (user: admin)
- Guestbook: http://localhost:8081
.
├── k8s/ # Kubernetes manifests
│ ├── apps/ # Application manifests
│ ├── argocd/ # ArgoCD configuration
│ ├── ingress/ # Ingress controller setup
│ └── monitoring/ # Monitoring stack configuration
├── scripts/ # Setup and utility scripts
└── terraform/ # Infrastructure as Code
- KIND Cluster: Local Kubernetes cluster running in Docker
- ArgoCD: GitOps continuous delivery tool
- NGINX Ingress: Kubernetes ingress controller
- Prometheus & Grafana: Monitoring and visualization
- Guestbook App: Sample application for testing
Run the automated test script to verify your environment:
./scripts/test-env.shThe test script checks:
- Kubernetes cluster health
- Required namespaces (argocd, ingress-nginx, monitoring, guestbook)
- Core services status
- ArgoCD Server
- NGINX Ingress Controller
- Grafana
- Prometheus
- ArgoCD and Guestbook application deployment
- Port forwarding functionality
If all tests pass, you'll see a summary and quick access commands for each service.
To clean up your development environment:
kind delete cluster --name dev-clusterTo tear down the environment completely:
cd terraform
terraform destroy -auto-approve- The cluster is configured with one control plane and one worker node
- Port forwarding is automatically set up for all services
- Default credentials are provided for initial access
- Use
pkill -f 'kubectl port-forward'to stop port forwarding
This project is licensed under the MIT License - see the LICENSE file for details.