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@220e6ffd361648988bea4beb94c3a602f38cfdfe

Entrypoint

Return Type
HelmCi !
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@220e6ffd361648988bea4beb94c3a602f38cfdfe 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 nullOptional appVersion override
usernameString nullRegistry username for login
passwordSecret nullRegistry password
insecureBoolean falseAllow plain http pushes
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@220e6ffd361648988bea4beb94c3a602f38cfdfe 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 nullOptional values.yaml file
releaseNameString !"ci-release"Helm release name for templating
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@220e6ffd361648988bea4beb94c3a602f38cfdfe 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 nullCharts directory (relative to repo root)
libsPathString nullLibraries directory (relative to repo root)
valuesFile nullOptional values.yaml file
releaseNameString !"ci-release"Helm release name for templating
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@220e6ffd361648988bea4beb94c3a602f38cfdfe 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)
}