WARNING: This project is under active development and is currently considered EXPERIMENTAL. For information about timelines for initial releases please see our milestones. Please check in with us on the #kong on Kubernetes Slack or open a discussion if you have questions, want to contribute, or just want to chat about the project.
A Kubernetes Operator for the Kong Gateway.
Deploy the operator with the following one-liner:
kubectl kustomize https://github.com/kong/gateway-operator/config/default | kubectl apply -f -
Optionally, you can wait for the operator with:
kubectl -n kong-system wait --for=condition=Available=true deployment/gateway-operator-controller-manager
After deployment usage is driven primarily via the Gateway resource.
You can deploy a Gateway
resource to the cluster which will result in the
underlying control-plane (the Kong Kubernetes Ingress Controller) and
the data-plane (the Kong Gateway).
For example, deploy the following GatewayClass
:
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: kong
spec:
controllerName: konghq.com/gateway-operator
and Gateway
:
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: kong
spec:
gatewayClassName: kong
listeners:
- name: http
protocol: HTTP
port: 80
Wait for the Gateway
to be Ready
:
kubectl -n kong-system wait --for=condition=Available=true deployment/gateway-operator-controller-manager
Once Ready
you'll be able to receive the default IP address of the Gateway
:
$ kubectl get gateway kong
NAME CLASS ADDRESS READY AGE
kong kong 172.18.0.240 True 97s
The Gateway
is now accessible via that IP:
$ curl -s -w '\n' http://172.18.0.240
{"message":"no Route matched with those values"}
(NOTE: if your cluster can not provision LoadBalancer
type Services
then
the IP you receive may only be routable from within the cluster).
(NOTE: the no Route matched
result is normal for a Gateway
with no
configuration. Create Ingress
, HTTPRoute
and other resources to start
routing traffic to your applications. See the Ingress Controller
Guides for more information).
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.
You can join monthly 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.