From 8e2dea148bba2f915245ffc292ccacfc5e1ed8fc Mon Sep 17 00:00:00 2001 From: Scott Date: Mon, 6 Sep 2021 17:52:07 +1000 Subject: [PATCH 1/2] stdlib: Update gcp.#GCloud to set compute/region instead of compute/zone If a users correctly sets `region` to a valid GCP region, a warning would be presented (but is hidden by `-q`): ``` ) gcloud config set compute/zone asia-northeast1 Updated property [compute/zone]. WARNING: asia-northeast1 is not a valid zone. Run `gcloud compute zones list` to get all zones. ``` This makes it consistent with AWS where a region is set. However, an optional `zone` field could also be added to `gcp.#Config`, which would be used to (conditionally?) set the zone. AFAICT, there is no option to set a zone in AWS CLI. Signed-off-by: Scott --- stdlib/gcp/gcloud.cue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/gcp/gcloud.cue b/stdlib/gcp/gcloud.cue index 9b8831f4..2d09b095 100644 --- a/stdlib/gcp/gcloud.cue +++ b/stdlib/gcp/gcloud.cue @@ -43,7 +43,7 @@ import ( }, op.#Exec & { - args: ["gcloud", "-q", "config", "set", "compute/zone", config.region] + args: ["gcloud", "-q", "config", "set", "compute/region", config.region] }, ] } From 46362ed24717417dbdee636667881a2b2e7af92f Mon Sep 17 00:00:00 2001 From: Guillaume de Rouville Date: Tue, 14 Sep 2021 11:38:42 +0200 Subject: [PATCH 2/2] Add zone in GCP.#Config Signed-off-by: Guillaume de Rouville --- docs/reference/gcp/README.md | 22 ++++++++++++---------- docs/reference/gcp/cloudrun.md | 3 ++- docs/reference/gcp/gcr.md | 11 ++++++----- docs/reference/gcp/gcs.md | 3 ++- docs/reference/gcp/gke.md | 3 ++- docs/reference/gcp/secretmanager.md | 18 ++++++++++-------- stdlib/.dagger/env/google-gke/values.yaml | 8 ++++---- stdlib/gcp/gcloud.cue | 11 +++++++++-- stdlib/gcp/gcp.cue | 8 +++++--- stdlib/universe.bats | 2 +- 10 files changed, 53 insertions(+), 36 deletions(-) diff --git a/docs/reference/gcp/README.md b/docs/reference/gcp/README.md index 1b42d71e..24380cc5 100644 --- a/docs/reference/gcp/README.md +++ b/docs/reference/gcp/README.md @@ -16,11 +16,12 @@ Base Google Cloud Config ### gcp.#Config Inputs -| Name | Type | Description | -| ------------- |:-------------: |:-------------: | -|*region* | `string` |GCP region | -|*project* | `string` |GCP project | -|*serviceKey* | `dagger.#Secret` |GCP service key | +| Name | Type | Description | +| ------------- |:-------------: |:-------------: | +|*region* | `*null \| string` |GCP region | +|*zone* | `*null \| string` |GCP zone | +|*project* | `string` |GCP project | +|*serviceKey* | `dagger.#Secret` |GCP service key | ### gcp.#Config Outputs @@ -32,11 +33,12 @@ Re-usable gcloud component ### gcp.#GCloud Inputs -| Name | Type | Description | -| ------------- |:-------------: |:-------------: | -|*config.region* | `string` |GCP region | -|*config.project* | `string` |GCP project | -|*config.serviceKey* | `dagger.#Secret` |GCP service key | +| Name | Type | Description | +| ------------- |:-------------: |:-------------: | +|*config.region* | `*null \| string` |GCP region | +|*config.zone* | `*null \| string` |GCP zone | +|*config.project* | `string` |GCP project | +|*config.serviceKey* | `dagger.#Secret` |GCP service key | ### gcp.#GCloud Outputs diff --git a/docs/reference/gcp/cloudrun.md b/docs/reference/gcp/cloudrun.md index 74bc240b..4c271e25 100644 --- a/docs/reference/gcp/cloudrun.md +++ b/docs/reference/gcp/cloudrun.md @@ -16,7 +16,8 @@ Service deploys a Cloud Run service based on provided GCR image | Name | Type | Description | | ------------- |:-------------: |:-------------: | -|*config.region* | `string` |GCP region | +|*config.region* | `*null \| string` |GCP region | +|*config.zone* | `*null \| string` |GCP zone | |*config.project* | `string` |GCP project | |*config.serviceKey* | `dagger.#Secret` |GCP service key | |*name* | `string` |Cloud Run service name | diff --git a/docs/reference/gcp/gcr.md b/docs/reference/gcp/gcr.md index 169fcdbc..5799e580 100644 --- a/docs/reference/gcp/gcr.md +++ b/docs/reference/gcp/gcr.md @@ -16,11 +16,12 @@ Credentials retriever for GCR ### gcr.#Credentials Inputs -| Name | Type | Description | -| ------------- |:-------------: |:-------------: | -|*config.region* | `string` |GCP region | -|*config.project* | `string` |GCP project | -|*config.serviceKey* | `dagger.#Secret` |GCP service key | +| Name | Type | Description | +| ------------- |:-------------: |:-------------: | +|*config.region* | `*null \| string` |GCP region | +|*config.zone* | `*null \| string` |GCP zone | +|*config.project* | `string` |GCP project | +|*config.serviceKey* | `dagger.#Secret` |GCP service key | ### gcr.#Credentials Outputs diff --git a/docs/reference/gcp/gcs.md b/docs/reference/gcp/gcs.md index 462d5245..8d773bda 100644 --- a/docs/reference/gcp/gcs.md +++ b/docs/reference/gcp/gcs.md @@ -18,7 +18,8 @@ GCS Bucket object(s) sync | Name | Type | Description | | ------------- |:-------------: |:-------------: | -|*config.region* | `string` |GCP region | +|*config.region* | `*null \| string` |GCP region | +|*config.zone* | `*null \| string` |GCP zone | |*config.project* | `string` |GCP project | |*config.serviceKey* | `dagger.#Secret` |GCP service key | |*source* | `dagger.#Artifact` |Source Artifact to upload to GCS | diff --git a/docs/reference/gcp/gke.md b/docs/reference/gcp/gke.md index a01c1fd6..2c620ce9 100644 --- a/docs/reference/gcp/gke.md +++ b/docs/reference/gcp/gke.md @@ -18,7 +18,8 @@ KubeConfig config outputs a valid kube-auth-config for kubectl client | Name | Type | Description | | ------------- |:-------------: |:-------------: | -|*config.region* | `string` |GCP region | +|*config.region* | `*null \| string` |GCP region | +|*config.zone* | `*null \| string` |GCP zone | |*config.project* | `string` |GCP project | |*config.serviceKey* | `dagger.#Secret` |GCP service key | |*clusterName* | `string` |GKE cluster name | diff --git a/docs/reference/gcp/secretmanager.md b/docs/reference/gcp/secretmanager.md index ce483767..a7d12247 100644 --- a/docs/reference/gcp/secretmanager.md +++ b/docs/reference/gcp/secretmanager.md @@ -14,14 +14,16 @@ import "alpha.dagger.io/gcp/secretmanager" ### secretmanager.#Secrets Inputs -| Name | Type | Description | -| ------------- |:-------------: |:-------------: | -|*config.region* | `string` |GCP region | -|*config.project* | `string` |GCP project | -|*config.serviceKey* | `dagger.#Secret` |GCP service key | -|*deployment.image.config.region* | `string` |GCP region | -|*deployment.image.config.project* | `string` |GCP project | -|*deployment.image.config.serviceKey* | `dagger.#Secret` |GCP service key | +| Name | Type | Description | +| ------------- |:-------------: |:-------------: | +|*config.region* | `*null \| string` |GCP region | +|*config.zone* | `*null \| string` |GCP zone | +|*config.project* | `string` |GCP project | +|*config.serviceKey* | `dagger.#Secret` |GCP service key | +|*deployment.image.config.region* | `*null \| string` |GCP region | +|*deployment.image.config.zone* | `*null \| string` |GCP zone | +|*deployment.image.config.project* | `string` |GCP project | +|*deployment.image.config.serviceKey* | `dagger.#Secret` |GCP service key | ### secretmanager.#Secrets Outputs diff --git a/stdlib/.dagger/env/google-gke/values.yaml b/stdlib/.dagger/env/google-gke/values.yaml index 1ba1003d..b023b699 100644 --- a/stdlib/.dagger/env/google-gke/values.yaml +++ b/stdlib/.dagger/env/google-gke/values.yaml @@ -4,10 +4,10 @@ name: google-gke 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] + TestConfig.gcpConfig.zone: + text: us-west2-a sops: kms: [] gcp_kms: [] @@ -23,8 +23,8 @@ sops: ZXd6Qmd1YUtxMnVTVkYybWgrV3pVK2MKowMeOZU3j3BxERT0DwhQYCGUDBK6gCdo WByubiBATdsb7h7ytCC4HutWppynK4MpU+Ya9NP83AZuXo+Wa2u6aQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2021-07-08T09:55:26Z" - mac: ENC[AES256_GCM,data:WgQWkQEEuuH80dTI39hxMYzXGahhCPz5TidDgJvYnxWKKOphB23wrF56K56iXiNkdrPM7lQe6iwhK94FJCYuLGv180nrLO9Z7FnK0KuT+kwqBN+SvWbx8+Wrf55qE9mrMHZjsOlVADUcKRmdSLJB/02tLBQgtrwdGY13vlzC1+g=,iv:I2ro64HiZjipA8K1XHHGudtMmzPAVZLhXSg6MOA06mM=,tag:YYDje4ThW+zDEnASOXu/nA==,type:str] + lastmodified: "2021-09-14T09:13:06Z" + mac: ENC[AES256_GCM,data:8niBQ2za+ig2qm+V35pnAqqgAqoafBLxd62ZEwTrVfQz8gg28YCUMGIWD0/tT/KiFhBYDZ07T61D6uQVJuUANc2adDo6xx/jJ3Q3si4HJLScLzzPWTdVhc++tbXAGnBVXOxJNjKw6zbTK+cY8E1aLWpWJ+jLNgCpg/UCyZhetNU=,iv:dS1xMRHEdvFlJaIUFHdDVyE1d7UyN8hVFe8CtVV8PkE=,tag:lYmVhDbGo6Klne5mWcryLA==,type:str] pgp: [] encrypted_suffix: secret version: 3.7.1 diff --git a/stdlib/gcp/gcloud.cue b/stdlib/gcp/gcloud.cue index 2d09b095..9a03be7c 100644 --- a/stdlib/gcp/gcloud.cue +++ b/stdlib/gcp/gcloud.cue @@ -42,8 +42,15 @@ import ( args: ["gcloud", "-q", "config", "set", "project", config.project] }, - op.#Exec & { - args: ["gcloud", "-q", "config", "set", "compute/region", config.region] + if config.region != null { + op.#Exec & { + args: ["gcloud", "-q", "config", "set", "compute/region", config.region] + } + }, + if config.zone != null { + op.#Exec & { + args: ["gcloud", "-q", "config", "set", "compute/zone", config.zone] + } }, ] } diff --git a/stdlib/gcp/gcp.cue b/stdlib/gcp/gcp.cue index 18e71dff..ab439e75 100644 --- a/stdlib/gcp/gcp.cue +++ b/stdlib/gcp/gcp.cue @@ -8,9 +8,11 @@ import ( // Base Google Cloud Config #Config: { // GCP region - region: string @dagger(input) + region: dagger.#Input & {*null | string} + // GCP zone + zone: dagger.#Input & {*null | string} // GCP project - project: string @dagger(input) + project: dagger.#Input & {string} // GCP service key - serviceKey: dagger.#Secret @dagger(input) + serviceKey: dagger.#Input & {dagger.#Secret} } diff --git a/stdlib/universe.bats b/stdlib/universe.bats index cbaad899..cb85c73f 100644 --- a/stdlib/universe.bats +++ b/stdlib/universe.bats @@ -169,7 +169,7 @@ setup() { } @test "google cloud: gke" { - dagger -e google-gke up + dagger -e google-gke up } @test "google cloud: secretmanager" {