Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k8s

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.


Project Structure

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

Getting Started

Option A: Automated (Terraform + Kind)

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 apply

See src/terraform/README.md for the full walkthrough, both modules, configuration reference, and learning exercises.

Option B: Manual (kubectl + Kind)

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:8080

See src/apps/nginx/README.md for the traffic flow explanation.

AWS: Kubernetes The Hard Way

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 apply

See src/aws/kubernetes-the-hard-way/readme.md for outputs, SSH setup, and the full lab sequence.


Research Labs

After you have a running cluster (via Option A or B above), work through the labs:

RBAC

Three progressive paths covering ServiceAccount auth, X.509 certificate auth, and cluster-wide permissions.

See src/research/rbac-test/README.md.

Tekton Pipelines

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.

Argo CD (GitOps)

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.


Prerequisites

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)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages