Awesome
Kong Gateway Operator
<img src="./logo/logo.png" alt="KGO logo" title="Kong Gateway Operator" height="150" width="150" />Kong Gateway 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 Gateway Operator, users can:
- Deploy and configure Kong Gateway services.
- Customise deployments using
PodTemplateSpec
to: - Upgrade Data Planes using a rolling restart or blue/green deployments.
- Configure auto scaling on Data Planes.
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
AIGateway
s (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.
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 available markers.
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.