Skip to content

Latest commit

 

History

History
113 lines (90 loc) · 5.97 KB

FEATURES.md

File metadata and controls

113 lines (90 loc) · 5.97 KB

Features

The Kong Gateway Operator (KGO) enables provisioning and lifecycle management of Kong Gateways on Kubernetes and also includes automation for various related components (such as optional control-planes like the Kong Kubernetes Ingress Controller (KIC)) and configuration management to deploy the Kong Gateway in various deployment topologies.

The subsections that follow are a list of the current capabilities for this operator which are actively developed & maintained.

If you're interested in tracking or creating proposals for new features and capabilities, please see our KEPs. If you'd like to track the progress of development for active features or get involved and contribute in them, check our Github milestones and issues.

Kong Gateway Deployment & Configuration Management

We support the ability to create (and destroy) Gateways using the Kubernetes resource of the same name from Kubernetes Gateway API. A Gateway is comprised of multiple sub-components "under the hood" including the Kong Gateway (implemented via the DataPlane API) and the Kong Kubernetes Ingress Controller (KIC) (implemented via the ControlPlane API).

Declarative configuration management for Gateways and the underlying sub-components is provided by our GatewayConfiguration API which includes (non-exhaustively) configuration options for the ControlPlane and DataPlane. The GatewayConfiguration API can be attached to any number of Gateways, enabling lifecycle management for a single Gateway or for a group of Gateways from a single configuration. Multiple groups of Gateways which need different and independent configuration can be managed using multiple GatewayConfigurations.

The DataPlane (e.g. the Kong Gateway) can be configured and deployed according to its available deployment topologies using the GatewayConfiguration API. The following topologies are currently supported:

More configurations and topologies may become available in future releases.

Note: We currently don't support traditional mode for the Kong Gateway as managing an independent database server in a Kubernetes cluster is non-trivial and out of scope for community support.

Note: While we don't currently support the Kong Gateway configured in hybrid mode control-plane configuration, we do support hybrid mode data-plane configuration using the DataPlane API. See below sections for details.

Gateway Upgrades & Downgrades

We support user-triggered upgrades and downgrades of the ControlPlane and DataPlane sub-components of Gateways by configuring the corresponding versioning information in the GatewayConfiguration.

Upgrades and downgrades of sub-components include transitions where existing routes do not fail as automation is in place to "smoothly" wait for health and DataPlane configuration before traffic is pivoted to the new version.

Gateway Horizontal Scaling

We support user-triggered scaling of DataPlanes for Gateway deployments, where the number of Pods can be adjusted up and down as needed according to DataPlane resource utilization and traffic.

Warning: Currently this only affects the DataPlane Pod scaling. ControlPlane Pod scaling is a consideration for future releases.

Kong Hybrid Mode DataPlane

The Kong Gateway can be deployed in hybrid mode which allows multiple gateways to be joined together for scaling and resiliency. This operator supports attaching a hybrid mode dataplane to an [existing hybrid mode control-plane using the DataPlane API. A quick start for this feature can be in the docs.

Kong AI Gateway

We provide an AIGateway resource which can be used to deploy the Kong Gateway with our AI Plugins automatically configured and enabled, to provide managed access to various AI models such as those provided by OpenAI (e.g. ChatGPT).

Note: this feature is currently considered experimental and is not enabled by default. The CRD must be deployed manually (it is not provided as part of our kustomize bundle):

kubectl apply -f config/crd/bases/gateway-operator.konghq.com_aigateways.yaml

Then see our config/samples/aigateway.yaml example to get started.