- Notifications
You must be signed in to change notification settings - Fork94
Executes Google Cloud CLI commands within Terraform
License
terraform-google-modules/terraform-google-gcloud
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This module allows you to use gcloud, gsutil, any gcloud component, and jq in Terraform. Sometimes, there isn't Terraform GCP support for a particular feature, or you'd like to do something each time Terraform runs (ie: upload a file to a Kubernetes pod) that lacks Terraform support.
This moduledoes not create any resources on GCP itself, rather exposes the GCP SDK to you for usage in null resources & external data resources.
Basic usage of this module is as follows:
module"gcloud" {source="terraform-google-modules/gcloud/google"version="~> 4.0"platform="linux"additional_components=["kubectl","beta"]create_cmd_entrypoint="gcloud"create_cmd_body="version"destroy_cmd_entrypoint="gcloud"destroy_cmd_body="version"}
Functional examples are included in theexamples directory.
Thejq binary is also included in this module so you can use it as well for either of yourcreate_cmd_entrypoint ordestroy_cmd_entrypoint values.
By default, this module assumes you already have gcloud installed in your $PATH.
If you need to run Terraform in environments without a gcloud binary available, you can override this behavior by setting theskip_download variable tofalse.
You can also override the behavior by setting theGCLOUD_TF_DOWNLOAD environment variable.This environment variable will override all other settings.Setting it tonever willnever gcloud download and setting it toalways will always download gcloud.
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| activate_service_account | Set to false to skip runninggcloud auth activate-service-account. Optional. | bool | true | no |
| additional_components | Additional gcloud CLI components to install. Defaults to none. Valid value are components listed ingcloud components list | list(string) | [] | no |
| create_cmd_body | On create, the command body you'd like to run with your entrypoint. | string | "info" | no |
| create_cmd_entrypoint | On create, the command entrypoint you'd like to use. Can also be set to a custom script. Module's bin directory will be prepended to path. | string | "gcloud" | no |
| create_cmd_triggers | List of any additional triggers to re-run the create command execution when either of values in the maps change. Some keys are reserved and will be overwritten if specified in this option. (eg.md5,arguments,download_gcloud_command,download_jq_command, etc. See details inthe source.) | map(any) | {} | no |
| destroy_cmd_body | On destroy, the command body you'd like to run with your entrypoint. | string | "info" | no |
| destroy_cmd_entrypoint | On destroy, the command entrypoint you'd like to use. Can also be set to a custom script. Module's bin directory will be prepended to path. | string | "gcloud" | no |
| enabled | Flag to optionally disable usage of this module. | bool | true | no |
| gcloud_download_url | Custom gcloud download url. Optional. | string | "" | no |
| gcloud_sdk_version | The gcloud sdk version to download. | string | "481.0.0" | no |
| jq_download_url | Custom jq download url. Optional. | string | "" | no |
| jq_version | The jq version to download. | string | "1.6" | no |
| module_depends_on | List of modules or resources this module depends on. | list(any) | [] | no |
| platform | Platform CLI will run on. Defaults to linux. Valid values: linux, darwin | string | "linux" | no |
| service_account_key_file | Path to service account key file to rungcloud auth activate-service-account with. Optional. | string | "" | no |
| skip_download | Whether to skip downloading gcloud (assumes gcloud is already available outside the module) | bool | true | no |
| upgrade | Whether to upgrade gcloud at runtime | bool | true | no |
| use_tf_google_credentials_env_var | UseGOOGLE_CREDENTIALS environment variable to rungcloud auth activate-service-account with. Optional. | bool | false | no |
| Name | Description |
|---|---|
| bin_dir | The full bin path of the modules executables |
| create_cmd_bin | The full bin path & command used on create |
| destroy_cmd_bin | The full bin path & command used on destroy |
| downloaded | Whether gcloud was downloaded or not |
| wait | An output to use when you want to depend on cmd finishing |
These sections describe requirements for using this module.
The following dependencies must be available:
- Terraform v0.12
- Terraform Provider for GCP plugin v2.0
- curl
A service account must be created, along with a key, to use this module.The service account must have the proper IAM roles for whatevercommands you're running with this module.
A project is not required to host resources of this module, sincethis module does not create any resources.
However you will likely need a project for your service accountand any resources you'd like to interact with while using this module.
Refer to thecontribution guidelines forinformation on contributing to this module.
About
Executes Google Cloud CLI commands within Terraform
Topics
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.