Getting Started
1. Prerequisites
-
Java 21 or later
-
Maven 3.9+ (or use the included
mvnwwrapper) -
A Kubernetes cluster (for deploy operations; not needed for template rendering)
2. Building from Source
git clone https://github.com/alexmond/jhelm.git
cd jhelm
./mvnw clean install
3. Using the CLI
After building, run the CLI via the application JAR:
java -jar jhelm-app/target/jhelm-{jhelm-version}.jar --help
3.1. Examples
Render chart templates locally:
jhelm template my-release ./my-chart
jhelm template my-release ./my-chart -f custom-values.yaml
jhelm template my-release ./my-chart --set image.tag=v2.0
Add a chart repository and install a chart:
jhelm repo add bitnami https://charts.bitnami.com/bitnami
jhelm pull bitnami/nginx --version 15.0.0
jhelm install my-nginx ./nginx -n production
Check release status and history:
jhelm list -n production
jhelm status my-nginx -n production --show-resources
jhelm history my-nginx -n production
See the CLI Reference for all available commands.
4. Using as a Library
Add jhelm-core to your Maven project for offline operations (template rendering, chart loading, repo management):
<dependency>
<groupId>org.alexmond</groupId>
<artifactId>jhelm-core</artifactId>
<version>{jhelm-version}</version>
</dependency>
Add jhelm-kube when you also need Kubernetes operations (install, upgrade, rollback, etc.):
<dependency>
<groupId>org.alexmond</groupId>
<artifactId>jhelm-kube</artifactId>
<version>{jhelm-version}</version>
</dependency>
Both modules ship with Spring Boot auto-configuration. In a Spring Boot application the relevant beans are created automatically.
4.1. Minimal Code Example
import org.alexmond.jhelm.core.service.Engine;
import org.alexmond.jhelm.core.service.ChartLoader;
import org.alexmond.jhelm.core.model.Chart;
import java.io.File;
import java.util.Map;
// Load a chart from disk
ChartLoader loader = new ChartLoader();
Chart chart = loader.load(new File("/path/to/my-chart"));
// Render templates
Engine engine = new Engine();
String manifest = engine.render(chart, Map.of(), Map.of(
"Name", "my-release",
"Namespace", "default",
"IsInstall", true
));
System.out.println(manifest);
For Spring Boot integration with auto-configured beans and configuration properties, see the Spring Boot Starter guide.