Dagger
Search

helm-ci

This Dagger scenario composes the local Helm and Git modules into portable
Helm chart verification and publication workflows.

Installation

dagger install github.com/riftonix/daggerverse/scenarios/helm-ci@4eff211858b9cacfa22a4de2ca51b5ba3517caeb

Entrypoint

Return Type
HelmCi !
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@4eff211858b9cacfa22a4de2ca51b5ba3517caeb 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
NameTypeDefault ValueDescription
sourceDirectory !-

Helm chart directory

ociUrlString !-

Destination OCI registry URL without chart name

versionString !-

Chart semver to publish

appVersionString null

Optional appVersion override

usernameString null

Registry username for login

passwordSecret null

Registry password

insecureBoolean false

Allow plain http pushes

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@4eff211858b9cacfa22a4de2ca51b5ba3517caeb call \
 helm-publish --source DIR_PATH --oci-url string --version string
func (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
NameTypeDefault ValueDescription
sourceDirectory !-

Helm chart directory

valuesFile null

Optional values.yaml file

releaseNameString !"ci-release"

Helm release name for templating

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@4eff211858b9cacfa22a4de2ca51b5ba3517caeb call \
 helm-verify --source DIR_PATH --release-name string
func (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
NameTypeDefault ValueDescription
sourceDirectory !-

Repository root directory

targetBranchString !"master"

Target branch or ref to diff against

chartsPathString null

Charts directory (relative to repo root)

libsPathString null

Libraries directory (relative to repo root)

valuesFile null

Optional values.yaml file

releaseNameString !"ci-release"

Helm release name for templating

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@4eff211858b9cacfa22a4de2ca51b5ba3517caeb call \
 helm-verify-changed-charts --source DIR_PATH --target-branch string --release-name string
func (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)
}