Category Archives: Java

microBean Helm Maven Plugin Released

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.

Advertisements

microBean Helm 2.7.0.1.0.4 Released

I’m pleased to announce the release of microbean-helm version 2.7.0.1.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.

microBean Helm v2.6.2.1.1.0 released

I’m pleased to announce version 2.6.2.1.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.

microBean Helm Released: Helm from Java

I’m quite proud to announce the release of version 2.6.2.1.0.0 of microBean Helm, a Java library that works with Kubernetes Helm charts and releases.  It is available from Maven Central immediately.

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 ReleaseManager and AbstractChartLoader classes to get a quick sense of what this project is all about.  Happy Helming…from Java!

MicroBean Helm: Charts.install(URL) now works

I’ve just released another snapshot of my microbean-helm project.

The latest addition is a façade class named Charts.

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!

MicroBean Helm: Helm from Java

I’ve just released another snapshot version of my MicroBean Helm project on the way to another real release.  (Helm is the package manager for Kubernetes.)

With this latest snapshot, you can install Tiller into your Kubernetes cluster like this (as before):

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"))));

Then, armed with that Chart, you can create an InstallReleaseRequest with it (as before):

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.