Skip to content

Experimental Features

Nantian Gateway ships several experimental features that are disabled by default. These APIs are useful for testing AI routing, token policies, Wasm extensions, and experimental Gateway API policies, but their schemas and runtime behavior may change.

PlaneHelm valueDefaultControls
Control planecontrolplane.config.features.enableExperimentalGatewayfalseRegisters experimental Gateway-policy-related types including BackendLBPolicy, TokenPolicy, and WasmPlugin support in the control plane scheme.
Control planecontrolplane.config.features.enableAiGatewayfalseRegisters AIService support in the control plane scheme.
Data planedataplane.config.experimental.enableExperimentalGatewayfalseEnables data plane handling for experimental gateway runtime behavior where implemented.
Data planedataplane.config.experimental.enableAiGatewayfalseEnables data plane AI gateway runtime behavior where implemented.

Control plane flags decide which resources the manager can register and reconcile. Data plane flags decide which experimental runtime behavior is enabled after snapshots arrive.

Create experimental-values.yaml:

controlplane:
config:
features:
enableExperimentalGateway: true
enableAiGateway: true
dataplane:
config:
experimental:
enableExperimentalGateway: true
enableAiGateway: true

Apply it during install or upgrade:

Terminal window
helm upgrade --install nantian-gw nantian-gw/nantian-gw \
--namespace nantian-gw \
--create-namespace \
-f experimental-values.yaml

Restarted pods should pick up the rendered ConfigMaps. Check logs after the rollout to confirm both planes started with the intended configuration.

Kustomize users should edit or replace the ConfigMaps generated by the base manifests. The base gateway/deploy/kubernetes/base/kustomization.yaml uses:

  • gateway/configs/controlplane/config.yaml
  • gateway/configs/dataplane/config.yaml

The data plane repository also carries the runtime default at dataplane/configs/dataplane/config.yaml; keep it aligned when updating data plane-owned examples.

Control plane fragment:

features:
enableExperimentalGateway: true
enableAiGateway: true

Data plane fragment:

experimental:
enableExperimentalGateway: true
enableAiGateway: true

Use an overlay when possible instead of editing base files in-place.

Install the standard Gateway API CRDs for core resources such as Gateway and HTTPRoute. For experimental resources, you also need the relevant CRDs:

  • Gateway API experimental CRDs for BackendLBPolicy.
  • Nantian CRDs from the gateway base manifests:
    • aiservices.gateway.nantian.dev
    • tokenpolicies.gateway.nantian.dev
    • wasmplugins.gateway.nantian.dev

The Nantian CRDs are namespaced extension resources under gateway.nantian.dev/v1alpha1. BackendLBPolicy is a Gateway API experimental resource under gateway.networking.k8s.io/v1alpha2.

Check CRDs first:

Terminal window
kubectl get crd aiservices.gateway.nantian.dev
kubectl get crd tokenpolicies.gateway.nantian.dev
kubectl get crd wasmplugins.gateway.nantian.dev
kubectl get crd backendlbpolicies.gateway.networking.k8s.io

Then check running configuration through 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

Missing CRDs cause resource creation failures. Disabled control plane feature flags can make resources unavailable to the manager scheme. Disabled data plane flags can prevent experimental runtime behavior even when the control plane accepts the objects.

After the CRDs and flags are in place, create resources that match the current schemas. Start with Custom And Experimental Resources for examples of AIService, TokenPolicy, WasmPlugin, and BackendLBPolicy.