Correct typos

Rename module to be consistent with the real name of the GCP service
Add link to the module on READMEs
This commit is contained in:
Lorenzo Caggioni
2020-06-24 17:59:57 +02:00
parent 6356ce628c
commit 825a159990
8 changed files with 141 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ Specific modules also offer support for non-authoritative bindings (e.g. `google
- [address reservation](./net-address)
- [Cloud DNS](./dns)
- [Cloud NAT](./net-cloudnat)
- [Cloud Endpoints](./endpoints)
- [L4 Internal Load Balancer](./net-ilb)
- [Service Directory](./service-directory)
- [VPC](./net-vpc)

36
modules/endpoints/main.tf Normal file
View File

@@ -0,0 +1,36 @@
/**
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
locals {
iam_roles_bindings = {
for k in var.iam_roles : k => lookup(var.iam_members, k, [])
}
}
resource "google_endpoints_service" "default" {
project = var.project_id
service_name = var.service_name
openapi_config = var.openapi_config != null ? file(var.openapi_config.yaml_path) : null
grpc_config = var.grpc_config != null ? file(var.grpc_config.yaml_path) : null
protoc_output_base64 = var.grpc_config != null ? base64encode(file(var.grpc_config.protoc_output_path)) : null
}
resource "google_endpoints_service_iam_binding" "default" {
for_each = local.iam_roles_bindings
service_name = google_endpoints_service.default.service_name
role = "roles/${each.key}"
members = each.value
}

View File

@@ -0,0 +1,30 @@
/**
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
output "service_name" {
description = "The name of the service.."
value = google_endpoints_service.default.service_name
}
output "endpoints_service" {
description = "The Endpoint service resource."
value = google_endpoints_service.default
}
output "endpoints" {
description = "A list of Endpoint objects."
value = google_endpoints_service.default.endpoints
}

View File

@@ -0,0 +1,53 @@
/**
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
variable "grpc_config" {
description = "The configuration for a gRPC enpoint. Either this, openapi_config must be specified."
type = object({
yaml_path = string
protoc_output_path = string
})
}
variable "iam_roles" {
description = "Authoritative for a given role. Updates the IAM policy to grant a role to a list of members."
type = list(string)
default = []
}
variable "iam_members" {
description = "Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the instance are preserved."
type = map(list(string))
default = {}
}
variable "openapi_config" {
description = "The configuration for an OpenAPI endopoint. Either this, grpc_config must be specified."
type = object({
yaml_path = string
})
}
variable "project_id" {
description = "The project ID that the service belongs to."
type = string
default = null
}
variable "service_name" {
description = "The name of the service. Usually of the form '$apiname.endpoints.$projectid.cloud.goog'."
type = string
}

View File

@@ -0,0 +1,19 @@
/**
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
terraform {
required_version = ">= 0.12.6"
}