Add env var support on GCP cloudrun

Signed-off-by: Benjamin Grandfond <benjamin.grandfond@gmail.com>
This commit is contained in:
Benjamin Grandfond 2021-09-05 20:54:21 +02:00
parent db8a92c371
commit 830ad87ced
2 changed files with 19 additions and 2 deletions

View File

@ -1,11 +1,13 @@
package cloudrun package cloudrun
import ( import (
"strings"
"alpha.dagger.io/dagger/op" "alpha.dagger.io/dagger/op"
"alpha.dagger.io/gcp" "alpha.dagger.io/gcp"
) )
// Service deploys a Cloud Run service based on provided GCR image // Service deploys a Cloud Run service based on provided GCR image
#Service: { #Service: {
// GCP Config // GCP Config
config: gcp.#Config config: gcp.#Config
@ -22,6 +24,10 @@ import (
// Cloud Run service exposed port // Cloud Run service exposed port
port: *"80" | string @dagger(input) port: *"80" | string @dagger(input)
// Cloud Run service environment variables
env: [string]: string
_envVars: [ for key, val in env {key + "=" + val}]
#up: [ #up: [
op.#Load & { op.#Load & {
from: gcp.#GCloud & { from: gcp.#GCloud & {
@ -38,7 +44,13 @@ import (
"pipefail", "pipefail",
"-c", "-c",
#""" #"""
gcloud run deploy "$SERVICE_NAME" --image "$IMAGE" --region "$REGION" --port "$PORT" --platform "$PLATFORM" --allow-unauthenticated gcloud run deploy "$SERVICE_NAME" \
--image "$IMAGE" \
--region "$REGION" \
--port "$PORT" \
--platform "$PLATFORM" \
--allow-unauthenticated \
--set-env-vars "$ENV_VARS"
"""#, """#,
] ]
env: { env: {
@ -47,6 +59,7 @@ import (
REGION: config.region REGION: config.region
IMAGE: image IMAGE: image
PORT: port PORT: port
ENV_VARS: strings.Join(_envVars, ",")
} }
}, },
] ]

View File

@ -11,4 +11,8 @@ TestCloudRun: deploy: cloudrun.#Service & {
config: TestConfig.gcpConfig config: TestConfig.gcpConfig
name: "todoapp" name: "todoapp"
image: "gcr.io/dagger-ci/todoapp:latest" image: "gcr.io/dagger-ci/todoapp:latest"
env: {
FOO: "foo"
BAR: "bar"
}
} }