- Create Kubernetes cluster using
kind
:
task cluster-create
- Configure ingress
task cluster-ingress-setup
- Define DNS names on local machine e.g.:
vi /etc/hosts
and add 3 FQDNs for localhost
:
127.0.0.1 localhost podtato.example.com podinfo.example.com foobar.example.com
- Setup Kubernetes dashboard:
task dashboard-ingress-setup
- Access dashboard https://localhost:8443
- Configure GitHub OAuth application:
- Provision OAuth proxy:
task oauth-proxy-setup
- Create
podinfo
app:
task app-podinfo-setup
- Check app https://podinfo.example.com/
- Provision Basic authentication
- Create
podtato
:
task app-podtato-setup
- Access app https://podtato.example.com/
- Provision Client certificate authentication
- Create
foo-bar
app:
task app-foo-bar-setup
task app-foo-bar-check
- Gateway API
- Implementations:
- Create Kubernetes cluster using
kind
:
kind create cluster --config code/single-node-extra-port-mapping-gateway-api.yaml --name home-lab
- Deploy
blixt
kubectl apply -k https://github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v1.2.1
cd ..
git clone https://github.com/kubernetes-sigs/blixt
make build.all.images TAG=latest
make load.all.images TAG=latest
kubectl apply -k config/default
- Deploy ``:
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/standard?ref=v1.6.2" | kubectl apply -f -
helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namespace -n nginx-gateway --set service.create=false
kubectl apply -f code/gateway-api-node-port.yaml
- Create
cafe
application:
kubectl apply -f code/app-cafe.yaml
- Define DNS names on local machine e.g.:
vi /etc/hosts
and add 1 FQDNs for localhost
:
127.0.0.1 localhost cafe.example.com
- Check application:
kubectl describe httproutes
kubectl describe gateways
curl --resolve cafe.example.com:8080:127.0.0.1 http://cafe.example.com:8080/coffee
curl --resolve cafe.example.com:8080:127.0.0.1 http://cafe.example.com:8080/tea