gateway/single-cluster/regional-l7-ilb/single-regional-l7-ilb-recipe.yaml (117 lines of code) (raw):

kind: Namespace apiVersion: v1 metadata: name: store --- apiVersion: apps/v1 kind: Deployment metadata: name: store-v1 namespace: store spec: replicas: 2 selector: matchLabels: app: store version: v1 template: metadata: labels: app: store version: v1 spec: containers: - name: whereami image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.20 ports: - containerPort: 8080 env: - name: METADATA value: "store-v1" --- apiVersion: v1 kind: Service metadata: name: store-v1 namespace: store spec: selector: app: store version: v1 ports: - port: 8080 targetPort: 8080 --- apiVersion: apps/v1 kind: Deployment metadata: name: store-v2 namespace: store spec: replicas: 2 selector: matchLabels: app: store version: v2 template: metadata: labels: app: store version: v2 spec: containers: - name: whereami image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.20 ports: - containerPort: 8080 env: - name: METADATA value: "store-v2" --- apiVersion: v1 kind: Service metadata: name: store-v2 namespace: store spec: selector: app: store version: v2 ports: - port: 8080 targetPort: 8080 --- kind: Gateway apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: single-cluster-gateway-rilb namespace: store spec: gatewayClassName: gke-l7-rilb listeners: - protocol: HTTP port: 80 routes: kind: HTTPRoute selector: matchLabels: gateway: single-cluster-gateway-rilb --- kind: HTTPRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: store-route-ilb namespace: store labels: gateway: single-cluster-gateway-rilb spec: hostnames: - "store.example.internal" rules: - forwardTo: - serviceName: store-v1 port: 8080 weight: 50 - serviceName: store-v2 port: 8080 weight: 50