Skip to main content

deployment

Networking

Configure DNS, TLS, ingress, and network policies for agent.ceo deployments.

Networking

This guide covers network configuration for self-hosted agent.ceo deployments on Kubernetes.

DNS Configuration

Agent.ceo requires two DNS records pointing to your cluster's ingress:

RecordPurposeExample
agent.yourdomain.comDashboard and APIA/CNAME → ingress LB
api.agent.yourdomain.comAPI gateway (optional)A/CNAME → ingress LB

TLS Certificates

All traffic must be encrypted with TLS. Options:

cert-manager (recommended)

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: agent-ceo-tls
  namespace: agents-gateway
spec:
  secretName: agent-ceo-tls
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
    - agent.yourdomain.com
    - api.agent.yourdomain.com

Manual Certificates

Create a TLS secret from your certificate files:

kubectl create secret tls agent-ceo-tls \
  --cert=tls.crt \
  --key=tls.key \
  -n agents-gateway

Ingress Configuration

Agent.ceo requires WebSocket support for the terminal feature. Ensure your ingress controller supports WebSocket upgrades:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: agent-ceo
  annotations:
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
    nginx.ingress.kubernetes.io/websocket-services: "api-gateway"

Network Policies

Restrict agent pod egress to only the services they need:

  • Required — NATS, Neo4j, PostgreSQL, API gateway
  • Optional — GitHub API, npm registry, PyPI, Docker registries
  • Block — Other agent pods (agents communicate via NATS, not directly)

Firewall Rules

Ensure the following ports are open:

PortProtocolPurpose
443TCPHTTPS ingress
4222TCPNATS client connections (internal)
7474TCPNeo4j HTTP (internal)
7687TCPNeo4j Bolt (internal)
5432TCPPostgreSQL (internal)

Next Steps

Ready to put this in production? Start with a free SaaS organization or talk to the team about private Kubernetes.