gateway/single-cluster/global-l7-xlb/single-cluster-global-l7-xlb-recipe.yaml (153 lines of code) (raw):

--- apiVersion: v1 kind: Namespace metadata: name: gxlb-demo-ns1 --- apiVersion: v1 kind: Namespace metadata: name: gxlb-demo-ns2 --- apiVersion: apps/v1 kind: Deployment metadata: name: foo namespace: gxlb-demo-ns1 spec: replicas: 2 selector: matchLabels: app: foo template: metadata: labels: app: foo version: v1 spec: containers: - name: whereami image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.20 env: - name: METADATA value: "foo" ports: - name: http containerPort: 8080 readinessProbe: httpGet: path: /healthz port: 8080 scheme: HTTP --- apiVersion: v1 kind: Service metadata: name: foo namespace: gxlb-demo-ns1 spec: selector: app: foo ports: - port: 8080 targetPort: 8080 --- apiVersion: apps/v1 kind: Deployment metadata: name: bar namespace: gxlb-demo-ns2 spec: replicas: 2 selector: matchLabels: app: bar template: metadata: labels: app: bar version: v1 spec: containers: - name: whereami image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.20 env: - name: METADATA value: "bar" ports: - name: http containerPort: 8080 readinessProbe: httpGet: path: /healthz port: 8080 scheme: HTTP --- apiVersion: v1 kind: Service metadata: name: bar namespace: gxlb-demo-ns2 spec: selector: app: bar ports: - port: 8080 targetPort: 8080 --- kind: Gateway apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: external-http spec: gatewayClassName: gke-l7-gxlb listeners: - protocol: HTTPS port: 443 routes: kind: HTTPRoute namespaces: from: "All" tls: mode: Terminate options: networking.gke.io/pre-shared-certs: gxlb-cert addresses: - type: NamedAddress value: gke-gxlb-ip --- kind: HTTPRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: foo namespace: gxlb-demo-ns1 spec: gateways: allow: FromList gatewayRefs: - name: external-http namespace: default hostnames: - "foo.$DOMAIN" rules: - forwardTo: - serviceName: foo port: 8080 --- kind: HTTPRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: bar namespace: gxlb-demo-ns2 spec: gateways: allow: FromList gatewayRefs: - name: external-http namespace: default hostnames: - "bar.$DOMAIN" rules: - forwardTo: - serviceName: bar port: 8080