kubernetes_manifests_deployer/kubernetes_manifests/multi_cluster_ingress.yaml (41 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. apiVersion: networking.gke.io/v1beta1 kind: MultiClusterService metadata: name: frontend-multi-cluster-service namespace: frontend # These Helm-related Annotations/Labels allow the Helm (inside Terraform) to control this resource. labels: app.kubernetes.io/managed-by: Helm annotations: meta.helm.sh/release-name: helm-chart-multi-cluster-ingress meta.helm.sh/release-namespace: frontend spec: template: spec: selector: app: frontend # label on the frontend Pods ports: - name: frontend protocol: TCP port: 80 # servicePort defined in MultiClusterIngress targetPort: 8080 # containerPort of the frontend Pods clusters: - link: "us-west1/my-cluster-usaRESOURCE_NAME_SUFFIX" - link: "europe-west1/my-cluster-europeRESOURCE_NAME_SUFFIX" --- apiVersion: networking.gke.io/v1beta1 kind: MultiClusterIngress metadata: name: frontend-multi-cluster-ingress namespace: frontend # These Helm-related Annotations/Labels allow the Helm (inside Terraform) to control this resource. labels: app.kubernetes.io/managed-by: Helm annotations: meta.helm.sh/release-name: helm-chart-multi-cluster-ingress meta.helm.sh/release-namespace: frontend networking.gke.io/static-ip: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/multi-cluster-ingress-ip-addressRESOURCE_NAME_SUFFIX spec: template: spec: backend: serviceName: frontend-multi-cluster-service servicePort: 80