kong-operator

module
v1.6.1-0...-f207c0f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2025 License: Apache-2.0

README

Kong Operator

KGO logo

Kong Operator is a Kubernetes Operator that can manage your Kong Ingress Controller, Kong Gateway Data Planes, or both together when running on Kubernetes.

With Kong Operator, users can:

Current Features

The following features are considered supported:

  • Kong Gateway Deployment & Configuration Management using the Gateway API
  • Creation of Kong Gateways using the DataPlane API
  • Kong Gateways upgrades, downgrades and autoscaling
  • Creation of Kong Ingress Controller instances using the ControlPlane API
  • Hybrid Mode Attachment using the DataPlane API
  • Configuration and management of AIGateways (experimental feature)

See our Features Page for details on these capabilities.

API stability

The operator provides 2 APIs:

  • YAML / manifests API which users use to apply their manifests against Kubernetes clusters.
  • Go API through types exported under api/ and other exported packages.

This project:

  • Follows Kubernetes API versioning for the YAML API.
    • This is considered part of the user contract.
  • Tries to not break users implementing against operator's Go API but does not offer a non breaking guarantee.

Quick Start and documentation

If you are eager to start with the operator, you can visit the quick start section of the documentation. Alternatively, the complete docs provide a full and detailed description of how to thoroughly use this project.

Container images

Release images

Release builds can be found on Docker Hub in kong/kong-operator repository.

At the moment we're providing images for:

  • Linux amd64
  • Linux arm64
main branch builds

Nightly pre-release builds of the main branch are available from the kong/nightly-kong-operator repository hosted on Docker Hub.

Development

Prerequisites

In order to build the operator you'll have to have Go installed on your machine. In order to do so, follow the instructions on its websitego-dev-site.

Build process

Building the operator should be as simple as running:

make build

This Makefile target will take care of everything from generating client side code, generating Kubernetes manifests, downloading the dependencies and the tools used in the build process and finally, it will build the binary.

After this step has finished successfully you should see the operator's binary bin/manager.

You can also run it directly via make run which will run the operator on your machine against the cluster that you have configured via your KUBECONFIG.

Adding new CRDs

Whenever you add a new CRD:

  • Ensure that it is included in project's PROJECT file. This is necessary for creation of a bundle for external hubs like Operator Hub's community operators.
  • Annotate the CRD and any new type it depends on with the right markers to make sure it will be included in the generated documentation. See the markers used in scripts/crds-generator for reference.

Seeking Help

Please search through the posts on the discussions page as it's likely that another user has run into the same problem. If you don't find an answer, please feel free to post a question.

If you've found a bug, please open an issue.

For a feature request, please open an issue using the feature request template.

You can also talk to the developers behind Kong in the #kong channel on the Kubernetes Slack server.

Community Meetings

You can join bi-weekly meetups hosted by Kong to ask questions, provide feedback, or just to listen and hang out.

See the Online Meetups Page to sign up and receive meeting invites and Zoom links.

Directories

Path Synopsis
api
common/v1alpha1
Package v1alpha1 contains API Schema definitions for the common v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the common v1alpha1 API group.
configuration/v1
Package v1 contains API Schema definitions for the konghq.com v1 API group.
Package v1 contains API Schema definitions for the konghq.com v1 API group.
configuration/v1alpha1
Package v1alpha1 contains API Schema definitions for the configuration.konghq.com v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the configuration.konghq.com v1alpha1 API group.
configuration/v1beta1
Package v1beta1 contains API Schema definitions for the configuration.konghq.com v1beta1 API group.
Package v1beta1 contains API Schema definitions for the configuration.konghq.com v1beta1 API group.
gateway-operator/v1alpha1
Package v1alpha1 contains API Schema definitions for the gateway-operator.konghq.com v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the gateway-operator.konghq.com v1alpha1 API group.
gateway-operator/v1beta1
Package v1beta1 contains API Schema definitions for the gateway-operator.konghq.com v1beta1 API group.
Package v1beta1 contains API Schema definitions for the gateway-operator.konghq.com v1beta1 API group.
gateway-operator/v2beta1
Package v2beta1 contains API Schema definitions for the gateway-operator.konghq.com v2beta1 API group.
Package v2beta1 contains API Schema definitions for the gateway-operator.konghq.com v2beta1 API group.
incubator
Package incubator contains API Schema definitions for the incubator.ingress-controller.konghq.com API group.
Package incubator contains API Schema definitions for the incubator.ingress-controller.konghq.com API group.
incubator/v1alpha1
Package v1alpha1 contains API Schema definitions for the incubator.ingress-controller.konghq.com v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the incubator.ingress-controller.konghq.com v1alpha1 API group.
konnect/v1alpha1
Package v1alpha1 contains API Schema definitions for the konnect.konghq.com v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the konnect.konghq.com v1alpha1 API group.
konnect/v1alpha2
Package v1alpha2 contains API Schema definitions for the konnect.konghq.com v1alpha2 API group.
Package v1alpha2 contains API Schema definitions for the konnect.konghq.com v1alpha2 API group.
Package config provides functions to dump kustomize config YAMLs to a directory.
Package config provides functions to dump kustomize config YAMLs to a directory.
controller
hack
cleanup command
This script cleans up orphaned GKE clusters and Konnect runtime groups that were created by the e2e tests (caued by e.g.
This script cleans up orphaned GKE clusters and Konnect runtime groups that were created by the e2e tests (caued by e.g.
ingress-controller
hack/cleanup command
This script cleans up orphaned GKE clusters and Konnect runtime groups that were created by the e2e tests (caued by e.g.
This script cleans up orphaned GKE clusters and Konnect runtime groups that were created by the e2e tests (caued by e.g.
internal/admission/validation/consumers/credentials
Package credentials includes validators for the credentials provided for KongConsumers.
Package credentials includes validators for the credentials provided for KongConsumers.
internal/controllers/configuration
Package configuration contains Kubernetes controllers responsible for configuration.konghq.com grouped API types.
Package configuration contains Kubernetes controllers responsible for configuration.konghq.com grouped API types.
internal/dataplane
Package dataplane provides functionality for communicating with and providing configuration to backend dataplane APIs.
Package dataplane provides functionality for communicating with and providing configuration to backend dataplane APIs.
internal/manager
Package manager implements the controller manager for all controllers
Package manager implements the controller manager for all controllers
internal/store
Code generated by hack/generators/cache-stores/main.go; DO NOT EDIT.
Code generated by hack/generators/cache-stores/main.go; DO NOT EDIT.
test/kongintegration
Package kongintegration contains integration tests that require a Kong instance to be running, but do not require a Kubernetes cluster nor full Kong Ingress Controller deployment.
Package kongintegration contains integration tests that require a Kong instance to be running, but do not require a Kubernetes cluster nor full Kong Ingress Controller deployment.
internal
modules
cli
manager/metadata
Package metadata includes metadata variables for logging and reporting.
Package metadata includes metadata variables for logging and reporting.
pkg
clientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
clientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
clientset/typed/configuration/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/configuration/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/configuration/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/configuration/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/configuration/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/configuration/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/gateway-operator/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/gateway-operator/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/gateway-operator/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/gateway-operator/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/gateway-operator/v2beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/gateway-operator/v2beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/incubator/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/incubator/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/konnect/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/konnect/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/konnect/v1alpha2
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/konnect/v1alpha2/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
scripts
apitypes-funcs command
crds-generator command
This script is responsible for generating CRDs.
This script is responsible for generating CRDs.
e2e

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL