stdlib/kubernetes: split source with dagger.#Artifact and sourceInline (string) fixes #263

Signed-off-by: Sam Alba <sam.alba@gmail.com>
This commit is contained in:
Sam Alba 2021-04-06 20:57:45 -07:00
parent 647e4c898b
commit 464c4177d7
3 changed files with 18 additions and 9 deletions

View File

@ -37,9 +37,9 @@ cluster: eks.#KubeConfig & {
// Example of a simple `kubectl apply` using a simple config
kubeApply: kubernetes.#Apply & {
source: yaml.Marshal(kubeSrc)
namespace: "test"
kubeconfig: cluster.kubeconfig
sourceInline: yaml.Marshal(kubeSrc)
namespace: "test"
kubeconfig: cluster.kubeconfig
}
// Example of a `helm install` using a local chart

View File

@ -14,7 +14,10 @@ import (
name: string
// Helm chart to install
chart: string | dagger.#Artifact
chart: dagger.#Artifact
// Helm chart to install inlined
chartInline?: string
// Helm chart repository (defaults to stable)
repository: *"https://charts.helm.sh/stable" | string
@ -86,7 +89,7 @@ import (
content: kubeconfig
mode: 0o600
},
if (chart & string) != _|_ {
if chartInline != _|_ {
op.#WriteFile & {
dest: "/helm/chart"
content: chart
@ -117,7 +120,7 @@ import (
if (values & string) != _|_ {
"/helm/values.yaml": values
}
if (chart & dagger.#Artifact) != _|_ {
if chartInline == _|_ {
"/helm/chart": from: chart
}
}

View File

@ -45,8 +45,12 @@ import (
// Apply a Kubernetes configuration
#Apply: {
// Kubernetes config to deploy
source: string | dagger.#Artifact
source: dagger.#Artifact
// Kubernetes config to deploy inlined in a string
sourceInline?: string
// Kubernetes Namespace to deploy to
namespace: string
@ -59,6 +63,8 @@ import (
#code: #"""
kubectl create namespace "$KUBE_NAMESPACE" || true
ls -la /source
cat /source
kubectl --namespace "$KUBE_NAMESPACE" apply -R -f /source
"""#
@ -75,7 +81,7 @@ import (
content: kubeconfig
mode: 0o600
},
if (source & string) != _|_ {
if sourceInline != _|_ {
op.#WriteFile & {
dest: "/source"
content: source
@ -95,7 +101,7 @@ import (
KUBECONFIG: "/kubeconfig"
KUBE_NAMESPACE: namespace
}
if (source & dagger.#Artifact) != _|_ {
if sourceInline == _|_ {
mount: "/source": from: source
}
},