tests(stdlib/k8s/helm): test basic helm chart

tests(stdlib/k8s/helm): add verification
style(tests/): rename helper into verify to confirm that deployments works

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
This commit is contained in:
Tom Chauveau
2021-04-09 16:46:25 +02:00
parent e19a71e67c
commit 32d523aa71
18 changed files with 496 additions and 57 deletions

View File

@@ -1,9 +1,11 @@
package helm
import (
"dagger.io/kubernetes/helm"
"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
@@ -16,25 +18,50 @@ config: file.#Read & {
from: kubeconfig
}
// Dagger test k8s namespace
namespace: "dagger-test"
// 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"
},
]
}
chartName: "test-helm"
// Example of a `helm install` using a local chart
// Fill using:
// --input-dir helmChart.chart=./testdata/mychart
// Deploy user local chart
TestHelmSimpleChart: {
helm.#Chart & {
name: chartName
"namespace": namespace
// Deploy chart
deploy: helm.#Chart & {
name: "dagger-test-helm-simple-chart-\(random)"
namespace: "dagger-test"
kubeconfig: config.contents
chart: dagger.#Artifact
chartSource: dagger.#Artifact
}
// Verify deployment
verify: #VerifyHelm & {
"chartName": chartName
chartName: deploy.name
namespace: deploy.namespace
}
}
result: helmApply: TestHelmSimpleChart.verify
// 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
}
}