A Kubernetes learning workspace: local clusters with Kind (Kubernetes in Docker), optional AWS labs that build a cluster from scratch (Kubernetes The Hard Way), Terraform for automated Kind provisioning, sample apps, and hands-on research labs.
src/
├── terraform/ Cluster provisioning (Terraform + Kind provider)
│ ├── cluster/ Kind cluster (infrastructure)
│ ├── app_demo/ Demo app + ingress (workload)
│ ├── modules/kind-cluster/ Reusable Kind cluster module
│ └── README.md Comprehensive walkthrough with learning exercises
│
├── apps/ Sample application deployments
│ └── nginx/ Manual nginx deployment via kubectl (NodePort pattern)
│ ├── cluster.yaml Kind cluster config (standalone, not Terraform)
│ ├── nginx.yaml Service + Deployment manifests
│ └── README.md Traffic flow walkthrough
│
├── kind-cluster/ Standalone Kind config (see README there)
│
├── aws/ AWS-only learning (not Kind)
│ └── kubernetes-the-hard-way/
│ ├── main.tf VPC, jumpbox, control plane + worker EC2 instances
│ ├── readme.md Terraform usage + KTHW lab notes (upstream docs on jumpbox)
│ └── …
│
└── research/ Hands-on learning labs (assume a running cluster)
├── rbac-test/ RBAC experiments (3 progressive paths)
│ ├── 01-machine-path/ ServiceAccount → Role → RoleBinding
│ ├── 02-human-path/ X.509 certs → Group → RoleBinding
│ ├── 03-global-path/ ClusterRole → ClusterRoleBinding
│ └── README.md Progressive walkthrough
│
├── tekton-pipelines/ Tekton CI/CD pipeline lab
│ ├── 01-12 YAML files Progressive labs from hello-world to build pipelines
│ └── README.md Full lab guide with production pipeline analysis
│
└── argocd/ Argo CD GitOps delivery lab
├── 01-09 YAML files Progressive labs from first app to projects + RBAC
├── apps/ Sample app manifests (guestbook, kustomize overlays)
└── README.md Full lab guide covering 7 progressive labs
Terraform provisions a Kind cluster (cluster/). Optionally deploy the demo app and ingress (app_demo/).
cd src/terraform/cluster
terraform init && terraform apply
kubectl get nodes -o wide
# Optional: demo NGINX + ingress → http://localhost
cd ../app_demo && terraform init && terraform applySee src/terraform/README.md for the full walkthrough, both modules, configuration reference, and learning exercises.
A lightweight approach using raw YAML manifests. Good for understanding exactly what each Kubernetes resource does.
cd src/apps/nginx
kind create cluster --config cluster.yaml
kubectl apply -f nginx.yaml
curl http://localhost:8080See src/apps/nginx/README.md for the traffic flow explanation.
A separate track: Terraform on AWS only creates networking and VMs (jumpbox, control plane, workers). You complete Kubernetes The Hard Way on the jumpbox—no Kind, no cluster until you build it.
cd src/aws/kubernetes-the-hard-way
terraform init
terraform applySee src/aws/kubernetes-the-hard-way/readme.md for outputs, SSH setup, and the full lab sequence.
After you have a running cluster (via Option A or B above), work through the labs:
Three progressive paths covering ServiceAccount auth, X.509 certificate auth, and cluster-wide permissions.
See src/research/rbac-test/README.md.
Six progressive labs that take you from a hello-world Task to a multi-stage cross-compilation build pipeline, then decode a production pipeline.
See src/research/tekton-pipelines/README.md.
Seven progressive labs covering declarative application deployment, auto-sync, self-healing, Helm charts, Kustomize overlays, App of Apps, and project RBAC.
See src/research/argocd/README.md.
| Tool | Installation |
|---|---|
| Docker | Install guide (Kind track) |
| Kind | brew install kind (Kind track) |
| kubectl | brew install kubectl |
| Terraform | brew install terraform (Kind cluster/ / app_demo/ and AWS KTHW) |
| AWS CLI + account | Install; configure a profile for AWS KTHW |
| Helm | brew install helm (optional) |
| tkn | brew install tektoncd-cli (for Tekton labs) |
| argocd | brew install argocd (for Argo CD labs) |