Recently I've been working on shoring up some of the user-experience and functionality of Reckoner, an open source tool that works in conjunction with helm to enable repeatable, declarative of helm charts onto kubernetes clusters. It also supports pointing to git repositories as a chart source, something which helm alone currently doesn't support.
A common use case is when you want to install
nginx-ingress on a cluster and you want to be able to check all your chart values into source control. Below is an example of a
course.yml, the definition file that reckoner uses to install charts.
# course.yml charts: nginx-ingress: namespace: ingress-controllers version: 1.15.1 values: controller.ingressClass: "my-ingress-class-name"
Running reckoner with a
reckoner plot course.yml will make sure helm installs
nginx-ingress in your clusters with the settings you've provided.
At Fairwinds we use reckoner to install core infrastructure to all our clusters and manage chart values for things related to that core infrastructure.
Since reckoner was started in python, we decided it would be too much work to port it to another language just for easier binary distribution. Luckily, PyInstaller allowed us to "compile" a self-contained binary that could be run on Linux or OS X systems. This made our lives so much easier for the installation story and has also helped with our end to end testing, which we now do in CircleCI with kind.
If you do try out reckoner and something is lacking, always feel free to reach out via dev.to or start a discussion in github issues! We've made changes to help people run reckoner in CI/CD and are always interested in how it can make people's lives just a tad easier. Thanks!