From eb38b5e4fa86a57801583ffa9e0f2cef78ea7406 Mon Sep 17 00:00:00 2001 From: hc-github-team-consul-core Date: Tue, 1 Aug 2023 17:34:36 -0400 Subject: [PATCH] Backport of api gw 1.16 updates into release/1.16.x (#18348) api gw 1.16 updates (#18081) * api gw 1.16 updates * Apply suggestions from code review * update CodeBlockConfig filename * Apply suggestions from code review * remove non-standard intentions page * Update website/content/docs/api-gateway/configuration/index.mdx --------- Co-authored-by: Eddie Rowe <74205376+eddie-rowe@users.noreply.github.com> Co-authored-by: Jeff Boruszak <104028618+boruszak@users.noreply.github.com> Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com> --- .../docs/api-gateway/configuration/gateway.mdx | 3 +-- .../docs/api-gateway/configuration/index.mdx | 3 ++- .../docs/api-gateway/configuration/routes.mdx | 4 ++-- website/content/docs/api-gateway/install.mdx | 2 ++ .../content/docs/api-gateway/usage/usage.mdx | 17 ++++++----------- 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/website/content/docs/api-gateway/configuration/gateway.mdx b/website/content/docs/api-gateway/configuration/gateway.mdx index fdbe468ba..3c2a1f6fd 100644 --- a/website/content/docs/api-gateway/configuration/gateway.mdx +++ b/website/content/docs/api-gateway/configuration/gateway.mdx @@ -26,7 +26,6 @@ Specify the following parameters to declare a `Gateway`: | `fields` | Specifies the configurations for the Gateway. The fields are listed in the [configuration model](#configuration-model). Details for each field are described in the [specification](#specification). | Required | - ## Configuration model The following outline shows how to format the configurations in the `Gateway` object. Click on a property name to view details about the configuration. @@ -196,7 +195,7 @@ The following example creates a `Gateway` named `example-gateway` in namespace ` name: example-gateway namespace: gateway-namespace spec: - gatewayClassName: consul-api-gateway + gatewayClassName: consul listeners: - protocol: HTTPS port: 443 diff --git a/website/content/docs/api-gateway/configuration/index.mdx b/website/content/docs/api-gateway/configuration/index.mdx index b2d0b19a5..06875ebd4 100644 --- a/website/content/docs/api-gateway/configuration/index.mdx +++ b/website/content/docs/api-gateway/configuration/index.mdx @@ -13,8 +13,9 @@ This topic provides an overview of the configuration items that enable Consul AP - [GatewayClass](/consul/docs/api-gateway/configuration/gatewayclass) defines a class of gateway resources that you can use as a template for creating gateways. - [GatewayClassConfig](/consul/docs/api-gateway/configuration/gatewayclassconfig) describes additional Consul API Gateway-related configuration parameters for the GatewayClass resource. - [Routes](/consul/docs/api-gateway/configuration/routes) specifies the path from the gateway to the backend service(s) client to the listener. +- [Intentions](/consul/docs/connect/config-entries/service-intentions) specify traffic communication rules between services in the mesh. Intentions also enforce rules for service-to-service traffic routed through a Consul API gateway. -You can create a basic Gateway object using the default [`gatewayClassName`](/consul/docs/api-gateway/configuration/gateway#gatewayclassname) (`consul-api-gateway`). If you want to create custom Gateways suitable for your environment, complete the following steps: +You can create a basic Gateway object using the default [`gatewayClassName`](/consul/docs/api-gateway/configuration/gateway#gatewayclassname) (`consul`). If you want to create custom Gateways suitable for your environment, complete the following steps: 1. Define a [GatewayClassConfig](/consul/docs/api-gateway/configuration/gatewayclassconfig) that contains your custom configurations. 1. Define a [GatewayClass](/consul/docs/api-gateway/configuration/gatewayclass) and configure the [`parametersRef.name`](/consul/docs/api-gateway/configuration/gatewayclass#parametersref-name) to reference the name of your [GatewayClassConfig](/consul/docs/api-gateway/configuration/gatewayclassconfig). diff --git a/website/content/docs/api-gateway/configuration/routes.mdx b/website/content/docs/api-gateway/configuration/routes.mdx index 27b520340..973ebed02 100644 --- a/website/content/docs/api-gateway/configuration/routes.mdx +++ b/website/content/docs/api-gateway/configuration/routes.mdx @@ -22,7 +22,7 @@ The following example creates a route named `example-route` associated with a li ```yaml - apiVersion: gateway.networking.k8s.io/v1alpha2 + apiVersion: gateway.networking.k8s.io/v1beta1 kind: HTTPRoute metadata: name: example-route @@ -132,7 +132,7 @@ The following example creates a route named `example-route` in namespace `gatewa ```yaml - apiVersion: gateway.networking.k8s.io/v1alpha2 + apiVersion: gateway.networking.k8s.io/v1beta1 kind: HTTPRoute metadata: name: example-route diff --git a/website/content/docs/api-gateway/install.mdx b/website/content/docs/api-gateway/install.mdx index dff25ee33..3dc4ca728 100644 --- a/website/content/docs/api-gateway/install.mdx +++ b/website/content/docs/api-gateway/install.mdx @@ -18,6 +18,8 @@ The Consul API gateway ships with Consul and is automatically installed when you name: consul connectInject: enabled: true + apiGateway: + manageExternalCRDs: true ``` diff --git a/website/content/docs/api-gateway/usage/usage.mdx b/website/content/docs/api-gateway/usage/usage.mdx index e815d21c5..cee7b0a72 100644 --- a/website/content/docs/api-gateway/usage/usage.mdx +++ b/website/content/docs/api-gateway/usage/usage.mdx @@ -14,28 +14,23 @@ This topic describes how to use Consul API Gateway. Complete the following steps to use Consul API Gateway in your network. 1. Verify that the [requirements](/consul/docs/api-gateway/tech-specs) have been met. -1. Verify that the Consul API Gateway CRDs and controller have been installed and applied. Refer to [Installation](/consul/docs/api-gateway/install) for details. +1. Verify that the Consul API Gateway CRDs were applied. Refer to [Installation](/consul/docs/api-gateway/install) for details. ## Configuration -Configure your [`Gateway`](/consul/docs/api-gateway/configuration/gateway) and [`Routes`](/consul/docs/api-gateway/configuration/routes) as described in [Consul API Gateway Configuration](/consul/docs/api-gateway/configuration). +Configure the following resources for your environment as described in [Consul API Gateway Configuration](/consul/docs/api-gateway/configuration). - +1. [`Gateway`](/consul/docs/api-gateway/configuration/gateway) +1. [`Routes`](/consul/docs/api-gateway/configuration/routes) +1. [`Intentions`](/consul/docs/connect/config-entries/service-intentions) - ```yaml - apiGateway: - enabled: true - managedGatewayClass: - ``` - - ## Apply configurations Issue the `kubectl apply` command to implement the configurations: ```shell-session -$ kubectl apply -f gateway.yaml routes.yaml +$ kubectl apply -f gateway.yaml routes.yaml intentions.yaml ```