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