Skip to content

Installation Overview

Nantian Gateway runs in Kubernetes as three workloads: a Go control plane, a Rust data plane, and an optional dashboard. Helm is the recommended install path for most users and operators. Kustomize overlays are available when you need patch-based manifests or GitOps workflows.

MethodBest forNotes
HelmMost installations, upgrades, and value overrides.Uses the chart repository at https://charts.nantian.dev.
KustomizeGitOps or repository-local manifest customization.Uses overlays from the component repositories.

Install Gateway API CRDs before installing the gateway. The quick start uses the Gateway API v1.5.1 standard CRD bundle.

A default Helm install uses the nantian-gw namespace and creates these main resources:

ResourceDefault nameDefault count or portPurpose
Namespacenantian-gw1Component namespace when namespace.create: true.
Control plane Deploymentnantian-gw-controlplane2 replicasWatches Kubernetes resources, translates them, updates status, and publishes snapshots.
Data plane Deploymentnantian-gw-dataplane2 replicasReceives snapshots and handles runtime traffic.
Dashboard Deploymentnantian-gw-dashboard1 replicaWeb UI for users and operators.
GatewayClassnantian-gw1Uses controller gateway.networking.k8s.io/nantian-gw.

The Helm chart creates the GatewayClass; it does not create your application Gateway or HTTPRoute. Create those resources in application namespaces after installation.

The current Helm templates create fixed ClusterIP services for control plane, data plane admin/metrics, and dashboard access:

ServicePortPurpose
nantian-gw-controlplane-grpc18080Data plane xDS/gRPC connection.
nantian-gw-controlplane-admin18081Control plane admin API.
nantian-gw-controlplane-metrics18082Control plane Prometheus metrics.
nantian-gw-dataplane-admin19080Data plane admin API.
nantian-gw-dataplane-metrics19080Data plane metrics scrape entry.
nantian-gw-dashboard3000Dashboard web UI.

The data plane runtime HTTP listener is configured as 0.0.0.0:10080. Expose this listener according to your environment, for example with port-forwarding in local tests or a Kubernetes Service overlay for cluster ingress. Do not expose the control plane gRPC, admin, or metrics services outside the cluster.

The chart defaults are intentionally conservative:

  • Images use global.imageRegistry: "ghcr.io" with repositories nantian-gw/nantian-controlplane, nantian-gw/dataplane, and nantian-gw/dashboard.
  • Control plane and data plane each run two replicas by default; dashboard runs one replica.
  • HPA is disabled by default with hpa.enabled: false.
  • Prometheus Operator ServiceMonitor resources are disabled by default with serviceMonitor.enabled: false.
  • NetworkPolicies are enabled by default with networkPolicies.enabled: true.
  • The data plane has accessLogVolume.enabled: true, mounted at /var/log/nantian-gw with sizeLimit: 256Mi.
  • Experimental Gateway and AI features are disabled by default in both planes.

After installation, verify the workloads and GatewayClass:

Terminal window
kubectl get pods -n nantian-gw
kubectl get gatewayclass nantian-gw
kubectl get svc -n nantian-gw

If a pod is not ready, inspect recent logs:

Terminal window
kubectl logs -n nantian-gw deploy/nantian-gw-controlplane --tail=100
kubectl logs -n nantian-gw deploy/nantian-gw-dataplane --tail=100

Then create a demo Gateway and HTTPRoute as shown in the Quick Start.

  • Use Helm Installation for repository setup, default values, common overrides, and uninstall commands.
  • Use Experimental Features before creating AIService, TokenPolicy, WasmPlugin, or experimental BackendLBPolicy resources.
  • Use Operations for first checks after install, service names, logs, metrics, and admin access.