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@616d9006932b1412e48832eed51a5f85d2a6f69b

Entrypoint

Return Type
HelmCi !
Arguments
NameTypeDefault ValueDescription
helmImageRegistryString "docker.io"Helm image registry
helmImageRepositoryString "alpine/helm"Helm image repository
helmImageTagString "3.18.6"Helm image tag
helmContainerUserIdString "65532"Helm container user
gitImageRegistryString "docker.io"Git image registry for changed-chart detection
gitImageRepositoryString "alpine/git"Git image repository for changed-chart detection
gitImageTagString "2.52.0"Git image tag for changed-chart detection
gitContainerUserIdString "65532"Git container user for changed-chart detection
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@616d9006932b1412e48832eed51a5f85d2a6f69b 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@616d9006932b1412e48832eed51a5f85d2a6f69b call \
 helm-publish --oci-url string --version string
func (m *MyModule) Example(ctx context.Context, ociUrl string, version string) string  {
	return dag.
			Helmci().
			Helmpublish(ctxociUrl, version)
}
@function
async def example(ociurl: str, version: str) -> str:
	return await (
		dag.helm_ci()
		.helmpublish(ociurl, version)
	)
@func()
async example(ociUrl: string, version: string): Promise<string> {
	return dag
		.helmCi()
		.helmPublish(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@616d9006932b1412e48832eed51a5f85d2a6f69b call \
 helm-verify --release-name string
func (m *MyModule) Example(ctx context.Context, releaseName string) string  {
	return dag.
			Helmci().
			Helmverify(ctxreleaseName)
}
@function
async def example(releasename: str) -> str:
	return await (
		dag.helm_ci()
		.helmverify(releasename)
	)
@func()
async example(releaseName: string): Promise<string> {
	return dag
		.helmCi()
		.helmVerify(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@616d9006932b1412e48832eed51a5f85d2a6f69b call \
 helm-verify-changed-charts --target-branch string --release-name string
func (m *MyModule) Example(ctx context.Context, targetBranch string, releaseName string) []string  {
	return dag.
			Helmci().
			Helmverifychangedcharts(ctxtargetBranch, releaseName)
}
@function
async def example(targetbranch: str, releasename: str) -> List[str]:
	return await (
		dag.helm_ci()
		.helmverifychangedcharts(targetbranch, releasename)
	)
@func()
async example(targetBranch: string, releaseName: string): Promise<string[]> {
	return dag
		.helmCi()
		.helmVerifyChangedCharts(targetBranch, releaseName)
}