-
Gradle task types for common Helm CLI commands
-
Build, package and publish Helm Charts using a declarative Gradle DSL
-
Resolve placeholders like ${chartVersion} from chart source files before packaging
-
Resolve dependencies between charts using Gradle artifact dependencies
-
Install, upgrade and uninstall releases to/from a Kubernetes cluster
Add io.github.build-extensions-oss.helm to your Gradle project:
plugins {
id 'io.github.build-extensions-oss.helm' version 'latest'
}plugins {
id("io.github.build-extensions-oss.helm") version "latest"
}📂 (project root)
📂 src
📂 main
📂 helm
📂 templates
📄 ...
📄 Chart.yaml
📄 values.yamlThis repository is a fork of Citi/gradle-helm-plugin, which is a of unbroken-dome/gradle-helm-plugin.
The version v2.2.0 has exactly the same code with version 2.2.0 of Citi/gradle-helm-plugin. Therefore, first please use that version. All Java/Kotlin packages are the same, so the plugin should be fully compatible.
Version 3.1.0 (under construction) might be not backward compatible with older plugin versions, because:
- It has new Java/Kotlin packages that match this project.
- Unless you call plugin functions directly, it would be hard to notice any differences with simple plugin usages
- It is compatible with Gradle 9 (and remain being compatible with Gradle 7), however some old APIs have been removed.
- The minimal Java version is Java 17 (not 1.8).
-
Gradle 7 or higher
-
JDK 17 or higher (for running Gradle)
-
Helm command-line client 3.+
Due to open source nature of the project, some functionality isn't supported for old versions of Gradle.
| Feature | Gradle Version |
|---|---|
| Basic Helm Chart Functionality | 7, 8, 9 |
| Helm Publish | 7, 8, 9 |
| Helm Releases | 7, 8 - basic support (not tested regularly); 9 - full support (constant tests) |
Your contributions are at the core of making this a true open source project. Any contributions you make are greatly appreciated.
We welcome you to:
- Fix typos or touch up documentation
- Share your opinions on existing issues
- Help expand and improve our library by opening a new issue
Please review our functional contribution guidelines to get started 👍
Code is tested on GitHub. Additionally, code is manually verified via neighbour repository: https://github.com/build-extensions-oss/gradle-plugin-examples.
There are three types of tests:
- Unit tests (with mocks and so on)
- Functional tests via Gradle simulation (old - should be removed). They run on Linux only. They are executed in the same time with unit tests.
- Functional tests via Gradle Test Kit.
The most comprehensive checks are done via Gradle Functional tests. And GitHub workflow logic is the following:
- We compile code on ubuntu-latest and publish jars locally.
- Plugin is published into local jar versioned with git hash (to avoid accidental usage from another build).
- Functional tests:
- Executed on multiple platforms
- Use the jar published (e.g. the don't recompile the same plugin code)
- Run on different Java versions.
- The latest GitHub action - we run all unit tests, however code coverage is aggregated with functional tests as well.
In other words, we compile code once and then run tests on different platforms. That is needed to check that the real code will be good enough to be used on different operating systems.
This project is distributed under the MIT License. See LICENSE for
more information.