Skip to main content
1 of 2
lakier
  • 139
  • 2

SBT Helm plugin

Description

I've created simple SBT plugin which enables creating Helm Charts

The main reasons:

  • in Helm it is impossible to 'fetch' external files: https://github.com/helm/helm/issues/3276 which is very cumbersome when dealing with applications that are packaged multiple times with different configurations.
  • want to package my application from one tool: SBT (I'm using sbt-native-packager to create the Docker image)
  • didn't find already existing SBT plugin that enables Helm Charts creation

The description and usage can be found in the Github repository README.md

The main plugin source: https://github.com/kiemlicz/shelm/blob/master/src/main/scala/com/shelm/HelmPlugin.scala

SBT plugins tests: https://github.com/kiemlicz/shelm/tree/master/src/sbt-test/shelm

Questions

First and foremost: I would gladly receive any input and thoughts about this project

  1. What do you think about plugin rationale?
  2. What is your opinion about the HelmPlugin.scala itself? Did I properly create SBT's tasks and settings?
  3. When running plugin in parallel for multiple projects (the SBT parallelizes tasks by default) sometimes I encountered: https://github.com/helm/helm/issues/2258#issuecomment-306498450. The linked ticket somehow suggests it is an issue with Helm. Yet I've created a workaround which simply retries the helm commands. I'm unsure if it is indeed issue with Helm or my code wrongly spawning the helm process
  4. I've created dedicated SBT Configuration for my tasks, is it created and used properly?
  5. Should I implement dedicated clean task or appending any artifacts to cleanFiles is sufficient?

Thank you

lakier
  • 139
  • 2