At the time this article is being written the instructions given on the following documentation page for configuring a static IP address for the Istio Ingress Gateway has become obsolete with Hybrid v1.3: https://cloud.google.com/apigee/docs/hybrid/v1.3/static-ip
Now, with Hybrid v1.3 the Istio Ingress Gateway IP address needs to be configured with Anthos Service Mesh (ASM) configuration file (istio-operator.yaml). Please find instructions for this below:
1. Reserve a static IP address for the Istio Ingress Load Balancer using gcloud CLI:
STATIC_IP_ADDRESS_NAME="apigee-ingress-loadbalancer" gcloud compute addresses create $STATIC_IP_ADDRESS_NAME --region $REGION
Reference: https://cloud.google.com/sdk/gcloud/reference/compute/addresses/create
2. Find the static ip address allocated:
gcloud compute addresses list --format json --filter "name=$STATIC_IP_ADDRESS_NAME" --format="get(address)" export STATIC_IP_ADDRESS=$(gcloud compute addresses list --format json --filter "name=$STATIC_IP_ADDRESS_NAME" --format="get(address)")
3. Set the $STATIC_IP_ADDRESS value in the Anthos Service Mesh (ASM) configuration file (istio-operator.yaml) using the "loadBalancerIP" property:
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator metadata: clusterName: "hybrid-example/us-central1/example-cluster" # {"$ref":"#/definitions/io.k8s.cli.substitutions.cluster-name"} spec: profile: asm ... components: pilot: k8s: hpaSpec: maxReplicas: 2 ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: # Static IP address value ($STATIC_IP_ADDRESS)
Please refer the following documentation page for the complete ASM configuration to be applied in istio-operator.yaml file: https://cloud.google.com/apigee/docs/hybrid/v1.3/install-download-cert-manager-istio#update-the-asm-...
4. Afterwards, execute the following command within istio-1.5.8-asm.0 folder to apply the overridden settings to ASM:
./bin/istioctl manifest apply --set profile=asm -f asm/cluster/istio-operator.yaml
5. Once completed, get Istio Ingress Gateway service definition and verify the value of "loadBalancerIP" property:
kubectl -n=istio-system get services/istio-ingressgateway -o=yaml
@imesh Please let us know, how above information will change for Apigee Hybrid 1.8 if going with Apigee Ingress instead of ASM