Contour: Update CI base images for E2E tests

Created on 16 Apr 2021  路  6Comments  路  Source: projectcontour/contour

Our current kind based testing infra pulls a bunch of images each time the e2e tests are run. In some cases the images are very large (500mb+). To speed up the time to pull/load into the cluster, we could pre-load these images into a custom kind image that allows to be the base image. Additionally we could pick smaller test images that aren't so large to help reduce build/test time.

  • [ ] Reduce image sizes for tests
  • [ ] CI job/script to build base image & push to a registry
kinfeature lifecyclneeds-triage

Most helpful comment

I think the "official" build of ingress-conformance-echo is at https://gcr.io/k8s-staging-ingressconformance/echoserver, latest still being gcr.io/k8s-staging-ingressconformance/echoserver:v20201006-42d00bd. This one includes the TLS stuff, which was the reason for my custom build back then.

It can be rebuilt using https://github.com/kubernetes-sigs/ingress-controller-conformance/tree/master/images/echoserver.

In my own personal dev tests I've completely gotten rid of httpbin and use ingress-conformance-echo exclusively. It is much lighter and still contains everything I need.

All 6 comments

It could also be worth considering maintaining our own test "echo server" binary that has the functionality we need for testing purposes. Right now we depend on ingress-conformance-echo (a custom build of it from tsaarni) and httpbin for the combo of functionality we need.

I agree that we should either pick one upstream thing to use for all our tests, or make our own instead and do that. But it should be the one thing across everything regardless.

I think the "official" build of ingress-conformance-echo is at https://gcr.io/k8s-staging-ingressconformance/echoserver, latest still being gcr.io/k8s-staging-ingressconformance/echoserver:v20201006-42d00bd. This one includes the TLS stuff, which was the reason for my custom build back then.

It can be rebuilt using https://github.com/kubernetes-sigs/ingress-controller-conformance/tree/master/images/echoserver.

In my own personal dev tests I've completely gotten rid of httpbin and use ingress-conformance-echo exclusively. It is much lighter and still contains everything I need.

In my own personal dev tests I've completely gotten rid of httpbin and use ingress-conformance-echo exclusively. It is much lighter and still contains everything I need.

Yep, we use httpbin only in one test -- the health checks test -- and only because it has functionality where if you request a path like /status/418 it will return a 418 response code. It would be really nice to not have to use it anymore since it's so big.

Yep, we use httpbin only in one test -- the health checks test -- and only because it has functionality where if you request a path like /status/418 it will return a 418 response code. It would be really nice to not have to use it anymore since it's so big.

I guess the conformance test suite does not go into status codes of upstream services currently but I wonder if it could be justified that ingress-conformance-echo would have a /status/ endpoint for testing controllers, something simple like this.

Would definitely be useful, if they'd take the PR we would use it and drop httpbin for sure.

Was this page helpful?
0 / 5 - 0 ratings