helm-ci
This Dagger scenario composes the local Helm and Git modules into portableHelm chart verification and publication workflows.
Installation
dagger install github.com/riftonix/daggerverse/scenarios/helm-ci@2ab5cda99db7f7171cd871f497a3b2a3bca88511Entrypoint
Return Type
HelmCi ! Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@2ab5cda99db7f7171cd871f497a3b2a3bca88511 call \
func (m *MyModule) Example() *dagger.HelmCi {
return dag.
HelmCi()
}@function
def example() -> dagger.HelmCi:
return (
dag.helm_ci()
)@func()
example(): HelmCi {
return dag
.helmCi()
}Types
HelmCi 🔗
helmPublish() 🔗
Package and push helm chart via local helm module
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Helm chart directory |
| ociUrl | String ! | - | Destination OCI registry URL without chart name |
| version | String ! | - | Chart semver to publish |
| appVersion | String | null | Optional appVersion override |
| username | String | null | Registry username for login |
| password | Secret | null | Registry password |
| insecure | Boolean | false | Allow plain http pushes |
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@2ab5cda99db7f7171cd871f497a3b2a3bca88511 call \
helm-publish --source DIR_PATH --oci-url string --version stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, ociUrl string, version string) string {
return dag.
HelmCi().
HelmPublish(ctx, source, ociUrl, version)
}@function
async def example(source: dagger.Directory, oci_url: str, version: str) -> str:
return await (
dag.helm_ci()
.helm_publish(source, oci_url, version)
)@func()
async example(source: Directory, ociUrl: string, version: string): Promise<string> {
return dag
.helmCi()
.helmPublish(source, ociUrl, version)
}helmVerify() 🔗
Run Helm lint and template via local helm module
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Helm chart directory |
| values | File | null | Optional values.yaml file |
| releaseName | String ! | "ci-release" | Helm release name for templating |
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@2ab5cda99db7f7171cd871f497a3b2a3bca88511 call \
helm-verify --source DIR_PATH --release-name stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, releaseName string) string {
return dag.
HelmCi().
HelmVerify(ctx, source, releaseName)
}@function
async def example(source: dagger.Directory, release_name: str) -> str:
return await (
dag.helm_ci()
.helm_verify(source, release_name)
)@func()
async example(source: Directory, releaseName: string): Promise<string> {
return dag
.helmCi()
.helmVerify(source, releaseName)
}helmVerifyChangedCharts() 🔗
Verify changed charts/libs and optionally publish feature versions
Return Type
[String ! ] !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Repository root directory |
| targetBranch | String ! | "master" | Target branch or ref to diff against |
| chartsPath | String | null | Charts directory (relative to repo root) |
| libsPath | String | null | Libraries directory (relative to repo root) |
| values | File | null | Optional values.yaml file |
| releaseName | String ! | "ci-release" | Helm release name for templating |
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@2ab5cda99db7f7171cd871f497a3b2a3bca88511 call \
helm-verify-changed-charts --source DIR_PATH --target-branch string --release-name stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, targetBranch string, releaseName string) []string {
return dag.
HelmCi().
HelmVerifyChangedCharts(ctx, source, targetBranch, releaseName)
}@function
async def example(source: dagger.Directory, target_branch: str, release_name: str) -> List[str]:
return await (
dag.helm_ci()
.helm_verify_changed_charts(source, target_branch, release_name)
)@func()
async example(source: Directory, targetBranch: string, releaseName: string): Promise<string[]> {
return dag
.helmCi()
.helmVerifyChangedCharts(source, targetBranch, releaseName)
}