Github - https://github.com/hiteshjoshi1/helm-k8s-poc.git
test.com, and a client cert.helm upgrade --install the app chart.test.com → Minikube IP in /etc/hosts (this simulates owning the domain).Prerequisite: install docker
brew install minikube
brew install helm
Provide at least 8GB to docker in docker desktop settings
minikube start --cpus=4 --memory=8g
This POC gives us two tiny APIs, a full Helm chart to deploy them with 2 replicas each, and an NGINX Ingress with TLS termination, mutual TLS (mTLS) client auth, rate limiting, and WAF (ModSecurity + OWASP CRS). It is designed for Minikube.
Stack: Node.js (Express) apps → ClusterIP Services → NGINX Ingress Controller (Helm) → Ingress (TLS + mTLS + WAF + rate limit)
helm-k8s-poc/
├── apps/
│ ├── node/
│ │ ├── package.json
│ │ ├── server.js
│ │ └── Dockerfile
│ └── orders/
│ ├── package.json
│ ├── server.js
│ └── Dockerfile
├── helm/
│ ├── poc-apps/
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ └── templates/
│ │ ├── deployment-node.yaml
│ │ ├── service-node.yaml
│ │ ├── deployment-orders.yaml
│ │ ├── service-orders.yaml
│ │ └── ingress.yaml
│ └── ingress-nginx/
│ └── ingress-nginx-waf.yaml
└── scripts/
└── gen-certs.sh