tasks | Install Docker Desktop | Run containers using `docker run` | Use port binding (`-p` flag) | Inspect containers with `docker ps`, `docker inspect` | View logs: `docker logs <name>` | Use volumes and environment variables: `-v`, `-e` | Learn `docker-compose` |
| Install Minikube | Start a local Kubernetes cluster: `minikube start` | Create deployments: `kubectl create deployment` | Expose services: `kubectl expose deployment` | Access services via: `minikube service <name> --url` | Use `kubectl get pods`, `kubectl get svc` |
| Understand Helm chart structure | Install Helm and configure it with Minikube | Install charts (e.g., NGINX Ingress, Redis) using Helm | Create and deploy your own Helm chart | Customize behavior via `values.yaml` and CLI overrides |
| Install Terraform CLI | Understand Terraform config (`.tf`) structure | Write a local Terraform file to create Kubernetes resources (using K8s provider) | Understand `terraform init`, `plan`, `apply`, `destroy` | Track infrastructure with remote state (optional) |
| Use Terraform to provision infrastructure: clusters, DNS, storage (local or cloud) | Use Terraform Helm provider to install Helm charts (e.g., NGINX, cert-manager) | Pass Helm values through Terraform | Manage full environment lifecycle with Terraform only | Create reusable modules for multi-env setup (dev/stage/prod) |
| Install NGINX Ingress Controller (via Helm) | Define Ingress resources for internal routing | Simulate DNS using `/etc/hosts` or `minikube tunnel` |
| Use `kubectl rollout` for versioned releases | Explore deployment strategies: `RollingUpdate`, `Recreate`, etc. | Implement canary strategy using labels or Helm hooks | Track deployment health via `kubectl rollout status` |
|