Helm Installation
The Helm chart is the recommended way to install Nantian Gateway. It packages the control plane, data plane, dashboard, RBAC, NetworkPolicies, services, ConfigMaps, and the default GatewayClass into one release.
Prerequisites
Section titled “Prerequisites”Install the Gateway API standard CRDs first:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/standard-install.yamlkubectl get crd gateways.gateway.networking.k8s.ioYou also need Helm 3.x and kubectl access to the target cluster.
Add The Chart Repository
Section titled “Add The Chart Repository”Use the current chart repository URL:
helm repo add nantian-gw https://charts.nantian.devhelm repo updateDo not use the legacy plural chart host.
Install With Defaults
Section titled “Install With Defaults”helm install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespaceThe default release creates namespace nantian-gw, two control plane replicas, two data plane replicas, one dashboard replica, the fixed services listed in the installation overview, and a GatewayClass named nantian-gw.
Preview the rendered manifests before installing:
helm template nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw > rendered.yamlhelm install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ --dry-runKey Default Values
Section titled “Key Default Values”These snippets match the current chart defaults.
Global And GatewayClass
Section titled “Global And GatewayClass”global: imageRegistry: "ghcr.io" imagePullSecrets: [] commonLabels: {}
gatewayClass: enabled: true controllerName: "gateway.networking.k8s.io/nantian-gw"The chart derives the default GatewayClass name from the controller name, so gateway.networking.k8s.io/nantian-gw becomes nantian-gw.
Control Plane
Section titled “Control Plane”controlplane: enabled: true replicas: 2 image: repository: "nantian-gw/nantian-controlplane" tag: "latest" pullPolicy: Always config: grpcAddr: ":18080" adminAddr: ":18081" metricsAddr: ":18082" healthProbeAddr: ":18083" features: enableExperimentalGateway: false enableAiGateway: falseThe control plane service split is:
| Service | Port |
|---|---|
nantian-gw-controlplane-grpc | 18080 |
nantian-gw-controlplane-admin | 18081 |
nantian-gw-controlplane-metrics | 18082 |
Data Plane
Section titled “Data Plane”dataplane: enabled: true replicas: 2 image: repository: "nantian-gw/dataplane" tag: "latest" pullPolicy: Always resources: requests: cpu: "250m" memory: "256Mi" limits: cpu: "2000m" memory: "1Gi" config: adminAddr: "0.0.0.0:19080" runtime: httpListenAddr: "0.0.0.0:10080" experimental: enableExperimentalGateway: false enableAiGateway: false accessLogVolume: enabled: true name: access-logs mountPath: /var/log/nantian-gw sizeLimit: 256MiThe data plane services are nantian-gw-dataplane-admin and nantian-gw-dataplane-metrics; both use service port 19080. Runtime HTTP traffic is handled by the configured listener 0.0.0.0:10080.
Dashboard
Section titled “Dashboard”dashboard: enabled: true replicas: 1 image: repository: "nantian-gw/dashboard" tag: "latest" pullPolicy: AlwaysDisable the dashboard when you do not need the web UI:
helm upgrade --install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ --set dashboard.enabled=falseHPA, ServiceMonitor, And NetworkPolicy
Section titled “HPA, ServiceMonitor, And NetworkPolicy”hpa: enabled: false
serviceMonitor: enabled: false
networkPolicies: enabled: trueEnable serviceMonitor.enabled only when the Prometheus Operator CRDs are installed. HPA is off by default; enable it when your cluster has metrics-server and you have validated data plane resource requests.
Common Overrides
Section titled “Common Overrides”Use a values file for changes you want to keep:
helm upgrade --install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ -f my-values.yamlExample private registry and replica override:
global: imageRegistry: "registry.example.com" imagePullSecrets: - name: registry-credentials
dataplane: replicas: 4Experimental Features
Section titled “Experimental Features”Experimental Gateway policy, AI, token policy, and Wasm behavior is disabled by default. Configure both planes before using the experimental APIs:
- Control plane:
controlplane.config.features.enableExperimentalGateway - Control plane:
controlplane.config.features.enableAiGateway - Data plane:
dataplane.config.experimental.enableExperimentalGateway - Data plane:
dataplane.config.experimental.enableAiGateway
See Experimental Features for the complete startup, CRD, and verification flow.
Verify The Release
Section titled “Verify The Release”kubectl get pods -n nantian-gwkubectl get gatewayclass nantian-gwkubectl get svc -n nantian-gwhelm status nantian-gw -n nantian-gwIf the data plane does not become ready, check whether it can connect to nantian-gw-controlplane-grpc:18080 and read the control plane and data plane logs.
Upgrade And Uninstall
Section titled “Upgrade And Uninstall”Upgrade an existing release:
helm upgrade nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ -f my-values.yamlRemove the release:
helm uninstall nantian-gw -n nantian-gwkubectl delete namespace nantian-gwHelm uninstall removes chart-managed resources. Gateway API CRDs and application resources you created outside the chart are not removed by the chart uninstall.