Merge pull request #21254 from davewongillies/gcs
Add GCS source support for modules
This commit is contained in:
commit
59c5cc4788
|
@ -20,6 +20,7 @@ import (
|
||||||
var goGetterDetectors = []getter.Detector{
|
var goGetterDetectors = []getter.Detector{
|
||||||
new(getter.GitHubDetector),
|
new(getter.GitHubDetector),
|
||||||
new(getter.BitBucketDetector),
|
new(getter.BitBucketDetector),
|
||||||
|
new(getter.GCSDetector),
|
||||||
new(getter.S3Detector),
|
new(getter.S3Detector),
|
||||||
new(getter.FileDetector),
|
new(getter.FileDetector),
|
||||||
}
|
}
|
||||||
|
@ -44,6 +45,7 @@ var goGetterDecompressors = map[string]getter.Decompressor{
|
||||||
|
|
||||||
var goGetterGetters = map[string]getter.Getter{
|
var goGetterGetters = map[string]getter.Getter{
|
||||||
"file": new(getter.FileGetter),
|
"file": new(getter.FileGetter),
|
||||||
|
"gcs": new(getter.GCSGetter),
|
||||||
"git": new(getter.GitGetter),
|
"git": new(getter.GitGetter),
|
||||||
"hg": new(getter.HgGetter),
|
"hg": new(getter.HgGetter),
|
||||||
"s3": new(getter.S3Getter),
|
"s3": new(getter.S3Getter),
|
||||||
|
|
|
@ -22,6 +22,7 @@ import (
|
||||||
var goGetterDetectors = []getter.Detector{
|
var goGetterDetectors = []getter.Detector{
|
||||||
new(getter.GitHubDetector),
|
new(getter.GitHubDetector),
|
||||||
new(getter.BitBucketDetector),
|
new(getter.BitBucketDetector),
|
||||||
|
new(getter.GCSDetector),
|
||||||
new(getter.S3Detector),
|
new(getter.S3Detector),
|
||||||
new(getter.FileDetector),
|
new(getter.FileDetector),
|
||||||
}
|
}
|
||||||
|
@ -46,6 +47,7 @@ var goGetterDecompressors = map[string]getter.Decompressor{
|
||||||
|
|
||||||
var goGetterGetters = map[string]getter.Getter{
|
var goGetterGetters = map[string]getter.Getter{
|
||||||
"file": new(getter.FileGetter),
|
"file": new(getter.FileGetter),
|
||||||
|
"gcs": new(getter.GCSGetter),
|
||||||
"git": new(getter.GitGetter),
|
"git": new(getter.GitGetter),
|
||||||
"hg": new(getter.HgGetter),
|
"hg": new(getter.HgGetter),
|
||||||
"s3": new(getter.S3Getter),
|
"s3": new(getter.S3Getter),
|
||||||
|
|
|
@ -31,6 +31,8 @@ types, as listed below.
|
||||||
|
|
||||||
* [S3 buckets](#s3-bucket)
|
* [S3 buckets](#s3-bucket)
|
||||||
|
|
||||||
|
* [GCS buckets](#gcs-bucket)
|
||||||
|
|
||||||
Each of these is described in the following sections. Module source addresses
|
Each of these is described in the following sections. Module source addresses
|
||||||
use a _URL-like_ syntax, but with extensions to support unambiguous selection
|
use a _URL-like_ syntax, but with extensions to support unambiguous selection
|
||||||
of sources and additional features.
|
of sources and additional features.
|
||||||
|
@ -375,6 +377,30 @@ preferring those earlier in the list when multiple are available:
|
||||||
* If running on an EC2 instance, temporary credentials associated with the
|
* If running on an EC2 instance, temporary credentials associated with the
|
||||||
instance's IAM Instance Profile.
|
instance's IAM Instance Profile.
|
||||||
|
|
||||||
|
## GCS Bucket
|
||||||
|
|
||||||
|
You can use archives stored in Google Cloud Storage as module sources using the special `gcs::`
|
||||||
|
prefix, followed by
|
||||||
|
[a GCS bucket object URL](https://cloud.google.com/storage/docs/request-endpoints#typical).
|
||||||
|
|
||||||
|
For example
|
||||||
|
|
||||||
|
* `gcs::https://www.googleapis.com/storage/v1/BUCKET_NAME/PATH_TO_MODULE`
|
||||||
|
* `gcs::https://www.googleapis.com/storage/v1/BUCKET_NAME/PATH/TO/module.zip`
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
module "consul" {
|
||||||
|
source = "gcs::https://www.googleapis.com/storage/v1/modules/foomodule.zip"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The module installer uses Google Cloud SDK to authenticate with GCS. To set credentials you can:
|
||||||
|
|
||||||
|
* Enter the path of your service account key file in the GOOGLE_APPLICATION_CREDENTIALS environment variable, or;
|
||||||
|
* If you're running Terraform from a GCE instance, default credentials are automatically available. See [Creating and Enabling Service Accounts](https://cloud.google.com/compute/docs/authentication) for Instances for more details
|
||||||
|
* On your computer, you can make your Google identity available by running `gcloud auth application-default login`.
|
||||||
|
|
||||||
|
|
||||||
## Modules in Package Sub-directories
|
## Modules in Package Sub-directories
|
||||||
|
|
||||||
When the source of a module is a version control repository or archive file
|
When the source of a module is a version control repository or archive file
|
||||||
|
|
Loading…
Reference in New Issue