infra/multi_cluster_service.tf (54 lines of code) (raw):
/**
* Copyright 2023 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.
*/
resource "google_project_iam_member" "my_service_account_role_network_viewer" {
project = var.project_id
role = "roles/compute.networkViewer"
member = "serviceAccount:${google_service_account.my_service_account.email}"
depends_on = [
module.enable_base_google_apis
]
}
resource "google_compute_global_address" "multi_cluster_ingress_ip_address" {
provider = google-beta
name = "multi-cluster-ingress-ip-address${var.resource_name_suffix}"
address_type = "EXTERNAL"
project = var.project_id
depends_on = [
module.enable_base_google_apis
]
}
resource "google_gke_hub_feature" "multi_cluster_ingress_feature" {
name = "multiclusteringress"
location = "global"
project = var.project_id
spec {
multiclusteringress {
config_membership = google_gke_hub_membership.my_fleet_membership_config.id
}
}
provider = google-beta
depends_on = [
module.enable_multi_cluster_google_apis
]
}
resource "google_project_iam_member" "gke_mcs_importer_iam_binding" {
project = var.project_id
role = "roles/compute.networkViewer"
member = "serviceAccount:${var.project_id}.svc.id.goog[gke-mcs/gke-mcs-importer]"
depends_on = [
resource.google_gke_hub_feature.multi_cluster_ingress_feature
]
}