Add Cloud Run support
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
This commit is contained in:
parent
c0d510e68d
commit
5d8219a8f3
43
docs/programming/guides/cloudrun.md
Normal file
43
docs/programming/guides/cloudrun.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Deploy an application to GCP Cloud Run
|
||||||
|
|
||||||
|
This example shows how to deploy an application to GCP Cloud Run. Read the deployment [plan](https://github.com/dagger/dagger/tree/main/examples/cloud-run-app)
|
||||||
|
|
||||||
|
NOTE: this example requires an EKS cluster to allow authentication with your AWS credentials; but can easily be adapter to deploy to any Kubernetes cluster.
|
||||||
|
|
||||||
|
Components:
|
||||||
|
|
||||||
|
- [Cloud Run](https://cloud.google.com/run)
|
||||||
|
|
||||||
|
How to run:
|
||||||
|
|
||||||
|
1. Initialize a new workspace
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd ./cloud-run-app
|
||||||
|
dagger init
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Create a new environment
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger new cloud-run-app
|
||||||
|
cp *.cue ./.dagger/env/cloud-run-app/plan/
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Configure the Cloud Run service
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger input text serviceName MY_APP_NAME
|
||||||
|
dagger input text region MY_GCP_REGION
|
||||||
|
dagger input text image MY_GCR_IMAGE_NAME
|
||||||
|
|
||||||
|
dagger input text gcpConfig.project MY_GCP_PROJECT
|
||||||
|
dagger input secret gcpConfig.serviceKey -f MY_GCP_SERVICE_KEY_FILE
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Deploy!
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger up
|
||||||
|
```
|
25
docs/reference/universe/gcp/cloudrun.md
Normal file
25
docs/reference/universe/gcp/cloudrun.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
sidebar_label: cloudrun
|
||||||
|
---
|
||||||
|
|
||||||
|
# dagger.io/gcp/cloudrun
|
||||||
|
|
||||||
|
## #Deploy
|
||||||
|
|
||||||
|
Deploy deploys a Cloud Run service based on provided GCR image
|
||||||
|
|
||||||
|
### #Deploy Inputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*config.region* | `string` |GCP region |
|
||||||
|
|*config.project* | `string` |GCP project |
|
||||||
|
|*config.serviceKey* | `dagger.#Secret` |GCP service key |
|
||||||
|
|*serviceName* | `string` |service name |
|
||||||
|
|*region* | `*"us-west2" \| string` |region to which deploy the service |
|
||||||
|
|*image* | `string` |GCR image ref |
|
||||||
|
|*platform* | `*"managed" \| string` |Cloud Run platform |
|
||||||
|
|
||||||
|
### #Deploy Outputs
|
||||||
|
|
||||||
|
_No output._
|
@ -287,7 +287,7 @@ dagger input text cluster.clusterName MY_CLUSTER_NAME
|
|||||||
5. Load the Helm chart
|
5. Load the Helm chart
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
dagger input dir helmChart.chart ./kubernetes-app/testdata/mychart
|
dagger input dir helmChart.chart ./testdata/mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
6. Deploy!
|
6. Deploy!
|
||||||
@ -295,3 +295,47 @@ dagger input dir helmChart.chart ./kubernetes-app/testdata/mychart
|
|||||||
```sh
|
```sh
|
||||||
dagger up
|
dagger up
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Deploy an application to GCP Cloud Run
|
||||||
|
|
||||||
|
This example shows how to deploy an application to GCP Cloud Run. Read the deployment [plan](https://github.com/dagger/dagger/tree/main/examples/cloud-run-app)
|
||||||
|
|
||||||
|
NOTE: this example requires an EKS cluster to allow authentication with your AWS credentials; but can easily be adapter to deploy to any Kubernetes cluster.
|
||||||
|
|
||||||
|
Components:
|
||||||
|
|
||||||
|
- [Cloud Run](https://cloud.google.com/run)
|
||||||
|
|
||||||
|
How to run:
|
||||||
|
|
||||||
|
1. Initialize a new workspace
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd ./cloud-run-app
|
||||||
|
dagger init
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Create a new environment
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger new cloud-run-app
|
||||||
|
cp *.cue ./.dagger/env/cloud-run-app/plan/
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Configure the Cloud Run service
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger input text serviceName MY_APP_NAME
|
||||||
|
dagger input text region MY_GCP_REGION
|
||||||
|
dagger input text image MY_GCR_IMAGE_NAME
|
||||||
|
|
||||||
|
dagger input text gcpConfig.project MY_GCP_PROJECT
|
||||||
|
dagger input secret gcpConfig.serviceKey -f MY_GCP_SERVICE_KEY_FILE
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Deploy!
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger up
|
||||||
|
```
|
||||||
|
2
examples/cloud-run-app/.dagger/env/cloud-run-app/.gitignore
vendored
Normal file
2
examples/cloud-run-app/.dagger/env/cloud-run-app/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# dagger state
|
||||||
|
state/**
|
26
examples/cloud-run-app/.dagger/env/cloud-run-app/plan/main.cue
vendored
Normal file
26
examples/cloud-run-app/.dagger/env/cloud-run-app/plan/main.cue
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"dagger.io/gcp"
|
||||||
|
"dagger.io/gcp/cloudrun"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Cloud Run service name
|
||||||
|
serviceName: *"cloudrun-test" | string @dagger(input)
|
||||||
|
|
||||||
|
// GCP region
|
||||||
|
region: *"us-west2" | string @dagger(input)
|
||||||
|
|
||||||
|
// Image name
|
||||||
|
image: *"gcr.io/dagger-ci/cloudrun-test" | string @dagger(input)
|
||||||
|
|
||||||
|
gcpConfig: gcp.#Config & {
|
||||||
|
region: region
|
||||||
|
}
|
||||||
|
|
||||||
|
deploy: cloudrun.#Deploy & {
|
||||||
|
serviceName: serviceName
|
||||||
|
image: image
|
||||||
|
config: gcpConfig
|
||||||
|
region: region
|
||||||
|
}
|
30
examples/cloud-run-app/.dagger/env/cloud-run-app/values.yaml
vendored
Normal file
30
examples/cloud-run-app/.dagger/env/cloud-run-app/values.yaml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
name: cloud-run-app
|
||||||
|
inputs:
|
||||||
|
gcpConfig.project:
|
||||||
|
text: dagger-ci
|
||||||
|
gcpConfig.serviceKey:
|
||||||
|
secret: ENC[AES256_GCM,data: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,iv:XBNEXLnpNnuUAyaEWuobkPeeBGYPIrEiqrqIS/r0Lu0=,tag:Ft6wBjWDFYKBNm52Dn1vxQ==,type:str]
|
||||||
|
region:
|
||||||
|
text: us-west2
|
||||||
|
serviceName:
|
||||||
|
text: cloudrun-test3
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1j6nrevprudhes65akfpl7sl65pktl4wj272gh7xl82ul3aaugppq6zxujg
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxWWdlTDFWK0VNQTNoUExS
|
||||||
|
Y20yNVZTT0hxNi91d3JvTUZ3UFNuRStUQTNvCnVEOVlTUjhvNU5MejdldWt0eWxR
|
||||||
|
UnZ4T0lUd3dsSURaNzRXWGVKQWllWTgKLS0tIHV0QkFWTDk2RE9hK2EyNm9GRVll
|
||||||
|
dmE4QXJmK255RHNIVzJjNjFwRCtCMzQKaAfgT/Q7uU4urlcgtz25Pbwx/p4iyEX/
|
||||||
|
YpZaWQuVR2J9jtEh86oYZYGLxO5SAvqO5v20tfxXdVzZQkw0/QVPhQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2021-06-10T06:06:28Z"
|
||||||
|
mac: ENC[AES256_GCM,data:qlX0EtuyHMNhMoVtR0xwD6kM2i+Jbq6NC6oQwZkEb4Pe8yy1cXKtHOvzDQAmMOL/vyE82fRtTmvfc85gA8vgw320TzXDcqxkpbVlML/5O7lDvOBwePvwajwG5JOlBXl+UJWMrH5nYfRPas1B4RSV7lksqXf/+a2+O0b2NN0UWDM=,iv:GqffDMMcLDefh6HU8fmaXlOk4xkjhq0sP5jkWAsiZKo=,tag:ttbyp8H7ZviPebmga9oJ7g==,type:str]
|
||||||
|
pgp: []
|
||||||
|
encrypted_suffix: secret
|
||||||
|
version: 3.7.1
|
13
examples/cloud-run-app/go-http-server/.dockerignore
Normal file
13
examples/cloud-run-app/go-http-server/.dockerignore
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# The .dockerignore file excludes files from the container build process.
|
||||||
|
#
|
||||||
|
# https://docs.docker.com/engine/reference/builder/#dockerignore-file
|
||||||
|
|
||||||
|
# Exclude locally vendored dependencies.
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# Exclude "build-time" ignore files.
|
||||||
|
.dockerignore
|
||||||
|
.gcloudignore
|
||||||
|
|
||||||
|
# Exclude git history and configuration.
|
||||||
|
.gitignore
|
33
examples/cloud-run-app/go-http-server/Dockerfile
Normal file
33
examples/cloud-run-app/go-http-server/Dockerfile
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Use the offical golang image to create a binary.
|
||||||
|
# This is based on Debian and sets the GOPATH to /go.
|
||||||
|
# https://hub.docker.com/_/golang
|
||||||
|
FROM golang:1.16-buster as builder
|
||||||
|
|
||||||
|
# Create and change to the app directory.
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Retrieve application dependencies.
|
||||||
|
# This allows the container build to reuse cached dependencies.
|
||||||
|
# Expecting to copy go.mod and if present go.sum.
|
||||||
|
COPY go.* ./
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Copy local code to the container image.
|
||||||
|
COPY . ./
|
||||||
|
|
||||||
|
# Build the binary.
|
||||||
|
RUN go build -v -o server
|
||||||
|
|
||||||
|
# Use the official Debian slim image for a lean production container.
|
||||||
|
# https://hub.docker.com/_/debian
|
||||||
|
# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds
|
||||||
|
FROM debian:buster-slim
|
||||||
|
RUN set -x && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||||
|
ca-certificates && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Copy the binary to the production image from the builder stage.
|
||||||
|
COPY --from=builder /app/server /app/server
|
||||||
|
|
||||||
|
# Run the web service on container startup.
|
||||||
|
CMD ["/app/server"]
|
3
examples/cloud-run-app/go-http-server/go.mod
Normal file
3
examples/cloud-run-app/go-http-server/go.mod
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module github.com/dagger-cloud-run-example
|
||||||
|
|
||||||
|
go 1.16
|
35
examples/cloud-run-app/go-http-server/main.go
Normal file
35
examples/cloud-run-app/go-http-server/main.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Sample run-helloworld is a minimal Cloud Run service.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
log.Print("starting server...")
|
||||||
|
http.HandleFunc("/", handler)
|
||||||
|
|
||||||
|
// Determine port for HTTP service.
|
||||||
|
port := os.Getenv("PORT")
|
||||||
|
if port == "" {
|
||||||
|
port = "8080"
|
||||||
|
log.Printf("defaulting to port %s", port)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start HTTP server.
|
||||||
|
log.Printf("listening on port %s", port)
|
||||||
|
if err := http.ListenAndServe(":"+port, nil); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func handler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
name := os.Getenv("NAME")
|
||||||
|
if name == "" {
|
||||||
|
name = "World"
|
||||||
|
}
|
||||||
|
fmt.Fprintf(w, "Hello %s!\n", name)
|
||||||
|
}
|
26
examples/cloud-run-app/main.cue
Normal file
26
examples/cloud-run-app/main.cue
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"dagger.io/gcp"
|
||||||
|
"dagger.io/gcp/cloudrun"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Cloud Run service name
|
||||||
|
serviceName: *"cloudrun-test" | string @dagger(input)
|
||||||
|
|
||||||
|
// GCP region
|
||||||
|
region: *"us-west2" | string @dagger(input)
|
||||||
|
|
||||||
|
// Image name
|
||||||
|
image: *"gcr.io/dagger-ci/cloudrun-test" | string @dagger(input)
|
||||||
|
|
||||||
|
gcpConfig: gcp.#Config & {
|
||||||
|
region: region
|
||||||
|
}
|
||||||
|
|
||||||
|
deploy: cloudrun.#Deploy & {
|
||||||
|
serviceName: serviceName
|
||||||
|
image: image
|
||||||
|
config: gcpConfig
|
||||||
|
region: region
|
||||||
|
}
|
52
stdlib/gcp/cloudrun/cloudrun.cue
Normal file
52
stdlib/gcp/cloudrun/cloudrun.cue
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package cloudrun
|
||||||
|
|
||||||
|
import (
|
||||||
|
"dagger.io/dagger/op"
|
||||||
|
"dagger.io/gcp"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Deploy deploys a Cloud Run service based on provided GCR image
|
||||||
|
#Deploy: {
|
||||||
|
// GCP Config
|
||||||
|
config: gcp.#Config
|
||||||
|
|
||||||
|
// service name
|
||||||
|
serviceName: string @dagger(input)
|
||||||
|
|
||||||
|
// region to which deploy the service
|
||||||
|
region: *"us-west2" | string @dagger(input)
|
||||||
|
|
||||||
|
// GCR image ref
|
||||||
|
image: string @dagger(input)
|
||||||
|
|
||||||
|
// Cloud Run platform
|
||||||
|
platform: *"managed" | string @dagger(input)
|
||||||
|
|
||||||
|
#up: [
|
||||||
|
op.#Load & {
|
||||||
|
from: gcp.#GCloud & {
|
||||||
|
"config": config
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
op.#Exec & {
|
||||||
|
args: [
|
||||||
|
"/bin/bash",
|
||||||
|
"--noprofile",
|
||||||
|
"--norc",
|
||||||
|
"-eo",
|
||||||
|
"pipefail",
|
||||||
|
"-c",
|
||||||
|
#"""
|
||||||
|
gcloud run deploy "$SERVICE_NAME" --image "$IMAGE" --region "$REGION" --platform "$PLATFORM" --allow-unauthenticated
|
||||||
|
"""#,
|
||||||
|
]
|
||||||
|
env: {
|
||||||
|
SERVICE_NAME: serviceName
|
||||||
|
PLATFORM: platform
|
||||||
|
REGION: region
|
||||||
|
IMAGE: image
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
@ -3,7 +3,7 @@
|
|||||||
## TL;DR
|
## TL;DR
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# Install dependancies
|
# Install dependencies
|
||||||
yarn install
|
yarn install
|
||||||
|
|
||||||
# Install gnu parallel if needed
|
# Install gnu parallel if needed
|
||||||
|
2
tests/stdlib/gcp/cloudrun/.dagger/env/default/.gitignore
vendored
Normal file
2
tests/stdlib/gcp/cloudrun/.dagger/env/default/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# dagger state
|
||||||
|
state/**
|
15
tests/stdlib/gcp/cloudrun/.dagger/env/default/plan/cloudrun.cue
vendored
Normal file
15
tests/stdlib/gcp/cloudrun/.dagger/env/default/plan/cloudrun.cue
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package cloudrun
|
||||||
|
|
||||||
|
import (
|
||||||
|
"dagger.io/gcp"
|
||||||
|
"dagger.io/gcp/cloudrun"
|
||||||
|
)
|
||||||
|
|
||||||
|
TestConfig: gcpConfig: gcp.#Config
|
||||||
|
|
||||||
|
TestCloudRun: deploy: cloudrun.#Deploy & {
|
||||||
|
config: TestConfig.gcpConfig
|
||||||
|
serviceName: "cloudrun-test"
|
||||||
|
region: "us-west2"
|
||||||
|
image: "gcr.io/dagger-ci/cloudrun-test:latest"
|
||||||
|
}
|
28
tests/stdlib/gcp/cloudrun/.dagger/env/default/values.yaml
vendored
Normal file
28
tests/stdlib/gcp/cloudrun/.dagger/env/default/values.yaml
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
name: default
|
||||||
|
inputs:
|
||||||
|
TestConfig.gcpConfig.project:
|
||||||
|
text: dagger-ci
|
||||||
|
TestConfig.gcpConfig.region:
|
||||||
|
text: us-west2-a
|
||||||
|
TestConfig.gcpConfig.serviceKey:
|
||||||
|
secret: ENC[AES256_GCM,data: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,iv:tPbOGayR7NiXcuHWjX0pX/nSitOxmsr4qqrc6irlIJI=,tag:apejA4UTYTuwT4CUSeoaRQ==,type:str]
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1gxwmtwahzwdmrskhf90ppwlnze30lgpm056kuesrxzeuyclrwvpsupwtpk
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCRThSTEE1Rm5HU2Y2NkJZ
|
||||||
|
SEd2blAyeEVnMHBqRGxXMEQ3TGFzWTBwd1EwCnA0OFVmTCsxSmpNV29adGt2ZHFH
|
||||||
|
WE9vN1ZoNENFV2t1TGVuZkdwVndNbVUKLS0tIGpHZEptYWxEZVNjcXF4NkoyWHRv
|
||||||
|
ZXd6Qmd1YUtxMnVTVkYybWgrV3pVK2MKowMeOZU3j3BxERT0DwhQYCGUDBK6gCdo
|
||||||
|
WByubiBATdsb7h7ytCC4HutWppynK4MpU+Ya9NP83AZuXo+Wa2u6aQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2021-05-28T02:07:09Z"
|
||||||
|
mac: ENC[AES256_GCM,data:QqbgWep3l7dIfE4imJ3SKsMdexh7DgUvjtGwSgKbHHnT0p2MwIdFMY7pB0ZJvlc3ZwQyioT3wqF9xgn4U60a4piGtDYsyWjZn52tQAPy0p9c+sOHn+WlFVu1FJeljU4Q3mlEqdA6g993nsbJp9RnNShpc65rQXUMLkw2lXhOAak=,iv:1pp1D1fUFGI+Kn/H2efaqroJV+rzJRGmWo2ZTseTDis=,tag:ePCkD/G2KEbN7cxiMpy9fg==,type:str]
|
||||||
|
pgp: []
|
||||||
|
encrypted_suffix: secret
|
||||||
|
version: 3.7.1
|
Reference in New Issue
Block a user