> ## Documentation Index
> Fetch the complete documentation index at: https://arize-ax.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Ingress on GCP (Google Cloud load balancer)

> Expose the Arize AX UI with a Google HTTP(S) load balancer using static IPs and the bundled GCP ingress examples.

## Overview

Use this path when you terminate TLS at the Google Cloud load balancer and use the ingress resources provided in the Arize AX distribution. Static IPs are recommended so DNS stays stable across cluster rebuilds; they are often created via the bundled Terraform (see [cluster Terraform](/docs/ax/selfhosting/installation/gcp/cluster-terraform)).

## Terraform and static IPs

Review `terraform/README.md` in your extracted distribution for parameters that reserve static IP names. Re-apply Terraform if you change those resources. Ingress annotations must reference the same global static IP resource names Terraform created.

## Example manifest

From the extracted distribution root:

```bash theme={null}
cp ./examples/endpoints/gcp/single-endpoint/app-services.yaml my-app-services.yaml
```

A multi-host variant lives under `examples/endpoints/gcp/multi-endpoint/` if your design uses separate hostnames.

Confirm the annotation matches your static IP name:

```yaml theme={null}
annotations:
  kubernetes.io/ingress.global-static-ip-name: arize-app-services
```

Replace placeholder hostnames with your organization’s domain and ensure DNS points at the load balancer IP. Verify resolution:

```bash theme={null}
nslookup arize-app.<my-organization-domain>
```

Apply:

```bash theme={null}
kubectl -n arize apply -f my-app-services.yaml
kubectl -n arize describe ingress arize-app-services
```

## Browser check

Open `https://arize-app.<my-organization-domain>`. Google-managed certificates can take time to provision; if you see a temporary TLS error, wait and retry (often on the order of tens of minutes).

## Configure app URLs in values.yaml

Set the URLs your deployment advertises (`appBaseUrl`, `expBaseUrl`):

```yaml theme={null}
appBaseUrl: "https://arize-app.<my-organization-domain>"
expBaseUrl: "arize-app.<my-organization-domain>"
```

Re-apply Helm values if you change them after the initial install.

## Set ingressMode

Set `ingressMode` in `values.yaml` to match your controller. For GCP HTTP(S) load balancing with TLS at the load balancer, the default `tls` mode is typical. See the **Ingress Controllers** table in [Configuring ingress endpoints](/docs/ax/selfhosting/installation/ingress/configuring-endpoints) for gRPC and OTLP considerations.
