Skip to content

Commit ffa63f3

Browse files
fix ingress doc bugs
1 parent 7fc418d commit ffa63f3

22 files changed

Lines changed: 194 additions & 149 deletions

content/operate/kubernetes/7.22/networking/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Connect applications to your Redis Enterprise databases:
2424

2525
Choose the appropriate method for your environment to enable external access:
2626

27-
- [Ingress routing]({{< relref "/operate/kubernetes/7.22/networking/ingress" >}}) - Use NGINX or HAProxy ingress controllers with `ingress` API resources
27+
- [Ingress routing]({{< relref "/operate/kubernetes/7.22/networking/ingress" >}}) - Use HAProxy ingress controller with `ingress` API resources (the community NGINX ingress controller is retired)
2828
- [Istio ingress routing]({{< relref "/operate/kubernetes/7.22/networking/istio-ingress" >}}) - Use Istio service mesh with `Gateway` and `VirtualService` API resources
2929
- [OpenShift routes]({{< relref "/operate/kubernetes/7.22/networking/routes" >}}) - Use OpenShift-specific route resources for external traffic
3030

content/operate/kubernetes/7.22/networking/database-connectivity.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ To access databases from outside the Kubernetes cluster, you need to configure e
109109

110110
Redis Enterprise for Kubernetes only supports the following ingress controllers for external database access:
111111

112-
- NGINX Ingress - Supports SSL passthrough for Redis connections
113-
- HAProxy Ingress - Built-in SSL passthrough support
114-
- Istio Gateway - Service mesh integration with advanced traffic management
112+
- HAProxy Ingress - Built-in SSL passthrough support.
113+
- Istio Gateway - Service mesh integration with advanced traffic management.
114+
- Ingress-NGINX - SSL passthrough is off by default; start the controller with `--enable-ssl-passthrough`. The community `kubernetes/ingress-nginx` project is retired (maintenance ended March 2026); existing deployments only.
115115

116116
See [Ingress routing]({{< relref "/operate/kubernetes/7.22/networking/ingress" >}}) for detailed configuration steps.
117117

content/operate/kubernetes/7.22/networking/ingress.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,21 @@ weight: 5
1212
url: '/operate/kubernetes/7.22/networking/ingress/'
1313
---
1414

