package helm import ( "dagger.io/dagger" "dagger.io/dagger/op" "dagger.io/alpine" "dagger.io/file" "dagger.io/kubernetes/helm" ) // We assume that a kinD cluster is running locally // To deploy a local KinD cluster, follow this link : https://kind.sigs.k8s.io/docs/user/quick-start/ kubeconfig: dagger.#Artifact // Retrive kubeconfig config: file.#Read & { filename: "config" from: kubeconfig } // Generate random string random: { string #up: [ op.#Load & {from: alpine.#Image}, op.#Exec & { args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] }, op.#Export & { source: "/rand" }, ] } // Deploy user local chart TestHelmSimpleChart: { // Deploy chart deploy: helm.#Chart & { name: "dagger-test-helm-simple-chart-\(random)" namespace: "dagger-test" kubeconfig: config.contents chartSource: dagger.#Artifact } // Verify deployment verify: #VerifyHelm & { chartName: deploy.name namespace: deploy.namespace } } // Deploy remote chart TestHelmRepoChart: { // Deploy chart deploy: helm.#Chart & { name: "dagger-test-helm-repository-\(random)" namespace: "dagger-test" kubeconfig: config.contents chart: "redis" } // Verify deployment verify: #VerifyHelm & { chartName: deploy.name namespace: deploy.namespace } }