Documentation Index
Fetch the complete documentation index at: https://docs.emergence.ai/llms.txt
Use this file to discover all available pages before exploring further.
Networking
CRAFT uses Gateway API for traffic routing, cert-manager for TLS certificate lifecycle, and external-dns for automatic DNS record management. This guide covers the networking stack across cloud and on-premises environments.Gateway API
EM-Runtime uses the Kubernetes Gateway API (v1) for all external traffic routing. Gateway API replaces traditional Ingress with a more expressive, role-oriented model.Ingress Flow
Gateway Resource
The Gateway resource defines the load balancer and listeners. It must exist before the em-runtime chart deploys HTTPRoutes.HTTPRoute Rules
The em-runtime Helm chart creates an HTTPRoute with these default rules:| Path Prefix | Backend Service | Port | URL Rewrite |
|---|---|---|---|
/keycloak | keycloak | 8080 | None (pass-through) |
/api/governance | em-runtime-governance | 8000 | /governance |
/api/assets | em-runtime-assets | 8000 | /assets |
/api/utils | em-runtime-utils | 8000 | /utils |
Gateway Controllers by Platform
| Platform | Controller | GatewayClassName |
|---|---|---|
| GKE | GKE Gateway Controller (built-in) | gke-l7-global-external-managed |
| EKS | AWS Load Balancer Controller | aws-application-load-balancer |
| AKS | Azure Application Gateway | azure-application-gateway |
| On-Prem | NGINX Gateway Fabric | nginx |
| On-Prem | Envoy Gateway | eg |
Configuration in Helm
cert-manager
cert-manager automates TLS certificate provisioning and renewal. It supports ACME (Let’s Encrypt) and internal CA issuers.Certificate Flow
Installation
Install cert-manager with Gateway API support:ClusterIssuer Configuration
- Let's Encrypt (Production)
- Internal CA (On-Prem)
DNS-01 Solver by Provider
| Provider | Solver | IAM Requirement |
|---|---|---|
| GCP Cloud DNS | dns01.cloudDNS | Workload Identity service account |
| AWS Route 53 | dns01.route53 | IRSA role with Route 53 permissions |
| Azure DNS | dns01.azureDNS | Workload Identity managed identity |
| On-Prem (BIND) | dns01.rfc2136 | TSIG key for dynamic DNS updates |
Gateway Annotation
Annotate the Gateway to trigger automatic certificate provisioning:external-dns
external-dns synchronizes Kubernetes resources (Gateway, Service, Ingress) with DNS providers, automatically creating A/CNAME records.How It Works
- external-dns watches Gateway and Service resources for hostname annotations
- When a Gateway gets an external IP, external-dns creates a DNS A record
- Records are updated or removed as resources change
Configuration by Provider
- GCP Cloud DNS
- AWS Route 53
- On-Prem (RFC2136)
dns.admin role.TLS Requirements
| Boundary | Requirement |
|---|---|
| Client to load balancer | TLS 1.2+ (certificate required) |
| Load balancer to pods | HTTP (in-cluster; TLS optional) |
| Services to PostgreSQL | SSL recommended (private network) |
| Services to Redis | TLS supported (rediss:// scheme) |
Network Policies
For on-premises deployments, configure Kubernetes NetworkPolicies for defense in depth:Restrict data-insights egress to allowlisted LLM API endpoints (OpenAI, Anthropic, Vertex AI) for SSRF mitigation.
Firewall Rules
Ensure the following traffic is permitted:| Direction | Port | Protocol | Purpose |
|---|---|---|---|
| Inbound | 443 | TCP | HTTPS from clients |
| Inbound | 80 | TCP | HTTP redirect to HTTPS |
| Cluster to DB | 5432 | TCP | PostgreSQL |
| Cluster to Cache | 6379 | TCP | Redis |
| Cluster to S3 | 443 | TCP | Object storage |
| Cluster to LLM | 443 | TCP | LLM API endpoints (data-insights) |
DNS Architecture
One DNS A record pointing the platform hostname to the load balancer IP/CNAME:Troubleshooting
Certificate not provisioning
Certificate not provisioning
Gateway not getting external IP
Gateway not getting external IP
DNS records not created
DNS records not created
Next Steps
Prerequisites
Complete networking prerequisites and firewall rules.

