You are browsing documentation for an older version. See the latest documentation here.
Feature Gates
Upstream Kubernetes includes feature gates, which enable or disable features with flags and track the maturity of a feature using feature stages.
Here in the Kong Ingress Controller (KIC), the same definitions of feature gates
and feature stages
from upstream Kubernetes are used to define KIC’s list of features.
Using feature gates enables contributors to add and manage new (and potentially experimental) functionality to the KIC in a controlled manner. The features will be “hidden” until generally available (GA) and the progress and maturity of features on their path to GA will be documented. Feature gates also create a clear path for deprecating features.
See below for current features and their statuses, and follow the links to the relevant feature documentation:
Feature gates for alpha and beta features
Features that reach GA and become stable are removed from this table, but they can be found in the main KIC CRD documentation and guides. This table is an overview of features at various maturity levels:
Feature | Default | Stage | Since | Until |
---|---|---|---|---|
Knative | false |
Alpha | 0.8.0 | TBD |
Gateway | false |
Alpha | 2.2.0 | 2.5.0 |
CombinedRoutes | false |
Alpha | 2.4.0 | TBD |
Feature gates details
- The since and until rows in the table refer to KIC Releases.
- Most features will be planned using Kubernetes Enhancement Proposals (KEP). If you’re interested in developing features, familiarize yourself with KIC’s KEPs.
- Features that are currently in alpha or beta states may become deprecated at any time. Deprecated features are removed during the next minor release.
- Until a feature becomes GA, there are no guarantees that it’s going to continue being available. For more information, see the changelog.
Important: To avoid disruption to your services consider not using features until they have reached GA status.
Using feature gates
To enable feature gates, provide the --feature-gates
flag when launching KIC, or set the CONTROLLER_FEATURE_GATES
environment variable.
Feature gates consist of a comma-delimited set of key=value
pairs. For example, if you wanted to enable CombinedRoutes
and CombinedServices
, you’d set CONTROLLER_FEATURE_GATES=CombinedRoutes=true,CombinedServices=true
.
To enable features via Helm, set the following in your values.yaml
:
ingressController:
env:
feature_gates: CombinedRoutes=true,CombinedServices=true
Documentation
You can find feature preview documentation for alpha maturity features in the kubernetes-ingress-controller repository..