Skip to content

Commit

Permalink
Add description for enabling experimental features (#2546)
Browse files Browse the repository at this point in the history
Problem: There is insufficient documentation on enabling experimental features in our guides.

Solution: Add an includes description for enabling experimental features that we can use for any guides on experimental features. Also updated gateway api compatibility document.

Testing: Locally generated the documentation through Hugo and it works.
  • Loading branch information
bjee19 authored Sep 19, 2024
1 parent d242622 commit 35f2b91
Show file tree
Hide file tree
Showing 5 changed files with 111 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,15 @@ Learn how to encrypt HTTP traffic between NGINX Gateway Fabric and your backend

In this guide, we will show how to specify the TLS configuration of the connection from the Gateway to a backend pod/s via the Service API object using a [BackendTLSPolicy](https://gateway-api.sigs.k8s.io/api-types/backendtlspolicy/). This covers the use-case where the service or backend owner is doing their own TLS and NGINX Gateway Fabric needs to know how to connect to this backend pod that has its own certificate over HTTPS.

## Note on Gateway API Experimental Features

{{< important >}} BackendTLSPolicy is a Gateway API resource from the experimental release channel. {{< /important >}}

{{<include "installation/install-gateway-api-experimental-features.md" >}}

## Before you begin

- [Install]({{< relref "installation/" >}}) NGINX Gateway Fabric. Please note that the Gateway APIs from the experimental channel are required, and NGF must be deployed with the `--gateway-api-experimental-features` flag.
- [Install]({{< relref "installation/" >}}) NGINX Gateway Fabric with experimental features enabled.
- Save the public IP address and port of NGINX Gateway Fabric into shell variables:

```text
Expand Down
8 changes: 7 additions & 1 deletion site/content/how-to/traffic-management/tls-passthrough.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ Learn how to use TLSRoutes to configure TLS Passthrough load-balancing with NGIN

In this guide, we will show how to configure TLS passthrough for your application, using a [TLSRoute](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1alpha2.TLSRoute).

## Note on Gateway API Experimental Features

{{< important >}} TLSRoute is a Gateway API resource from the experimental release channel. {{< /important >}}

{{<include "installation/install-gateway-api-experimental-features.md" >}}

## Before you begin

- [Install]({{< relref "installation/" >}}) NGINX Gateway Fabric.
- [Install]({{< relref "installation/" >}}) NGINX Gateway Fabric with experimental features enabled.
- Save the public IP address and port of NGINX Gateway Fabric into shell variables:

```text
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: "Install NGINX Gateway Fabric with experimental features"
docs: "DOCS-000"
---

To use Gateway API experimental resources, the Gateway API resources from the experimental channel must be installed before deploying NGINX Gateway Fabric. Additionally, NGINX Gateway Fabric must have experimental features enabled.

{{< caution >}}As noted in the [Gateway API documentation](https://gateway-api.sigs.k8s.io/guides/#install-experimental-channel), future releases of the Gateway API can include breaking changes to experimental resources and fields. {{</ caution >}}

To install the Gateway API resources from the experimental channel, run the following:

```shell
kubectl kustomize "https://github.com/nginxinc/nginx-gateway-fabric/config/crd/gateway-api/experimental?ref=v1.4.0" | kubectl apply -f -
```

{{< note >}}If you plan to use the `edge` version of NGINX Gateway Fabric, you can replace the version in `ref` with `main`, for example `ref=main`. {{</ note >}}

To enable experimental features on NGINX Gateway Fabric:

Using Helm: Set `nginxGateway.gwAPIExperimentalFeatures.enable` to true. An example can be found
in the [Installation with Helm]({{< relref "installation/installing-ngf/helm.md#custom-installation-options" >}}) guide.

Using Kubernetes manifests: Add the `--gateway-api-experimental-features` command-line flag to the deployment manifest args.
An example can be found in the [Installation with Kubernetes manifests]({{< relref "installation/installing-ngf/manifests.md#3-deploy-nginx-gateway-fabric" >}}) guide.
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,23 @@
docs: "DOCS-1438"
---

{{<note>}}The [Gateway API resources](https://github.com/kubernetes-sigs/gateway-api) from the standard channel must be installed before deploying NGINX Gateway Fabric. If they are already installed in your cluster, please ensure they are the correct version as supported by the NGINX Gateway Fabric - [see the Technical Specifications](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.4.0/README.md#technical-specifications).{{</note>}}
{{< note >}} The [Gateway API resources](https://github.com/kubernetes-sigs/gateway-api) from the standard channel must be installed before deploying NGINX Gateway Fabric. If they are already installed in your cluster, please ensure they are the correct version as supported by the NGINX Gateway Fabric - [see the Technical Specifications](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.4.0/README.md#technical-specifications). {{</ note >}}

To install the Gateway API resources, run the following:

```shell
kubectl kustomize "https://github.com/nginxinc/nginx-gateway-fabric/config/crd/gateway-api/standard?ref=v1.4.0" | kubectl apply -f -
```

{{<note>}}If you plan to use the `edge` version of NGINX Gateway Fabric, you can replace the version in `ref` with `main`, for example `ref=main`.{{</note>}}
{{< note >}}If you plan to use the `edge` version of NGINX Gateway Fabric, you can replace the version in `ref` with `main`, for example `ref=main`.{{</ note >}}

Alternatively, you can install the Gateway API resources from the experimental channel. We support a subset of the
additional features provided by the experimental channel. To install from the experimental channel, run the following:
Alternatively, you can install the Gateway API resources from the experimental channel.
Installing Gateway API resources from the experimental channel includes everything in the standard release channel plus additional experimental resources and fields.
NGINX Gateway Fabric currently supports a subset of the additional features provided by the experimental channel.
To install from the experimental channel, run the following:

```shell
kubectl kustomize "https://github.com/nginxinc/nginx-gateway-fabric/config/crd/gateway-api/experimental?ref=v1.4.0" | kubectl apply -f -
```

{{< note >}} To learn more about what Gateway API resources NGINX Gateway Fabric currently supports, visit our [Gateway API Compatibility]({{< relref "overview/gateway-api-compatibility.md" >}}) document. {{</ note >}}
Loading

0 comments on commit 35f2b91

Please sign in to comment.