diff --git a/examples/kubernetes-app/main.cue b/examples/kubernetes-app/main.cue index d35eb51d..14bebc30 100644 --- a/examples/kubernetes-app/main.cue +++ b/examples/kubernetes-app/main.cue @@ -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 diff --git a/stdlib/kubernetes/helm/helm.cue b/stdlib/kubernetes/helm/helm.cue index d667f656..012b76b9 100644 --- a/stdlib/kubernetes/helm/helm.cue +++ b/stdlib/kubernetes/helm/helm.cue @@ -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 } } diff --git a/stdlib/kubernetes/kubernetes.cue b/stdlib/kubernetes/kubernetes.cue index de74da22..8900857f 100644 --- a/stdlib/kubernetes/kubernetes.cue +++ b/stdlib/kubernetes/kubernetes.cue @@ -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 } },