E2E Testing of Kube Controllers - the Good, the Bad and the Ugly
10-23, 18:05–18:10 (US/Eastern), Main Room

End to end testing in Kubernetes apps is usually done with many lines of bash scripts as this may seem as natural progression from testing Kubernetes apps manually with kubectl. Bash is not well-equipped for such tests because users have to create a lot of boilerplate and wrapper functions to make tests reliable. At the same time, Kubernetes provides excellent client libraries in many programming languages. In this presentation, Paweł will show that taking advantage of the client libraries can improve tests speed and reliability, and as a side effect, shorten a feedback loop for developers.


Testing Kubernetes controllers or applications which run inside the Kubernetes cluster and use Kubernetes cluster resources can be a challenging task. While unit tests are easy to write and maintain, thanks to rich Kubernetes client libraries available for End-to-End testing, the top layer of The Test Pyramid is a completely different animal. In this presentation, Paweł will talk about how to build end-to-end tests based on manual testing with kubectl and why bash scripts should be reduced to minimum. He will also talk about Elotl’s struggles to keep the end-to-end testing pipeline stable and reliable. He will discuss pros and cons of running tests in local KIND clusters and using clusters provided by the cloud vendors.

Platform Engineer at Elotl, Kubernetes & Go fan and amateur squash player. Likes to disassemble and reassemble the software