This procedure describes adding additional Cloud Service Mesh gateways to your Apigee hybrid
installation.
Installing additional Cloud Service Mesh gateways
In the Cloud Service Mesh overlay.yaml file you can add more ingress gateways by
following a similar pattern as the one below. Note that the
spec.components[].label and spec.components[].k8s.service.selector
elements allow you to associate a named ingress gateway with a specific virtual host, as
explained in Targeting an ingress to a virtual host.
Follow the Cloud Service Mesh documentation for your platform to apply the changes.
Targeting an Cloud Service Mesh/istio ingress to a virtual host
You can target a labeled Cloud Service Mesh/istio ingress gateway to a specific virtual host in your overrides file.
This configuration specifies the ingress gateway where Apigee will apply the virtual host's configuration. In
the following example, traffic to virtual host milk-vh is directed through
the ingress labeled dairy and traffic to the other two virtual hosts goes through
the vegetables ingress. The ingresses must be properly labeled, as explained in
Installing additional Apigee ingress gateway gateways.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eThis procedure outlines how to add extra Cloud Service Mesh gateways to an existing Apigee hybrid setup.\u003c/p\u003e\n"],["\u003cp\u003eAdditional ingress gateways can be specified in the Cloud Service Mesh \u003ccode\u003eoverlay.yaml\u003c/code\u003e file, utilizing elements such as \u003ccode\u003espec.components[].label\u003c/code\u003e and \u003ccode\u003espec.components[].k8s.service.selector\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eYou can direct traffic to particular virtual hosts by associating them with labeled ingress gateways, enabling the routing of configuration and traffic.\u003c/p\u003e\n"],["\u003cp\u003eStarting from Apigee hybrid version 1.8, Apigee uses its ingress gateway, with instructions for adding more provided in the documentation.\u003c/p\u003e\n"]]],[],null,["# Adding multiple ingress gateways to customer-installed Cloud Service Mesh\n\n| You are currently viewing version 1.12 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\n\nThis procedure describes adding additional Cloud Service Mesh gateways to your Apigee hybrid\ninstallation.\n| **Note:** Starting with Apigee hybrid version 1.8, Apigee hybrid uses Apigee ingress gateway to provide an ingress gateway for your hybrid installation. To configure multiple Apigee ingress gateways, see [Managing Apigee ingress gateway](/apigee/docs/hybrid/v1.12/managing-ingress#installing-additional-apigee-ingress-gateway-gateways).\n\nInstalling additional Cloud Service Mesh gateways\n-------------------------------------------------\n\n\nIn the Cloud Service Mesh `overlay.yaml` file you can add more ingress gateways by\nfollowing a similar pattern as the one below. Note that the\n`spec.components[].label` and `spec.components[].k8s.service.selector`\nelements allow you to associate a named ingress gateway with a specific virtual host, as\nexplained in [Targeting an ingress to a virtual host](#targetvh). \n\n```\n apiVersion: install.istio.io/v1alpha1\n kind: IstioOperator\n spec:\n profile: asm-gcp\n # hub: gcr.io/gke-release/asm # {\"$ref\":\"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub\"}\n components:\n ingressGateways:\n - name: istio-ingressgateway-dairy\n enabled: true\n label:\n app: istio-ingressgateway\n ingress_name: dairy\n k8s:\n service:\n selector:\n app: istio-ingressgateway\n ingress_name: dairy\n type: LoadBalancer\n ports:\n - name: status-port\n port: 15021\n - name: http2\n port: 80\n targetPort: 8080\n - name: https\n port: 443\n targetPort: 8443\n hpaSpec:\n minReplicas: 1\n maxReplicas: 10\n - name: istio-ingressgateway-vegetables\n enabled: true\n label:\n app: istio-ingressgateway\n ingress_name: vegetables\n k8s:\n service:\n selector:\n app: istio-ingressgateway\n ingress_name: vegetables\n ports:\n - name: http2\n port: 80\n targetPort: 8080\n - name: status-port\n port: 15020\n - name: https\n port: 443\n targetPort: 8443\n hpaSpec:\n minReplicas: 1\n maxReplicas: 10\n resources:\n requests:\n cpu: 300m\n memory: 128Mi\n \n```\n\n\nFollow the Cloud Service Mesh documentation for your platform to apply the changes.\n\nTargeting an Cloud Service Mesh/istio ingress to a virtual host\n---------------------------------------------------------------\n\nYou can target a labeled Cloud Service Mesh/istio ingress gateway to a specific virtual host in your overrides file.\nThis configuration specifies the ingress gateway where Apigee will apply the virtual host's configuration. In\nthe following example, traffic to virtual host `milk-vh` is directed through\nthe ingress labeled `dairy` and traffic to the other two virtual hosts goes through\nthe `vegetables` ingress. The ingresses must be properly labeled, as explained in\n[Installing additional Apigee ingress gateway gateways](#installing).\n\n\n```\nvirtualhosts:\n - name: milk-vh\n sslCertPath: cert-milk.crt\n sslKeyPath: cert-milk.key\n selector:\n app: istio-ingressgateway\n ingress_name: dairy\n \n - name: carrots-vh\n sslCertPath: cert-carrots.crt\n sslKeyPath: cert-carrots.key\n selector:\n app: istio-ingressgateway\n ingress_name: vegetables\n \n - name: ginger-vh\n sslCertPath: cert-ginger.crt\n sslKeyPath: cert-ginger.key\n selector:\n app: apigee-ingressgateway\n ingress_name: vegetables\n \n```"]]