15+
{{<warning>}}
16+
The community [Ingress-NGINX controller](https://github.com/kubernetes/ingress-nginx) (`kubernetes/ingress-nginx`) is retired. Best-effort maintenance ended in March 2026 and the project no longer ships releases, bug fixes, or security updates. If you are not already using it, use HAProxy or Istio as shown below, or migrate to a [Gateway API](https://gateway-api.sigs.k8s.io/) implementation.
17+
{{</warning>}}
18+
1519
## Prerequisites
1620

1721
Before creating an Ingress, you'll need:
1822

1923
- A RedisEnterpriseDatabase (REDB) with TLS enabled for client connections
20-
- A supported Ingress controller with `ssl-passthrough` enabled
21-
- [Ingress-NGINX Controller](https://kubernetes.github.io/ingress-nginx/deploy/)
22-
- Be sure to use the `kubernetes/ingress-nginx` controller and NOT the `nginxinc/kubernetes-ingress` controller.
24+
- An Ingress controller with `ssl-passthrough` enabled. Options include:
2325
- [HAProxy Ingress](https://haproxy-ingress.github.io/docs/getting-started/)
26+
- [Ingress-NGINX Controller](https://kubernetes.github.io/ingress-nginx/deploy/) (retired; existing deployments only)
2427
- To use Istio for your Ingress resources, see [Configure Istio for external routing]({{< relref "/operate/kubernetes/7.22/networking/istio-ingress" >}})
2528

26-
{{<note>}}Make sure your Ingress controller has `ssl-passthrough`enabled. This is enabled by default for HAProxy, but disabled by default for NGINX. See the [NGINX User Guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details. {{</note>}}
29+
{{<note>}}Make sure your Ingress controller has `ssl-passthrough` enabled. It is on by default for HAProxy and off by default for Ingress-NGINX. For Ingress-NGINX, start the controller with the `--enable-ssl-passthrough` flag. See the [Ingress-NGINX TLS guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details.{{</note>}}
2730

2831
## Create an Ingress resource
2932

@@ -45,7 +48,7 @@ Before creating an Ingress, you'll need:
4548

4649
1. Create a DNS entry that resolves your chosen database hostname to the IP address for the Ingress controller's LoadBalancer.
4750
48-
1. Create the Ingress resource YAML file.
51+
1. Create the Ingress resource YAML file.
4952
5053
``` YAML
5154
apiVersion: networking.k8s.io/v1
@@ -55,6 +58,7 @@ Before creating an Ingress, you'll need:
5558
annotations:
5659
<controller-specific-annotations-below>
5760
spec:
61+
ingressClassName: <haproxy | nginx>
5862
rules:
5963
- host: <my-db-hostname>
6064
http:
@@ -66,23 +70,23 @@ Before creating an Ingress, you'll need:
6670
name: <db-name>
6771
port:
6872
name: redis
69-
```
73+
```
7074
71-
For HAProxy, insert the following into the `annotations` section:
75+
Set `ingressClassName` to match the `IngressClass` your controller installed. The deprecated `kubernetes.io/ingress.class` annotation is no longer accepted by recent controller versions, so use `ingressClassName` instead.
76+
77+
For HAProxy, add the following annotation:
7278
7379
``` YAML
74-
kubernetes.io/ingress.class: haproxy
75-
ingress.kubernetes.io/ssl-passthrough: "true"
80+
ingress.kubernetes.io/ssl-passthrough: "true"
7681
```
7782
78-
For NGINX, insert the following into the `annotations` section:
83+
For Ingress-NGINX, add the following annotation:
7984
8085
``` YAML
81-
kubernetes.io/ingress.class: nginx
8286
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
83-
```
87+
```
8488
85-
The `ssl-passthrough` annotation is required to allow access to the database. The specific format changes depending on your Ingress controller and any additional customizations. See [NGINX Configuration annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) and [HAProxy Ingress Options](https://www.haproxy.com/documentation/kubernetes/latest/configuration/ingress/) for updated annotation formats.
89+
The `ssl-passthrough` annotation is required to allow access to the database. The exact format depends on your Ingress controller and any additional customizations. See [Ingress-NGINX annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) and [HAProxy Ingress configuration keys](https://haproxy-ingress.github.io/docs/configuration/keys/) for current annotation formats.
8690
8791
## Test your external access
8892

content/operate/kubernetes/7.22/networking/ingressorroutespec.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,29 @@ url: '/operate/kubernetes/7.22/networking/ingressorroutespec/'
1212
---
1313
An Ingress is an API resource that provides a standardized and flexible way to manage external access to services running within a Kubernetes cluster.
1414

15+
{{<warning>}}
16+
The community [Ingress-NGINX controller](https://github.com/kubernetes/ingress-nginx) (`kubernetes/ingress-nginx`) is retired. Best-effort maintenance ended in March 2026 and the project no longer ships releases, bug fixes, or security updates. If you are not already using it, use HAProxy or Istio, or migrate to a [Gateway API](https://gateway-api.sigs.k8s.io/) implementation.
17+
{{</warning>}}
18+
1519
## Install Ingress controller
1620

1721
Redis Enterprise for Kubernetes supports the Ingress controllers below:
1822
* [HAProxy](https://haproxy-ingress.github.io/)
19-
* [NGINX](https://kubernetes.github.io/ingress-nginx/)
2023
* [Istio](https://istio.io/latest/docs/setup/getting-started/)
24+
* [Ingress-NGINX](https://kubernetes.github.io/ingress-nginx/) (retired; existing deployments only)
2125

2226
OpenShift users can use [routes]({{< relref "/operate/kubernetes/7.22/networking/routes" >}}) instead of an Ingress.
2327

24-
Install your chosen Ingress controller, making sure `ssl-passthrough` is enabled. `ssl-passthrough` is turned off by default for NGINX but enabled by default for HAProxy.
28+
Install your chosen Ingress controller, making sure `ssl-passthrough` is enabled. It is on by default for HAProxy and off by default for Ingress-NGINX. For Ingress-NGINX, start the controller with the `--enable-ssl-passthrough` flag.
2529

2630
## Configure DNS
2731

28-
1. Choose the hostname (FQDN) you will use to access your database according to the recommended naming conventions below, replacing `<placeholders>` with your own values.
32+
1. Choose the API hostname and database hostname suffix you will use, replacing `<placeholders>` with your own values. The recommended formats are:
33+
34+
* REC API hostname (`apiFqdnUrl`): `api-<rec-name>-<rec-namespace>.<subdomain>`
35+
* Database hostname suffix (`dbFqdnSuffix`): `-db-<rec-name>-<rec-namespace>.<subdomain>`
2936

30-
REC API hostname: `api-<rec-name>-<rec-namespace>.<subdomain>`
31-
REAADB hostname: `-db-<rec-name>-<rec-namespace>.<subdomain>`
32-
33-
We recommend using a wildcard (`*`) in place of the database name, followed by the hostname suffix.
37+
The operator appends each database name to `dbFqdnSuffix` to build the per-database hostname. For example, a database named `mydb` with the suffix above resolves to `mydb-db-<rec-name>-<rec-namespace>.<subdomain>`. For the wildcard DNS record, use `*` in place of the database name followed by the suffix.
3438

3539
1. Retrieve the `EXTERNAL-IP` of your Ingress controller's `LoadBalancer` service.
3640

@@ -60,17 +64,18 @@ Edit the RedisEnterpriseCluster (REC) spec to add the `ingressOrRouteSpec` field
6064
* Add any additional annotations required for your ingress controller. See [NGINX docs](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) or [HAproxy docs](https://haproxy-ingress.github.io/docs/configuration/keys/) for more information.
6165

6266
```sh
63-
kubectl patch rec <rec-name> --type merge --patch "{\"spec\": \
67+
kubectl patch rec <rec-name> --type merge --patch "{\"spec\": \
6468
{\"ingressOrRouteSpec\": \
6569
{\"apiFqdnUrl\": \"api-<rec-name>-<rec-namespace>.example.com\", \
6670
\"dbFqdnSuffix\": \"-db-<rec-name>-<rec-namespace>.example.com\", \
6771
\"ingressAnnotations\": \
68-
{\"<kubernetes | github>.io/ingress.class\": \
69-
\"<ingress-controller>\", \
70-
\"<ingress-controller-annotation>/ssl-passthrough\": \ \"true\"}, \
72+
{\"kubernetes.io/ingress.class\": \"<ingress-controller>\", \
73+
\"<ingress-controller-annotation>/ssl-passthrough\": \"true\"}, \
7174
\"method\": \"ingress\"}}}"
7275
```
7376

77+
Set `<ingress-controller>` to `haproxy` or `nginx`. The operator validates that `ingressAnnotations` includes `kubernetes.io/ingress.class` and is the only annotation key it requires; add any other controller-specific annotations alongside it.
78+
7479
### OpenShift routes
7580

7681
* Define the REC API hostname (`apiFqdnUrl`) and database hostname suffix (`dbFqdnSuffix`) you chose when configuring DNS.

content/operate/kubernetes/7.22/networking/istio-ingress.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ To configure Istio to work with the Redis Kubernetes operator, we will use two c
5757
1. On a different namespace from `istio-system`, create a `Gateway` custom resource file (`redis-gateway.yaml` in this example).
5858
5959
- Replace `.istio.k8s.my.example.com` with the domain that matches your DNS record.
60-
- Replace `<selector-label>` with the label set on your Istio ingress gateway pod (most common is `istio: ingress`).
60+
- Replace `<selector-label>` with the label set on your Istio ingress gateway pod. A default `istioctl install` deploys the gateway with label `istio: ingressgateway`.
6161
- TLS passthrough mode is required to allow secure access to the database.
6262
6363
```yaml
@@ -72,9 +72,9 @@ To configure Istio to work with the Redis Kubernetes operator, we will use two c
7272
- hosts:
7373
- '*.istio.k8s.my.example.com'
7474
port:
75-
name: https
75+
name: tls
7676
number: 443
77-
protocol: HTTPS
77+
protocol: TLS
7878
tls:
7979
mode: PASSTHROUGH
8080
```

content/operate/kubernetes/7.4.6/networking/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ url: '/operate/kubernetes/7.4.6/networking/'
1414

1515
Redis Enterprise for Kubernetes supports several ways to route external traffic to your RedisEnterpriseCluster:
1616

17-
- Ingress controllers [HAProxy](https://haproxy-ingress.github.io/) and [NGINX](https://kubernetes.github.io/ingress-nginx/) require an `ingress` API resource.
17+
- Ingress controllers [HAProxy](https://haproxy-ingress.github.io/) and [Ingress-NGINX](https://kubernetes.github.io/ingress-nginx/) (retired; existing deployments only) require an `ingress` API resource.
1818
- [Istio](https://istio.io/latest/docs/setup/getting-started/) requires `Gateway` and `VirtualService` API resources.
1919
- OpenShift uses [routes]({{< relref "/operate/kubernetes/7.4.6/networking/routes.md" >}}) to route external traffic.
2020
- The RedisEnterpriseActiveActiveDatabase (REAADB) requires any of the above routing methods to be configured in the RedisEnterpriseCluster (REC) with the `ingressOrRouteSpec` field.
@@ -27,7 +27,7 @@ Redis Enterprise supports three [types of services](https://kubernetes.io/docs/c
2727

2828
By default, the operator creates a `ClusterIP` type service, which exposes a cluster-internal IP and that can only be accessed from within the K8s cluster. For requests to be routed from outside the K8s cluster, you need an [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) (or [route](https://docs.openshift.com/container-platform/4.12/networking/routes/route-configuration.html) if you are using OpenShift). See [kubernetes.io](https://kubernetes.io/docs/) for more details on [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) and [Ingress controllers](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/).
2929

30-
* To use NGINX or HAProxy Ingress controllers, see [Ingress routing]({{< relref "/operate/kubernetes/7.4.6/networking/ingress.md" >}}).
30+
* To use HAProxy as an Ingress controller, see [Ingress routing]({{< relref "/operate/kubernetes/7.4.6/networking/ingress.md" >}}). The community NGINX ingress controller is retired.
3131
* To use OpenShift routes, see [OpenShift routes]({{< relref "/operate/kubernetes/7.4.6/networking/routes.md" >}}).
3232
* To use Istio as an Ingress controller, see [Istio Ingress routing]({{< relref "/operate/kubernetes/7.4.6/networking/istio-ingress.md" >}})
3333

content/operate/kubernetes/7.4.6/networking/ingress.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,21 @@ weight: 5
1212
url: '/operate/kubernetes/7.4.6/networking/ingress/'
1313
---
1414

15+
{{<warning>}}
16+
The community [Ingress-NGINX controller](https://github.com/kubernetes/ingress-nginx) (`kubernetes/ingress-nginx`) is retired. Best-effort maintenance ended in March 2026 and the project no longer ships releases, bug fixes, or security updates. If you are not already using it, use HAProxy or Istio as shown below, or migrate to a [Gateway API](https://gateway-api.sigs.k8s.io/) implementation.
17+
{{</warning>}}
18+
1519
## Prerequisites
1620

1721
Before creating an Ingress, you'll need:
1822

1923
- A RedisEnterpriseDatabase (REDB) with TLS enabled for client connections
20-
- A supported Ingress controller with `ssl-passthrough` enabled
21-
- [Ingress-NGINX Controller](https://kubernetes.github.io/ingress-nginx/deploy/)
22-
- Be sure to use the `kubernetes/ingress-nginx` controller and NOT the `nginxinc/kubernetes-ingress` controller.
24+
- An Ingress controller with `ssl-passthrough` enabled. Options include:
2325
- [HAProxy Ingress](https://haproxy-ingress.github.io/docs/getting-started/)
26+
- [Ingress-NGINX Controller](https://kubernetes.github.io/ingress-nginx/deploy/) (retired; existing deployments only)
2427
- To use Istio for your Ingress resources, see [Configure Istio for external routing]({{< relref "/operate/kubernetes/7.4.6/networking/istio-ingress.md" >}})
2528

26-
{{<note>}}Make sure your Ingress controller has `ssl-passthrough`enabled. This is enabled by default for HAProxy, but disabled by default for NGINX. See the [NGINX User Guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details. {{</note>}}
29+
{{<note>}}Make sure your Ingress controller has `ssl-passthrough` enabled. It is on by default for HAProxy and off by default for Ingress-NGINX. For Ingress-NGINX, start the controller with the `--enable-ssl-passthrough` flag. See the [Ingress-NGINX TLS guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details.{{</note>}}
2730

2831
## Create an Ingress resource
2932

@@ -45,7 +48,7 @@ Before creating an Ingress, you'll need:
4548

4649
1. Create a DNS entry that resolves your chosen database hostname to the IP address for the Ingress controller's LoadBalancer.
4750
48-
1. Create the Ingress resource YAML file.
51+
1. Create the Ingress resource YAML file.
4952
5053
``` YAML
5154
apiVersion: networking.k8s.io/v1
@@ -55,6 +58,7 @@ Before creating an Ingress, you'll need:
5558
annotations:
5659
<controller-specific-annotations-below>
5760
spec:
61+
ingressClassName: <haproxy | nginx>
5862
rules:
5963
- host: <my-db-hostname>
6064
http:
@@ -66,23 +70,23 @@ Before creating an Ingress, you'll need:
6670
name: <db-name>
6771
port:
6872
name: redis
69-
```
73+
```
7074
71-
For HAProxy, insert the following into the `annotations` section:
75+
Set `ingressClassName` to match the `IngressClass` your controller installed. The deprecated `kubernetes.io/ingress.class` annotation is no longer accepted by recent controller versions, so use `ingressClassName` instead.
76+
77+
For HAProxy, add the following annotation:
7278
7379
``` YAML
74-
kubernetes.io/ingress.class: haproxy
75-
ingress.kubernetes.io/ssl-passthrough: "true"
80+
ingress.kubernetes.io/ssl-passthrough: "true"
7681
```
7782
78-
For NGINX, insert the following into the `annotations` section:
83+
For Ingress-NGINX, add the following annotation:
7984
8085
``` YAML
81-
kubernetes.io/ingress.class: nginx
8286
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
83-
```
87+
```
8488
85-
The `ssl-passthrough` annotation is required to allow access to the database. The specific format changes depending on your Ingress controller and any additional customizations. See [NGINX Configuration annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) and [HAProxy Ingress Options](https://www.haproxy.com/documentation/kubernetes/latest/configuration/ingress/) for updated annotation formats.
89+
The `ssl-passthrough` annotation is required to allow access to the database. The exact format depends on your Ingress controller and any additional customizations. See [Ingress-NGINX annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) and [HAProxy Ingress configuration keys](https://haproxy-ingress.github.io/docs/configuration/keys/) for current annotation formats.
8690
8791
## Test your external access
8892

0 commit comments

Comments
 (0)