feat: support helm

Signed-off-by: vgjm <vgjm456@qq.com>
This commit is contained in:
vgjm 2022-04-07 10:15:10 +08:00
parent 23af3ab20b
commit fe5496b3ff
3 changed files with 110 additions and 0 deletions

View File

@ -0,0 +1,13 @@
package helm
import (
"universe.dagger.io/docker"
)
#Image: {
version: string | *"latest"
docker.#Pull & {
source: "index.docker.io/alpine/helm:\(version)"
}
}

View File

@ -0,0 +1,64 @@
package helm
import (
"dagger.io/dagger"
"universe.dagger.io/docker"
)
#Install: {
// Name of your release
name: string | *""
kubeconfig: dagger.#Secret
source: *"repository" | "URL"
{
source: "repository"
chart: string
repoName: string
repository: string
run: {
env: {
CHART: chart
REPO_NAME: repoName
REPOSITORY: repository
}
_script: #"""
helm repo add $REPO_NAME $REPOSITORY
helm repo update
helm install $NAME $REPO_NAME/$CHART $GENERATE_NAME
"""#
}
} | {
source: "URL"
URL: string
run: {
env: "URL": URL
_script: #"""
helm install $NAME $URL $GENERATE_NAME
"""#
}
}
_base: #Image
run: docker.#Run & {
input: _base.output
env: {
NAME: name
GENERATE_NAME: _generateName
}
mounts: "/root/.kube/config": {
dest: "/root/.kube/config"
type: "secret"
contents: kubeconfig
}
entrypoint: ["/bin/sh"]
command: {
name: "-c"
args: [run._script]
}
}
_generateName: string | *""
if name == "" {
_generateName: "--generate-name"
}
}

View File

@ -0,0 +1,33 @@
package helm
import (
"dagger.io/dagger"
"universe.dagger.io/x/vgjm456@qq.com/helm"
)
dagger.#Plan & {
client: {
env: KUBECONFIG: string
commands: kubeconfig: {
name: "cat"
args: ["\(env.KUBECONFIG)"]
stdout: dagger.#Secret
}
}
actions: test: {
URL: helm.#Install & {
name: "test-pgsql"
source: "URL"
URL: "https://charts.bitnami.com/bitnami/postgresql-11.1.12.tgz"
kubeconfig: client.commands.kubeconfig.stdout
}
repository: helm.#Install & {
name: "test-redis"
source: "repository"
chart: "redis"
repoName: "bitnami"
repository: "https://charts.bitnami.com/bitnami"
kubeconfig: client.commands.kubeconfig.stdout
}
}
}