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@v1.2.0

Entrypoint

Return Type
HelmCi !
Arguments
NameTypeDefault ValueDescription
sourceDirectory -Repository root directory
helmImageRegistryString "docker.io"Helm image registry
helmImageRepositoryString "alpine/helm"Helm image repository
helmImageTagString "4.2.3"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 "v2.54.0"Git image tag for changed-chart detection
gitContainerUserIdString "65532"Git container user for changed-chart detection
helmUnittestImageRegistryString "docker.io"Helm unittest image registry
helmUnittestImageRepositoryString "helmunittest/helm-unittest"Helm unittest image repository
helmUnittestImageTagString "4.2.0-1.1.0"Helm unittest image tag
helmUnittestContainerUserIdString "65532"Helm unittest container user
Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@a98bdd026dada8f30696714b9f9fe68f324a1b86 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 🔗

getChartOciUrl() 🔗

Return the chart OCI namespace URL derived from its Git tag prefix.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
ociBaseUrlString !-

Base OCI registry URL without chart namespace

gitTagPrefixString !-

Git release tag prefix for the chart

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@a98bdd026dada8f30696714b9f9fe68f324a1b86 call \
 get-chart-oci-url --oci-base-url string --git-tag-prefix string
func (m *MyModule) Example(ctx context.Context, ociBaseUrl string, gitTagPrefix string) string  {
	return dag.
			Helmci().
			Getchartociurl(ctx, ociBaseUrl, gitTagPrefix)
}
@function
async def example(ocibaseurl: str, gittagprefix: str) -> str:
	return await (
		dag.helm_ci()
		.getchartociurl(ocibaseurl, gittagprefix)
	)
@func()
async example(ociBaseUrl: string, gitTagPrefix: string): Promise<string> {
	return dag
		.helmCi()
		.getChartOciUrl(ociBaseUrl, gitTagPrefix)
}

getChartReleaseTag() 🔗

Return the chart-scoped Git release tag.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
gitTagPrefixString !-

Git release tag prefix for the chart

chartSourceDirectory null

Optional Helm chart directory; defaults to the scenario source

versionString null

Optional chart version override

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@a98bdd026dada8f30696714b9f9fe68f324a1b86 call \
 get-chart-release-tag --git-tag-prefix string
func (m *MyModule) Example(ctx context.Context, gitTagPrefix string) string  {
	return dag.
			Helmci().
			Getchartreleasetag(ctx, gitTagPrefix)
}
@function
async def example(gittagprefix: str) -> str:
	return await (
		dag.helm_ci()
		.getchartreleasetag(gittagprefix)
	)
@func()
async example(gitTagPrefix: string): Promise<string> {
	return dag
		.helmCi()
		.getChartReleaseTag(gitTagPrefix)
}

publishChart() 🔗

Publish one Helm chart and push its Git release tag.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
ociBaseUrlString !-

Base OCI registry URL without chart namespace

gitTagPrefixString !-

Git release tag prefix for the chart

gitTokenSecret null

Optional HTTPS token used to push the release Git tag

chartSourceDirectory null

Optional Helm chart directory; defaults to the scenario source

versionString null

Optional chart version override

appVersionString null

Optional appVersion override

withDependencyUpdateBoolean !true

Run Helm dependency update before publishing

usernameString null

Registry username for login

passwordSecret null

Registry password

insecureBoolean false

Allow plain http pushes

gitHostString !"github.com"

HTTPS Git host used for release tag authentication

gitUsernameString !"x-access-token"

HTTPS Git username used for release tag authentication

gitRemoteString !"origin"

Git remote that receives the release tag

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@a98bdd026dada8f30696714b9f9fe68f324a1b86 call \
 publish-chart --oci-base-url string --git-tag-prefix string --with-dependency-update boolean --git-host string --git-username string --git-remote string
func (m *MyModule) Example(ctx context.Context, ociBaseUrl string, gitTagPrefix string, withDependencyUpdate bool, gitHost string, gitUsername string, gitRemote string) string  {
	return dag.
			Helmci().
			Publishchart(ctx, ociBaseUrl, gitTagPrefix, withDependencyUpdate, gitHost, gitUsername, gitRemote)
}
@function
async def example(ocibaseurl: str, gittagprefix: str, withdependencyupdate: bool, githost: str, gitusername: str, gitremote: str) -> str:
	return await (
		dag.helm_ci()
		.publishchart(ocibaseurl, gittagprefix, withdependencyupdate, githost, gitusername, gitremote)
	)
@func()
async example(ociBaseUrl: string, gitTagPrefix: string, withDependencyUpdate: boolean, gitHost: string, gitUsername: string, gitRemote: string): Promise<string> {
	return dag
		.helmCi()
		.publishChart(ociBaseUrl, gitTagPrefix, withDependencyUpdate, gitHost, gitUsername, gitRemote)
}

verifyChart() 🔗

Verify the Helm chart supplied as the scenario source.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
valuesFile null

Optional values.yaml file

releaseNameString !"ci-release"

Helm release name for templating

chartSourceDirectory null

Optional Helm chart directory; defaults to the scenario source

unittestSuiteFiles[String ! ] null

Optional Helm unittest suite file glob patterns

Example
dagger -m github.com/riftonix/daggerverse/scenarios/helm-ci@a98bdd026dada8f30696714b9f9fe68f324a1b86 call \
 verify-chart --release-name string
func (m *MyModule) Example(ctx context.Context, releaseName string) string  {
	return dag.
			Helmci().
			Verifychart(ctxreleaseName)
}
@function
async def example(releasename: str) -> str:
	return await (
		dag.helm_ci()
		.verifychart(releasename)
	)
@func()
async example(releaseName: string): Promise<string> {
	return dag
		.helmCi()
		.verifyChart(releaseName)
}