Conformance test suite for Kubernetes Ingress (POC)
- Tests will use an existing, running, Kubernetes cluster.
- An ingress controller is installed and running.
- e2e tests use the ingress status field to determine the FQDN/IP address to be used in the base URL.
- Timeouts are configurable. The default is five minutes per test.
- Is not relevant if the cluster is running in a cloud provider (or not).
- Only ports 80 and 443 are used.
- HTTPS tests should generate self signed certificates using the FQDN/IP address of the ingress to test.
List of Conformance tests
The file conformance.md
should not be edited manually but only by running make update-conformance-list
$ make build # build e2e.test binary
$ make test # runs e2e suite against an existing Kubernetes cluster
# (uses current context from KUBECONFIG)
$ kubectl create -f images/conformance/conformance.yaml
The goal is to use the same approach used by the official Kubernetes certification program
The standard tool for running these tests is Sonobuoy. Sonobuoy is regularly built and kept up to date to execute against all currently supported versions of kubernetes.
Download a binary release of the CLI, or build it yourself by running:
$ go get -u -v github.com/heptio/sonobuoy
$ sonobuoy run \
--wait \
--mode=certified-conformance \
--kube-conformance-image=aledbf/ingress-conformance:v02062020-ac7e541
$ results=$(sonobuoy retrieve)
$ sonobuoy e2e $results
$ sonobuoy delete --wait
TODO:
- Build docker image
- Confirm the suite runs in a pod
- Use Sonoboy to run the tests
- Use httpexpect library
- Confirm the comments in e2e tests are parseable and compatible with k/k