Documentation Index
Fetch the complete documentation index at: https://arize-ax.mintlify.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
Overview
If you are not using the Google Cloud HTTP(S) load balancer path, you can expose Arize with NGINX Ingress (NGINX Inc), NGINX Gateway Fabric, ingress-nginx (community), Istio, Kong, or another controller that supports TLS, long-lived connections, and gRPC where needed.Pick your controller
| You already run (or plan to run)… | Start here |
|---|---|
NGINX Ingress Controller (F5 NGINX Inc, Ingress API) | NGINX Ingress Controller (NGINX Inc) — nginx/.../nginx-ingress.yaml |
| NGINX Gateway Fabric (Gateway API) | NGINX Gateway Fabric (Gateway API) — nginx/.../nginx-gateway-fabric.yaml |
| ingress-nginx (Kubernetes community chart) | Community ingress-nginx (legacy) — migration path to NGINX Inc |
| Istio ingress gateway | Istio — istio/app-services.yaml |
| Kong Ingress Controller | Kong — kong/app-services.yaml |
- The Arize operator has created the
internalendpoints-appServicein thearizenamespace (TLS on port 443). - You replace placeholder domains and TLS material before
kubectl apply. - You align
appBaseUrl/expBaseUrl(andingressMode) invalues.yamlwith your hostname plan—see Configuring ingress endpoints, especially the Ingress Controllers table foringressModeand optional pod TLS fields.
ingressClassName (or Gateway gatewayClassName) to match the class installed in your cluster.
NGINX Ingress Controller (NGINX Inc)
Paths:nginx/single-endpoint/nginx-ingress.yaml and nginx/multi-endpoint/nginx-ingress.yamlDocs: NGINX Ingress Controller (OSS or NGINX Plus) These manifests use the
networking.k8s.io/v1 Ingress API with ingressClassName: nginx. Traffic is forwarded to internalendpoints-app:443. TLS is terminated at the ingress using a kubernetes.io/tls secret in arize (for example arize-app-services-tls in the single-endpoint file).
Single host (nginx/single-endpoint/nginx-ingress.yaml):
- One hostname (
{{CUSTOMER_DOMAIN}}) for UI, GraphQL, REST, OTLP, and Arrow Flight through the unified internal endpoint service. ConfigMapnginx-ingressin your NGINX install namespace (default comment usesnginx-ingress) setshttp2: "true"so gRPC and HTTP/2 behave correctly—rename the ConfigMap or namespace if your Helm release differs (for example NGINX Plus chart defaults).- Key
Ingressannotations:nginx.org/ssl-servicesandnginx.org/grpc-servicesset tointernalendpoints-app, plus longproxy-read-timeout/proxy-send-timeout(7200s) for large exports and streams.
nginx/multi-endpoint/nginx-ingress.yaml):
- Separate
Ingressobjects per role:arize-app(UI / GraphQL),arize-api(REST),arize-otlp(OTLP),arize-flight(Arrow Flight), each with its own TLS secret and host ({{CUSTOMER_APP_DOMAIN}},{{CUSTOMER_API_DOMAIN}}, etc.). - OTLP and Flight ingresses include
nginx.org/grpc-services: "internalendpoints-app"; app/API ingresses rely onnginx.org/ssl-servicesfor HTTPS to the backend.
values.yaml alignment (from file headers):
- Single-endpoint:
appBaseUrl: "https://{{CUSTOMER_DOMAIN}}",expBaseUrl: "{{CUSTOMER_DOMAIN}}". - Multi-endpoint:
appBaseUrl: "https://{{CUSTOMER_APP_DOMAIN}}",expBaseUrl: "{{CUSTOMER_FLIGHT_DOMAIN}}"(Flight host for export-related settings).
kubectl -n arize describe ingress <name>.
NGINX Gateway Fabric (Gateway API)
Paths:nginx/single-endpoint/nginx-gateway-fabric.yaml and nginx/multi-endpoint/nginx-gateway-fabric.yamlDocs: NGINX Gateway Fabric These examples use the Kubernetes Gateway API (
Gateway, HTTPRoute, GRPCRoute) with gatewayClassName: nginx. Client TLS is terminated on the Gateway using arize-app-services-tls. The backend is still internalendpoints-app:443 (HTTPS/gRPC on the pod side).
Single-endpoint file highlights:
BackendTLSPolicyvalidates the upstream using a CA stored in ConfigMapbackend-cert—populateca.crtwith PEM from the backend secret, for example:
HTTPRouteandGRPCRouteattach to the sameGatewayand route all paths tointernalendpoints-appport 443.
GatewayClass named nginx (or edit gatewayClassName to match your installation).
Community ingress-nginx (legacy)
Paths:nginx/single-endpoint/nginx-legacy.yaml and nginx/multi-endpoint/nginx-legacy.yamlDocs: ingress-nginx The upstream ingress-nginx project is headed for retirement; the manifest headers link to the Kubernetes announcement and recommend NGINX Inc or Gateway Fabric for new deployments. These examples mirror the NGINX Inc layout but use
nginx.ingress.kubernetes.io/* annotations and spec.ingressClassName: nginx. The backend is internalendpoints-app:443 with nginx.ingress.kubernetes.io/backend-protocol: GRPCS in the single-endpoint sample so the controller speaks TLS+gRPC to the service.
Use only if you already run community ingress-nginx and are planning a migration.
Istio
Paths:istio/app-services.yaml and (optional) istio/envoy-filter-http2.yamlDocs: Istio ingress gateway
istio/app-services.yaml defines:
Gatewayarize-app-services-gwinarize, bound to pods withistio: ingressgateway, port 443, TLS mode SIMPLE, andcredentialName: arize-app-services-tls(create this TLS secret inarizeso Istio can mount it for the gateway).VirtualServicerouting hostarize-app.<domain>tointernalendpoints-app:443for all paths.EnvoyFilterflightserver-http2-settingstuning HTTP/2 frame limits for workloads labeledapp: flightserver(Arrow Flight throughput).
istio/envoy-filter-http2.yaml contains the same EnvoyFilter tuning as a standalone file—use it if you prefer to manage that object separately; do not duplicate the same resource name if you already applied app-services.yaml.
Set ingressMode: istio in values.yaml per Configuring ingress endpoints. Replace arize-app.<domain> in the manifest with your real hostname; keep appBaseUrl / expBaseUrl consistent.
Kong
Path:kong/app-services.yaml
Single Ingress with ingressClassName: kong, TLS host arize-app.<domain>, and backend internalendpoints-app:443. Kong annotations request HTTPS and gRPCS to the upstream, no body size cap, and long read/write timeouts (2 hours) to match large exports:
konghq.com/protocols: https,grpcskonghq.com/read-timeout/write-timeout/connect-timeoutin milliseconds
arize-app-services-tls referenced in the manifest. Install the Kong Ingress Controller and a matching IngressClass named kong (or change ingressClassName).
Use ingressMode: tls (default for Kong in the shared controller table) unless your platform team specifies otherwise.
After you apply
kubectl -n arize describe ingress <name>(orkubectl describe gateway/ routes for Gateway API) until addresses are assigned.- Create DNS A/AAAA (or CNAME) records to that address.
- Update
values.yamlwithappBaseUrlandexpBaseUrl, then upgrade the release or operator values as you do for other changes. - Confirm
ingressModeand anyinternalEndpointsAppTlsCert/internalEndpointsAppTlsKeyrequirements from the Ingress Controllers table.
Cross-reference
- GCP Google load balancer path: Ingress with GCP load balancer.
- AWS, Azure, OpenShift, and generic controller guidance: Configuring ingress endpoints.