feat: support helm
Signed-off-by: vgjm <vgjm456@qq.com>
This commit is contained in:
parent
23af3ab20b
commit
fe5496b3ff
13
pkg/universe.dagger.io/x/vgjm456@qq.com/helm/image.cue
Normal file
13
pkg/universe.dagger.io/x/vgjm456@qq.com/helm/image.cue
Normal 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)"
|
||||
}
|
||||
}
|
64
pkg/universe.dagger.io/x/vgjm456@qq.com/helm/install.cue
Normal file
64
pkg/universe.dagger.io/x/vgjm456@qq.com/helm/install.cue
Normal 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"
|
||||
}
|
||||
}
|
33
pkg/universe.dagger.io/x/vgjm456@qq.com/helm/test/test.cue
Normal file
33
pkg/universe.dagger.io/x/vgjm456@qq.com/helm/test/test.cue
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user