Releases: unbroken-dome/gradle-helm-plugin
v2.0.0
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
- #170, #174 Upgrade to / support Gradle 8
- #154 Expose Helm client download URL through DSL (thanks to @bmuschko)
- #164 Add channel ID for GitLab repositories (thanks to @mehmetsalgar)
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 objectpublishing
with propertyenabled
.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 fromAction
parameters.
v1.7.0
New Features
- #133
helm-publish
plugin now has support for Gitlab repositories (thanks to @iconoeugen) - #144 Added task type
HelmTemplate
and DSL forrenderings
to invokehelm template
- #145 Add support for
--with-subcharts
flag ofhelm lint
- #146 Make the file patterns to which filtering is applied configurable
- #148 Add support for
--history-max
option ofhelm 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
v1.6.0
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
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
v1.4.0
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
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 thehelm-releases
plugin. Simply callhelmTest
to test all your releases, orhelmTest<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
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
andHelmReleaseTarget
which rendered generated Groovy DSL setters inaccessible to the build script - Restore Gradle 5.2 compatibility: fallback to using
ProjectLayout.configurableFiles()
instead ofObjectFactory.fileCollection()
which was added in 5.3
v1.2.2
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
v1.2.1
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)