Skip to content

Commit 88364ab

Browse files
committed
Update README.md
1 parent 7473d32 commit 88364ab

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

README.md

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@
22

33
# 🚀 Terraform Kubernetes — Starter Kit for Docker Desktop
44

5+
This starter kit is designed for local Kubernetes experimentation using Terraform. It provides a preconfigured setup with certificate management, ingress routing, and load balancing, making it easy to test, learn, and prototype cloud-native deployments.
6+
57
![alt text](image-1.png)
68

9+
## 👨‍💻 Who is it for?
10+
- DevOps Engineers & SREs who want a sandbox for testing infrastructure automation.
11+
- Developers exploring Kubernetes deployments without cloud costs.
12+
- Teams learning Terraform and Kubernetes best practices in a safe, local environment.
13+
714
## 📂 Project Structure
8-
This Terraform project is designed to deploy and manage a Kubernetes cluster with essential services such as MetalLB, Cert-Manager, Ingress-Nginx, and Echo Server. The structure follows best practices for modularity and maintainability.
915

1016
### **Environments**
1117
- `envs/local` - Local Environment. You can use Docker Desktop for local usage.
@@ -36,11 +42,15 @@ Each service is managed as a separate module for better reusability and organiza
3642
### **Requirements**
3743
For local usage, for example, in Docker Desktop you might want to use selfsigned certificates. To do that process easy just install the tool `mkcert`.
3844
```sh
45+
# https://github.com/FiloSottile/mkcert?tab=readme-ov-file#installation
3946
brew install mkcert
4047
mkcert -install
4148
```
4249

4350
## 🛠️ Setup and Deployment
51+
52+
The best way is fork the repo. But it's up to you.
53+
4454
1. **Set selfsigned CA certificate and key**
4555
For local usage you have set some TF_VAR
4656
```sh
@@ -50,15 +60,18 @@ mkcert -install
5060

5161
2. **Customizing Variables:**
5262

53-
You can override default variables by creating a `envs/local/terraform.tfvars` file or passing them via CLI:
63+
You can override default locals by creating a `envs/local/locals.tf` file:
5464
```hcl
55-
kube_config_path = "~/.kube/config"
56-
kube_context = "docker-desktop"
57-
echo_name = "echo"
58-
echo_namespace = "demo"
59-
echo_replicas = 3
60-
metallb_ip_range = ["127.0.0.1-127.0.0.1"]
61-
cluster_issuer_production_acme_email = "my-issuer-email@gmail.com"
65+
locals {
66+
kube_config_path = "~/.kube/config"
67+
kube_context = "docker-desktop"
68+
ingress_class_name = "nginx"
69+
cluster_issuer_selfsigned = "selfsigned"
70+
cluster_issuer_production = "production"
71+
cluster_issuer_production_acme_email = "admin@example.com"
72+
root_domain = "127.0.0.1.nip.io"
73+
metallb_ip_range = ["127.0.0.1-127.0.0.1"]
74+
}
6275
```
6376

6477
3. **Initialize Terraform:**

0 commit comments

Comments
 (0)