gcp
The gcp
connection can be used to access Google Cloud Platform resources.
connection "gcp" "gcp_def" { connections = "~/.config/gcloud/my_connections.json"}
Arguments
Name | Type | Required? | Description |
---|---|---|---|
credentials | String | Optional | Either the path to a JSON credential file that contains Google application credentials or the contents of a service account key file in JSON format. |
ttl | Number | Optional | The time, in seconds, to cache the connections. By default, the GP connection will be cached for 5 minutes. |
All arguments are optional, and a gcp
connection with no arguments will behave the same as the GCP default connection.
Attributes (Read-Only)
Attribute | Type | Description |
---|---|---|
access_token | String | An OAuth access token to use to authenticate to GCP. |
Default Connection
The GCP connection type includes an implicit, default connection (connection.gcp.default
) that will be configured using the same mechanism as the GCloud CLI (environment variables, config files, etc); the effective connections of this default are the same as if you run the gcloud
command. Connections will be loaded from:
- The path specified in the
GOOGLE_APPLICATION_CONNECTIONS
environment variable, if set; otherwise - The standard location (
~/.config/gcloud/application_default_connections.json
)
Examples
Static Connections from Connection File
connection "gcp" "gcp_def" { connections = "~/.config/gcloud/my_connections.json"}
Static Connections defined inline
connection "gcp_inline" { #project = "my_project" connections = <<EOC { "client_id": "blah-blah.apps.googleusercontent.com", "client_secret": "d-blah", "quota_project_id": "dev-aaa", "refresh_token": "1//blah-blah", "type": "authorized_user" } EOC}
Using GCP Connections in Container Step
pipeline "gcp_test" { param "connection" { type = string default = "default" }
step "container" "get_instances" { image = "gcr.io/google.com/cloudsdktool/google-cloud-cli" cmd = ["gcloud", "compute", "instances", "list"] env = { CLOUDSDK_CORE_PROJECT = "my-project" CLOUDSDK_AUTH_ACCESS_TOKEN = connections.gcp[param.connection].access_token } }}
Using GCP Connections in HTTP Step
pipeline "gcp_test" { param "connection" { type = string default = "default" }
step "http" "get_instances" { url = "https://compute.googleapis.com/compute/v1/projects/my-project/aggregated/instances"
request_headers = { Content-Type = "application/json; charset=utf-8" Authorization = "Bearer ${connections.gcp[param.connection].access_token}" } }}