Networking

Give users and clients an HTTPS endpoint, then configure the routes and public URLs to match it.

Public URLs and Ingress

  1. Configure DNS and TLS for your Archestra host.
  2. Set ARCHESTRA_FRONTEND_URL to the public UI URL and ARCHESTRA_API_BASE_URL to every public backend or gateway URL. API base URLs accept a comma-separated list. Use https:// even when TLS terminates at a load balancer.
  3. Route /v1 and /v2 to backend port 9000, and / to frontend port 3000. Keep /api/auth on the frontend.
  4. Connect a client through the public endpoint and test a streaming model request and an MCP tool call.

The chart applies this split for archestra.ingress.hosts. A complete archestra.ingress.spec or external routing layer must apply it explicitly.

Gateway OAuth discovery uses the configured public URLs. An unconfigured host falls back to the request scheme, which can advertise HTTP behind a TLS-terminating proxy. ARCHESTRA_TRUST_PROXY does not change that rule.

If a reverse proxy requires sign-in, let /connect.md, /llms.txt, and setup endpoints under /api/client-connections and /api/connection-setups/script load without a browser session. Also allow /v1/connection-instructions through; it checks the installation credential and current access itself.

Streaming Timeouts

Set the ingress response timeout long enough for model responses. If your load balancer's backend idle-connection timeout exceeds Archestra's keep-alive timeout, raise ARCHESTRA_HTTP_KEEP_ALIVE_TIMEOUT_MS above it.

MCP Apps Sandbox

Production apps that need persistent browser storage require a sandbox domain. Without one, apps use an opaque iframe origin.

  1. Choose a domain such as mcp.example.com.
  2. Create wildcard DNS and TLS for *.mcp.example.com.
  3. Route that wildcard host to backend port 9000.
  4. Set ARCHESTRA_MCP_SANDBOX_DOMAIN=mcp.example.com.
  5. Open an app and confirm it renders through its sandbox host.

Allowed embedding origins follow ARCHESTRA_FRONTEND_URL and ARCHESTRA_AUTH_ADDITIONAL_TRUSTED_ORIGINS. Local instances use localhost and 127.0.0.1 without a sandbox domain.

Enforce Workload Egress

Environment policies require a network dataplane that enforces them. Creating policy objects alone does not isolate workloads.

Domain rules need an FQDN policy provider; plain Kubernetes NetworkPolicy supports IP/CIDR rules only.

ClusterIP/CIDR enforcementDomain enforcement
EKS Auto ModeKubernetes NetworkPolicy, when enabledAWS ApplicationNetworkPolicy with the Auto Mode Network Policy Controller. DNS rules apply to Auto Mode EC2 workloads.
EKS with AWS VPC CNIKubernetes NetworkPolicy, when enabledNot supported outside Auto Mode DNS policies.
AKSKubernetes NetworkPolicy, when enabledCiliumNetworkPolicy when its CRD is available.
GKEKubernetes NetworkPolicy, when enabledFQDNNetworkPolicy with Dataplane V2 and FQDN policy enabled.
Cilium clustersKubernetes or Cilium policyCiliumNetworkPolicy.

Check your provider's setup: Kubernetes, Cilium, GKE, or EKS Auto Mode. Archestra adds the cluster-DNS bootstrap rule required by Auto Mode policies.

Public internet mode blocks private, metadata, loopback, and reserved destinations. Add only the private ranges a workload needs under Additional allowed CIDRs, or use an allowlist to restrict all outbound access. DNS to the cluster resolver remains allowed.

Code Sandbox Requirements

Managed Dagger engines need Linux nodes that allow privileged root pods with all Linux capabilities and dynamically provisioned ReadWriteOnce storage. These engines run separately from coding agent containers.

If your cluster cannot admit them, configure an external engine with ARCHESTRA_CODE_RUNTIME_DAGGER_RUNNER_HOST, or disable the sandbox with ARCHESTRA_CODE_RUNTIME_ENABLED=false or archestra.codeRuntime.enabled: false in Helm.