Why
So you can start on integration
Many developers across organizations today write applications which run on Kubernetes
[citation needed].
While
helm create certainly provides a good starting point for a Helm Chart, it is blind to the context
in which it is being called. That is, it cannot take application-specific needs into consideration.
This app aims to change that.
The goal of this app, ultimately, is to enable
you as a developer to easily provide a Helm Chart for
an artifact you may be responsible for without having to do too much of a deep dive into Helm.
This may look like this:
$ // build docker image of your app
$ // upload pom to start-helm.com
$ // enter docker image repository
$ // download helm chart
$ unzip helm.zip && cd helm && helm dependency update && helm install my-app -f ./values.yaml -f ./Chart.yaml .
How
This app takes into consideration the dependency list of an application which should be deployable through
a Helm Chart. This takes care of things like:
- Pulling in Helm Charts of infrastructure dependencies like databases, message brokers etc
- Customizing a raw Helm Chart towards application specific needs such as
- Configurations (so you have full control over the configuration your app uses at runtime)
- Credentials/Secrets (so your app can connect to its infrastructure at runtime)
- Setting up an Ingress for your app (so you can connect to it from outside your cluster)
- Allowing a user to provide further customization options before the chart gets generated
Code
The code for this app is available on
Github.
The stack used:
- Spring Boot
- Thymeleaf
- Chota CSS
- htmx
Should you take a look at the code:
Note that Helm Template Files and snakeyaml do not really play nice together. Template expressions are foreign
objects to snakeyaml so most of the time we treat contents of Helm Chart files just as strings we split by line.