Skip to content

Releases: unbroken-dome/gradle-helm-plugin

v2.0.0

22 Aug 11:01
Compare
Choose a tag to compare

It's been quite a while, sorry for the long inactivity! Here's the long awaited modernization upgrade for the Gradle Helm plugin.

New Features

Breaking Changes

  • The plugin now requires Gradle 7.5 and a JDK 11.
  • The HelmChart.publish convention property has been removed in favor of an extension object publishing with property enabled. HelmChart.publish can still be used as a Kotlin extension property.

Other Changes

  • General modernization of build tools and library dependencies
  • Documentation fixes and improvements (thanks to @imanushin)
  • Some configuration blocks taking a Groovy Closure as a parameter have been removed. Gradle should automatically generate these as overloads from Action parameters.

v1.7.0

12 Nov 09:26
Compare
Choose a tag to compare

New Features

  • #133 helm-publish plugin now has support for Gitlab repositories (thanks to @iconoeugen)
  • #144 Added task type HelmTemplate and DSL for renderings to invoke helm template
  • #145 Add support for --with-subcharts flag of helm lint
  • #146 Make the file patterns to which filtering is applied configurable
  • #148 Add support for --history-max option of helm upgrade
  • #149 Add support for --wait-for-jobs flag in several tasks

Bugfixes

  • #106 HelmUninstall task should be skipped if a release doesn't exist (instead of marking up-to-date)
  • #126 Fix for input/output properties of HelmBuildDependencies task
  • #142 Change Helm client download mechanism so it doesn't conflict with dependencyResolutionManagement
  • #147 Exceptions when reading filtered files are now properly shown and not "swallowed" by the filtering mechanism

Other Changes

  • Automatic Helm client download no longer uses Gradle's artifact resolution to get the Helm client; instead it installs a task to download the archive file. This task is installed on the root project in multi-module builds so that multiple subprojects don't download the Helm client multiple times.
  • Documentation improvements #135, #139 (thanks to @thomasmillergbtw and @luolong)

v1.6.1

10 Mar 08:29
Compare
Choose a tag to compare

Bugfixes

  • Fixes for binary compatibility between Kotlin 1.4 (Gradle 6.8) and Kotlin 1.3 (Gradle pre 6.8)
  • Fix for duplicate classname of extension accessors in 1.6.0 (#121)

v1.6.0

28 Jan 18:06
Compare
Choose a tag to compare

This release contains mostly refactorings, to enable some of the enhancements planned for the future.

Most notably, the project structure has been split up into a multi-module build, and helm-publish and helm-releases plugins are now kept in their own subprojects. This also avoids fetching unnecessary dependencies (e.g. a HTTP client when publishing is not used). These plugins are now delivered as separate JAR artifacts from the plugin portal.

As a consequence, it might be necessary to explicitly add the version to each of the plugins, especially when the single-library JAR was imported using an apply false statement before.

If you have this in your root project:

plugins {
    id("org.unbroken-dome.helm") version "1.5.0" apply false
}

Then subprojects can no longer automatically use the org.unbroken-dome.helm-publish and org.unbroken-dome.helm-releases plugins because they now reside in separate JARs. You will need to declare them as well:

plugins {
    id("org.unbroken-dome.helm") version "1.6.0" apply false
    id("org.unbroken-dome.helm-publish") version "1.6.0" apply false
    id("org.unbroken-dome.helm-releases") version "1.6.0" apply false
}

Alternatively, you can use the following snippet at the beginning of your settings.gradle or settings.gradle.kts, to keep the version in a single place. This will then allow you to omit the version whenever you declare the plugin in a build.gradle(.kts) file.

pluginManagement {
    resolutionStrategy.eachPlugin {
        if (requested.id.namespace == "org.unbroken-dome" && requested.id.name.startsWith("helm")) {
            useVersion("1.6")
        }
    }
}

v1.5.0

08 Jan 12:15
Compare
Choose a tag to compare

Enhancements

  • Added support for publishing Helm charts to Nexus repositories (thanks to @CrazyMoonkin)

Fixes

  • Fix Chartmuseum API path when multi-tenancy is not used (thanks to @adferrand)

Other Changes

  • Use new URLs for standard Helm "stable" and "incubator" repos (thanks to @alpert)

v1.4.0

05 Dec 18:56
Compare
Choose a tag to compare

Enhancements

  • Added support for publishing to Harbor repositories
    (thanks to @adferrand for Harbor 1.x compatibility fix)
  • Added multi-tenancy support for publishing to Chartmuseum repositories

Other Improvements

  • Automatic Helm client download now fetches version 3.4.1 by default

v1.3.0

06 Oct 13:16
Compare
Choose a tag to compare

NOTE: This plugin version is no longer compatible with Gradle 5.1, please upgrade to Gradle 5.2 or higher (preferably the latest Gradle version)

Enhancements

  • Release Testing: helm test is now fully integrated into the helm-releases plugin. Simply call helmTest to test all your releases, or helmTest<Release> to test a specific release. (See documentation)
  • Checking release status: interactive task to call helm status for a release. (See documentation)
  • Multiple lint configurations: helm lint can now be run multiple times with different values, making it easier to cover all conditional branches of your templates. (See documentation)

Other improvements

  • Helm exec worker now gets all environment variables from Gradle build (thanks to @Emilio-Pega)
  • Helm client download now uses latest version 3.3.4 as default

v1.2.3

06 Oct 12:04
Compare
Choose a tag to compare

NOTE: This plugin version is no longer compatible with Gradle 5.1, please upgrade to Gradle 5.2 or higher (preferably the latest Gradle version)

Bugfixes

  • #85 avoid decorator objects around HelmRelease and HelmReleaseTarget which rendered generated Groovy DSL setters inaccessible to the build script
  • Restore Gradle 5.2 compatibility: fallback to using ProjectLayout.configurableFiles() instead of ObjectFactory.fileCollection() which was added in 5.3

v1.2.2

24 Sep 09:10
7e057a5
Compare
Choose a tag to compare

Enhancements

  • #74 pass the PATH environment variable to the Helm worker so it can call external scripts e.g. credential helpers (thanks to @Emilio-Pega)

Bugfixes

  • #34 avoid NoSuchMethodException in DigestUtils when publishing a chart
  • #73 allow Groovy DSL syntax in helm.downloadClient

v1.2.1

18 Sep 07:46
Compare
Choose a tag to compare

Enhancements

  • #65 KUBECONFIG environment variable is now forwarded to Helm invocations (thanks to @Emilio-Pega)

Bugfixes

  • #26 HelmTest tasks can now be properly instantiated
  • #56 Fix basic authentication for Helm chart repositories (thanks to @marinkobabic)
  • fix broken link to API docs in documentation (thanks to @cyt3ea)
  • #57 fix serialization issue with RegularFileProperty task properties (thanks to @alex-lmco)