operations/deployment-charts is our helm charts repository, meaning it's the repository where we store the helm charts for all the software we run on kubernetes in production. It currently has no CI whatsoever, and we should change that.
As a first step, we should just set up a CI job that runs helm lint and helm template on the charts. Later we can think of further validation like applying the chart on minikube or something like unit testing the generated template, which would allow us to catch deeper issues.
But let's not let the perfect be the enemy of the barely decent, and let's start with the low-hanging fruit!
What needs to be done:
- Create a way to run the tests within the deployment-charts. Any tool to run tasks on specific files will be ok, but I think I'll settle on Rake.
- Create a docker image for running our tests, within integration/config:dockerfiles. It will at a minimum need helm and rake to be installed, and a git clone of the deployment-charts repo. It will contain a /bin/run script with the usual ZUUL-related boilerplate that will then run rake, pretty much similar to what the releng/operations-puppet docker image does.
- Create a job definition in integration/config to run tests using that image for the operations/deployment-charts repository.
Bonus points if we can use the same image (or a slightly modified one) to run the same tests on the local-charts repository.