This is an example of how to run the Project Contour implementation of the Kubernetes Gateway API on a local Kind cluster using Podman for containers.
There are more likely other ways to achieve ingress into a Kind cluster using the Gateway API, this is just the one I came up with.
I did this as a learning exercise to understand the Gateway API but I also learnt how Kind does networking and lots about Contour.
Why Contour? To be honest I tried a number of Gateway API implementations and this is the only one I got working.
The following tools are needed to run this project:
- podman (install)
- kind (install)
- kubectl (install)
- curl (installation depends on OS, or you can download)
Versions used at time of authoring:
- podman 5.1.1
- kind 0.23.0
- kubectl v1.30.2
- curl 8.6.0
For this project I selected the "Service with NodePort" networking strategy to get traffic into the Kind cluster. More information about this can be found in the repo domeales-paloit/kind-traffic-ingress-examples.
Inspect the contents of each Bash script and then run them in order:
./01-start-cluster.sh
./02-install-contour-api-gateway.sh
./03-deploy-httpbin.sh
./04-add-route-to-httpbin.sh
Great, you're all set up!
Now test that you have connectivity to the httpbin Pods by running curl:
curl -v http://localhost:32201/get
And you should see the output from httpbin. There are plenty of options with httpbin, check out the docs here: httpbin.org.
Congratulations, you have just deployed Gateway API on a Kind cluster via Podman.
Important! When finished testing, delete the cluster
./99-delete-cluster.sh