Skip to content

Commit

Permalink
KIC v2.9 docs (Kong#5241)
Browse files Browse the repository at this point in the history
* Add 2.9 nav file and 2.9 version to version file

Signed-off-by: Diana <[email protected]>

* docs: GRPCRoute guide (Kong#5216)

docs: GRPCRoute guide added

Signed-off-by: Mattia Lavacca <[email protected]>

* Update KIC troubleshooting for 2.9 and add GWAPI port note (Kong#5196)

* chore: wrap source and fix minor errors

* chore: fix KIC webhook article title

* doc(kic) revise event troubleshooting

Update the KIC troubleshooting guide with additional information about
troubleshooting using Events, including the configuration push Event
type to be introduced in 2.9.

Rewrite the example as a more complete guide, with example problem
resources, example queries, and issue remediation.

* doc(kic) add HTTPRoute port limitation warning

* Apply suggestions from code review

Co-authored-by: Diana <[email protected]>

* Fix Vale errors

Signed-off-by: Diana <[email protected]>

* pr: VAW title change

* pr: clarify and gate version note

---------

Signed-off-by: Diana <[email protected]>
Co-authored-by: Diana <[email protected]>

* KIC 2.9.x update deployment guides - Gateway Discovery (Kong#5231)

* feat(kic): add docs about Gateway Discovery

---------

Co-authored-by: Grzegorz Burzyński <[email protected]>

* chore(kic) extract common docs to includes (Kong#5256)

Co-authored-by: Michael Heap <[email protected]>

* docs(kic): update kic 2.9 nav (Kong#5253)

Signed-off-by: Mattia Lavacca <[email protected]>

* doc(kic): update compatibility tables for 2.9 (Kong#5259)

* kic: show Gateway Discovery guide entry for versions 2.9+

* chore(kic): fix code block languages

* chore(kic): fix incorrect helm.sh link

* GatewayAlpha feature-gate added to grpc guide (Kong#5323)

kic: update grpcRoute GatewayAlpha FG

Signed-off-by: Mattia Lavacca <[email protected]>

* Update docs for KIC 2.9.0 (Kong#5360)

Synchronize auto-generated KIC API reference

Signed-off-by: Kong's Team k8s bot <[email protected]>
Co-authored-by: Travis Raines <[email protected]>

* chore(kic) update CRD links in nav

* chore(kic) generate 2.8 KIC CRD reference (Kong#5361)

Synchronize auto-generated KIC API reference

Signed-off-by: Kong's Team k8s bot <[email protected]>

---------

Signed-off-by: Diana <[email protected]>
Signed-off-by: Mattia Lavacca <[email protected]>
Signed-off-by: Kong's Team k8s bot <[email protected]>
Co-authored-by: Diana <[email protected]>
Co-authored-by: Mattia Lavacca <[email protected]>
Co-authored-by: Travis Raines <[email protected]>
Co-authored-by: Grzegorz Burzyński <[email protected]>
Co-authored-by: Michael Heap <[email protected]>
Co-authored-by: Kong's Team k8s bot <[email protected]>
  • Loading branch information
7 people authored and nbialostosky committed Apr 12, 2023
1 parent b557b7f commit 12ee33f
Show file tree
Hide file tree
Showing 29 changed files with 1,961 additions and 336 deletions.
10 changes: 10 additions & 0 deletions .github/styles/kong/auto-ignore.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,30 @@ _workspace
_this
admin_listen
allow_terminated
apiVersion
balancer's
bargineer
bazgineer
bcrypt
callees
config_hash
consumer_id
creationTimestamp
dao
daos
datastore
datastores
endpoint_key
eventTime
firstTimestamp
foogineer
if_version
ingress_controller_configuration_push_count
ingress_controller_configuration_push_duration_milliseconds
ingress_controller_translation_count
involvedObject
kuma
lastTimestamp
max_args
max_headers
metatable
Expand All @@ -37,6 +43,9 @@ proxy_ssl
qux
real_ip_header
real_ip_recursive
reportingComponent
reportingInstance
resourceVersion
resty
role_endpoint
role_entity
Expand All @@ -58,6 +67,7 @@ TLSRoute
TLSRoutes
UDPRoute
UDPRoutes
uid
GRPCRoute
GRPCRoutes
ReferenceGrant
Expand Down
4 changes: 2 additions & 2 deletions app/_data/docs_nav_kic_2.8.x.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ items:
url: /deployment/eks
- text: Kong Ingress on GKE
url: /deployment/gke
- text: Admission Webhook
- text: Enable the Validating Admission Webhook
url: /deployment/admission-webhook
- text: Installing Gateway APIs
url: /deployment/install-gateway-apis
Expand Down Expand Up @@ -138,7 +138,7 @@ items:
url: /references/cli-arguments
- text: Custom Resource Definitions
url: /references/custom-resources
src: references/custom-resources-2.7.x
src: references/custom-resources-2.8.x
- text: Plugin Compatibility
url: /references/plugin-compatibility
- text: Version Compatibility
Expand Down
159 changes: 159 additions & 0 deletions app/_data/docs_nav_kic_2.9.x.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
product: kubernetes-ingress-controller
release: 2.9.x
generate: true
items:
- title: Introduction
icon: /assets/images/icons/documentation/icn-kubernetes-color.svg
url: /kubernetes-ingress-controller/
absolute_url: true
items:
- text: FAQ
url: /faq
- text: Version Support Policy
url: /support-policy
- text: Stages of Software Availability
url: /availability-stages
- text: Changelog
url: https:/Kong/kubernetes-ingress-controller/blob/main/CHANGELOG.md
absolute_url: true
target_blank: true

- title: Concepts
icon: /assets/images/icons/documentation/icn-kubernetes-color.svg
items:
- text: Architecture
url: /concepts/design
- text: Custom Resources
url: /concepts/custom-resources
- text: Deployment Methods
url: /concepts/deployment
- text: Kong for Kubernetes with Kong Enterprise
url: /concepts/k4k8s-with-kong-enterprise
- text: High-Availability and Scaling
url: /concepts/ha-and-scaling
- text: Resource Classes
url: /concepts/ingress-classes
- text: Security
url: /concepts/security
- text: Ingress Resource API Versions
url: /concepts/ingress-versions
- text: Gateway API
url: /concepts/gateway-api
- title: Deployment
icon: /assets/images/icons/documentation/icn-kubernetes-color.svg
url: /deployment/overview
items:
- text: Kong Ingress on Minikube
url: /deployment/minikube
- text: Kong for Kubernetes
url: /deployment/k4k8s
- text: Kong for Kubernetes Enterprise
url: /deployment/k4k8s-enterprise
- text: Kong for Kubernetes with Kong Enterprise
url: /deployment/kong-enterprise
- text: Kong Ingress on AKS
url: /deployment/aks
- text: Kong Ingress on EKS
url: /deployment/eks
- text: Kong Ingress on GKE
url: /deployment/gke
- text: Admission Webhook
url: /deployment/admission-webhook
- text: Installing Gateway APIs
url: /deployment/install-gateway-apis
- title: Guides
icon: /assets/images/icons/documentation/icn-kubernetes-color.svg
url: /guides/overview
items:
- text: Getting Started with KIC
url: /guides/getting-started
- text: Upgrading from previous versions
url: /guides/upgrade
- text: Upgrading to Kong 3.x
url: /guides/upgrade-kong-3x
- text: Getting Started using Istio
url: /guides/getting-started-istio
- text: Using Custom Resources
items:
- text: Using the KongPlugin Resource
url: /guides/using-kongplugin-resource
- text: Using the KongIngress Resource
url: /guides/using-kongingress-resource
- text: Using KongConsumer and KongCredential Resources
url: /guides/using-consumer-credential-resource
- text: Using the TCPIngress Resource
url: /guides/using-tcpingress
- text: Using the UDPIngress Resource
url: /guides/using-udpingress
- text: Using the ACL and JWT Plugins
url: /guides/configure-acl-plugin
- text: Using cert-manager with Kong
url: /guides/cert-manager
- text: Allowing Multiple Authentication Methods
url: /guides/allowing-multiple-authentication-methods
- text: Configuring a Fallback Service
url: /guides/configuring-fallback-service
- text: Using an External Service
url: /guides/using-external-service
- text: Configuring HTTPS Redirects for Services
url: /guides/configuring-https-redirect
- text: Using Redis for Rate Limiting
url: /guides/redis-rate-limiting
- text: Integrate KIC with Prometheus/Grafana
url: /guides/prometheus-grafana
- text: Configuring Circuit-Breaker and Health-Checking
url: /guides/configuring-health-checks
- text: Setting up a Custom Plugin
url: /guides/setting-up-custom-plugins
- text: Setting up Upstream mTLS
url: /guides/upstream-mtls
- text: Exposing a TCP/UDP/gRPC Service
items:
- text: Exposing a TCP Service
url: /guides/using-tcpingress
generate: false # Generated in the CustomResources section above
- text: Exposing a UDP Service
url: /guides/using-udpingress
generate: false # Generated in the CustomResources section above
- text: Exposing a gRPC service
url: /guides/using-ingress-with-grpc
- text: Using the mTLS Auth Plugin
url: /guides/using-mtls-auth-plugin
- text: Configuring Custom Entities
url: /guides/configuring-custom-entities
- text: Using the OpenID Connect Plugin
url: /guides/using-oidc-plugin
- text: Rewriting Hosts and Paths
url: /guides/using-rewrites
- text: Preserving Client IP Address
url: /guides/preserve-client-ip
- text: Using Kong with Knative
url: /guides/using-kong-with-knative
- text: Using Multiple Backend Services
url: /guides/using-multiple-backends
- text: Using Gateway Discovery
url: /guides/using-gateway-discovery
- title: References
icon: /assets/images/icons/documentation/icn-kubernetes-color.svg
items:
- text: KIC Annotations
url: /references/annotations
- text: CLI Arguments
url: /references/cli-arguments
- text: Custom Resource Definitions
url: /references/custom-resources
src: references/custom-resources-2.9.x
- text: Plugin Compatibility
url: /references/plugin-compatibility
- text: Version Compatibility
url: /references/version-compatibility
- text: Supported Kong Router Flavors
url: /references/supported-router-flavors
- text: Troubleshooting
url: /troubleshooting
- text: Prometheus Metrics
url: /references/prometheus
- text: Feature Gates
url: /references/feature-gates
- text: Supported Gateway API Features
url: /references/gateway-api-support
3 changes: 3 additions & 0 deletions app/_data/kong_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -367,3 +367,6 @@
- release: "2.8.x"
version: "2.8.1"
edition: "kubernetes-ingress-controller"
- release: "2.9.x"
version: "2.9.0"
edition: "kubernetes-ingress-controller"
64 changes: 64 additions & 0 deletions app/_includes/md/kic/deploy-kic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## Deploy the {{site.kic_product_name}} {#deploy-kic}

Deploy the {{site.kic_product_name}} using `kubectl`:

{% if_version gte:2.8.x %}
```bash
$ kubectl create -f https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/v{{ include.version }}/deploy/single/all-in-one-dbless.yaml
namespace/kong created
customresourcedefinition.apiextensions.k8s.io/ingressclassparameterses.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongclusterplugins.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongconsumers.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongingresses.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongplugins.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/tcpingresses.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/udpingresses.configuration.konghq.com created
serviceaccount/kong-serviceaccount created
role.rbac.authorization.k8s.io/kong-leader-election created
clusterrole.rbac.authorization.k8s.io/kong-ingress created
clusterrole.rbac.authorization.k8s.io/kong-ingress-gateway created
clusterrole.rbac.authorization.k8s.io/kong-ingress-knative created
rolebinding.rbac.authorization.k8s.io/kong-leader-election created
clusterrolebinding.rbac.authorization.k8s.io/kong-ingress created
clusterrolebinding.rbac.authorization.k8s.io/kong-ingress-gateway created
clusterrolebinding.rbac.authorization.k8s.io/kong-ingress-knative created
service/kong-admin created
service/kong-proxy created
service/kong-validation-webhook created
deployment.apps/ingress-kong created
deployment.apps/proxy-kong created
ingressclass.networking.k8s.io/kong created
```
{% endif_version %}
{% if_version lte:2.7.x %}
```bash
$ kubectl create -f https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/v{{ page.version }}/deploy/single/all-in-one-dbless.yaml
namespace/kong created
customresourcedefinition.apiextensions.k8s.io/kongplugins.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongconsumers.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongcredentials.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongingresses.configuration.konghq.com created
serviceaccount/kong-serviceaccount created
clusterrole.rbac.authorization.k8s.io/kong-ingress-clusterrole created
clusterrolebinding.rbac.authorization.k8s.io/kong-ingress-clusterrole-nisa-binding created
configmap/kong-server-blocks created
service/kong-proxy created
service/kong-validation-webhook created
deployment.extensions/kong created
```
{% endif_version %}

It will take a few minutes for all containers to start and report
healthy status.

Alternatively, you can use our helm chart as well:

```bash
$ helm repo add kong https://charts.konghq.com
$ helm repo update

# Helm 3
$ helm install kong/kong --generate-name --set ingressController.installCRDs=false
```

*Note:* this process could take up to five minutes the first time.
16 changes: 16 additions & 0 deletions app/_includes/md/kic/kong-enterprise-license-secret.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
### Kong Enterprise License secret

Enterprise version requires a valid license to run.
As part of sign up for Kong Enterprise, you should have received a license file.
If you do not have one, please contact your sales representative.
Save the license file temporarily to disk with filename `license`
and execute the following:

```bash
$ kubectl create secret generic kong-enterprise-license --from-file=license=./license.json -n kong
secret/kong-enterprise-license created
```

Please note that `-n kong` specifies the namespace in which you are deploying
the {{site.kic_product_name}}. If you are deploying in a different namespace,
please change this value.
39 changes: 39 additions & 0 deletions app/_src/kubernetes-ingress-controller/concepts/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ Following are the different options to consider while deploying the
Running multiple {{site.kic_product_name}}s inside the same Kubernetes cluster
- [**Runtime**](#runtime):
Using Kong or Kong Enterprise (for Kong Enterprise customers)
{% if_version gte: 2.9.x %}
- [**Gateway Discovery**](#gateway-discovery):
Dynamically discovering Kong's Admin API endpoints
{% endif_version %}

### Kubernetes Service Types

Expand Down Expand Up @@ -308,3 +312,38 @@ overview of the architecture.

[k8s-namespace]: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
[k8s-rbac]:https://kubernetes.io/docs/reference/access-authn-authz/rbac/

{% if_version gte: 2.9.x %}
### Gateway Discovery

{{site.kic_product_name}} can also be configured to discover deployed Gateways.
This works by using a separate {{site.base_gateway}} deployment which exposes a
Kubernetes Service which is backed by [Kong Admin API][admin] endpoints.
This Service endpoints can be then discovered by {{site.kic_product_name}}
through Kubernetes EndpointSlice watch.

The overview of this type of deployment can be found on the figure below:

![Gateway Discovery overview](/assets/images/docs/kubernetes-ingress-controller/gateway-discovery-diagram.png "Gateway Discovery overview")

In this type of architecture, there are two types of Kubernetes deployments created,
separating the control and data flow:

- **Control-plane**: This deployment consists of a pod(s) running the controller.
This deployment does not proxy any traffic but only configures Kong.
Leader election is enforced in this deployment when running with Gateway Discovery
enabled to ensure only 1 controller instance is sending configuration to data
planes at a time.
- **Data-plane**: This deployment consists of pods running Kong which can proxy
traffic based on the configuration it receives via the [Admin API][admin].
This deployment should be scaled to respond to change in traffic profiles
and add redundancy to safeguard from node failures.

Both of those deployments can be scaled independently.

For more hands on experience with Gateway Discovery please see [our guide][gd-guide]

[admin]: /gateway/latest/admin-api/
[gd-guide]: /kubernetes-ingress-controller/{{page.kong_version}}/guides/using-gateway-discovery

{% endif_version %}
Loading

0 comments on commit 12ee33f

Please sign in to comment.