I’m extremely pleased to announce the first release of the helm-maven-plugin. This Maven plugin works with microbean-helm to allow you to create Helm charts and install them from Maven. Binaries are on Maven central. See https://microbean.github.io/helm-maven-plugin/ for full usage documentation and more details.
I’m pleased to announce the release of microbean-helm version 220.127.116.11.0.4. This version tracks Helm 2.7.0. This release is also notable for introducing the notion of a chart resolver, which is an abstract mechanism for obtaining Helm charts. The first implementation is, of course, a resolver that works with Helm chart repositories. However it doesn’t take much to see how this could be expanded to blend nicely with Æther. Watch this space.
I’m pleased to announce version 18.104.22.168.1.0 of the microbean-helm project: a toolkit in Java for working with Helm, the Kubernetes package manager. This release is available from Maven Central. The Helm version tracked is 2.6.2.
This release adds the ability to write out charts from their Java representations. This feature joins the ability to read charts from a variety of different sources and to perform operations on the releases they represent, faithfully replicating the business logic contained in the
helm binary itself, in addition to taking advantage of the business logic already present in the Tiller server.
This should provide the foundation for a Maven plugin, which I’ll be working on next.
With this library, Java developers can now create and maintain Helm releases programmatically.
The Github repository contains more information as does the documentation site. Have a look at the
AbstractChartLoader classes to get a quick sense of what this project is all about. Happy Helming…from Java!
The latest addition is a façade class named
Among other things, it functions as a simple entry point into the common Helm-like operations you might want to do from within your Java program or library.
Have a look at the
install() methods. These install a Helm chart into a Kubernetes cluster given a URL to the chart location in one relatively easy invocation. Happy Helming from Java!
final TillerInstaller tillerInstaller = new TillerInstaller(); tillerInstaller.init(true /* yes, upgrade if a new version is available */)
Then you can load a chart from a directory like this:
final ChartLoader chartLoader = new DirectoryChartLoader(); final Chart chart = chartLoader.load(someChartDirectory);
…or from a tarball like this:
final ChartLoader chartLoader = new TapeArchiveChartLoader(); final Chart chart = chartLoader.load(new TarInputStream(new GZIPInputStream(Files.newInputStream("someChart.tgz"))));
final InstallReleaseRequest.Builder builder = InstallReleaseRequest.newBuilder(); builder.setChart(theChartYouLoaded); builder.setValues(someConfigYouBuilt); builder.setNamespace(whereYouWantIt); final InstallReleaseRequest request = builder.build();
Then you can install the chart (as before):
final Tiller tiller = new Tiller(new DefaultKubernetesClient()); final ReleaseServiceGrpc.ReleaseServiceBlockingStub stub = tiller.getReleaseServiceBlockingStub(); final Tiller.InstallReleaseResponse response = stub.installRelease(request); final ReleaseOuterClass.Release release = response.getRelease();
Full API documentation is online. More on the way. Teaser: there are many ways in the Java ecosystem to load a chart.