Skip to content

Commit 0b5a30b

Browse files
committed
Use HAProxy ingress controller by default
Ingress-nginx is deprecated and is going to become unmaintained after Feb/2026. See details here https://www.kubernetes.dev/blog/2025/11/12/ingress-nginx-retirement/ This PS adds support for HAProxy-ingress but does not remove the ingress-nginx support. Also default ingress class name and annotations are updated to make them more implementation agnostic. Change-Id: I1cbcd2ce0534bf865e484370297ca17c1b1af4e0 Signed-off-by: Vladimir Kozhukalov <kozhukalov@gmail.com>
1 parent c451a41 commit 0b5a30b

49 files changed

Lines changed: 250 additions & 125 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

aodh/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,10 +281,11 @@ network:
281281
ingress:
282282
public: true
283283
classes:
284-
namespace: "nginx"
285-
cluster: "nginx-cluster"
284+
namespace: "ingress-openstack"
285+
cluster: "ingress-cluster"
286286
annotations:
287287
nginx.ingress.kubernetes.io/rewrite-target: /
288+
haproxy.org/path-rewrite: /
288289
external_policy_local: false
289290
node_port:
290291
enabled: false

barbican/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,10 +221,11 @@ network:
221221
ingress:
222222
public: true
223223
classes:
224-
namespace: "nginx"
225-
cluster: "nginx-cluster"
224+
namespace: "ingress-openstack"
225+
cluster: "ingress-cluster"
226226
annotations:
227227
nginx.ingress.kubernetes.io/rewrite-target: /
228+
haproxy.org/path-rewrite: /
228229
external_policy_local: false
229230
node_port:
230231
enabled: false

blazar/values.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ network:
5555
ingress:
5656
public: true
5757
classes:
58-
namespace: "nginx"
59-
cluster: "nginx-cluster"
58+
namespace: "ingress-openstack"
59+
cluster: "ingress-cluster"
6060
annotations:
6161
nginx.ingress.kubernetes.io/rewrite-target: /
62+
haproxy.org/path-rewrite: /
6263
external_policy_local: false
6364
node_port:
6465
enabled: false
@@ -67,10 +68,11 @@ network:
6768
ingress:
6869
public: true
6970
classes:
70-
namespace: "nginx"
71-
cluster: "nginx-cluster"
71+
namespace: "ingress-openstack"
72+
cluster: "ingress-cluster"
7273
annotations:
7374
nginx.ingress.kubernetes.io/rewrite-target: /
75+
haproxy.org/path-rewrite: /
7476
external_policy_local: false
7577
node_port:
7678
enabled: false

ceph-rgw/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,12 +309,13 @@ network:
309309
ingress:
310310
public: true
311311
classes:
312-
namespace: "nginx"
313-
cluster: "nginx-cluster"
312+
namespace: "ingress-openstack"
313+
cluster: "ingress-cluster"
314314
annotations:
315315
nginx.ingress.kubernetes.io/rewrite-target: /
316316
nginx.ingress.kubernetes.io/proxy-body-size: "0"
317317
nginx.ingress.kubernetes.io/proxy-max-temp-file-size: "0"
318+
haproxy.org/path-rewrite: /
318319
external_policy_local: false
319320
node_port:
320321
enabled: false

cinder/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,10 +444,11 @@ network:
444444
ingress:
445445
public: true
446446
classes:
447-
namespace: "nginx"
448-
cluster: "nginx-cluster"
447+
namespace: "ingress-openstack"
448+
cluster: "ingress-cluster"
449449
annotations:
450450
nginx.ingress.kubernetes.io/rewrite-target: /
451+
haproxy.org/path-rewrite: /
451452
external_policy_local: false
452453
node_port:
453454
enabled: false

cloudkitty/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -747,10 +747,11 @@ network:
747747
ingress:
748748
public: true
749749
classes:
750-
namespace: "nginx"
751-
cluster: "nginx-cluster"
750+
namespace: "ingress-openstack"
751+
cluster: "ingress-cluster"
752752
annotations:
753753
nginx.ingress.kubernetes.io/rewrite-target: /
754+
haproxy.org/path-rewrite: /
754755
node_port:
755756
enabled: false
756757
port: 33053

cyborg/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,10 +539,11 @@ network:
539539
ingress:
540540
public: false
541541
classes:
542-
namespace: "nginx"
543-
cluster: "nginx-cluster"
542+
namespace: "ingress-openstack"
543+
cluster: "ingress-cluster"
544544
annotations:
545545
nginx.ingress.kubernetes.io/rewrite-target: /
546+
haproxy.org/path-rewrite: /
546547
node_port:
547548
enabled: false
548549
port: 30666

designate/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,11 @@ network:
229229
ingress:
230230
public: true
231231
classes:
232-
namespace: "nginx"
233-
cluster: "nginx-cluster"
232+
namespace: "ingress-openstack"
233+
cluster: "ingress-cluster"
234234
annotations:
235235
nginx.ingress.kubernetes.io/rewrite-target: /
236+
haproxy.org/path-rewrite: /
236237
external_policy_local: false
237238
node_port:
238239
enabled: false

doc/source/install/prerequisites.rst

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ Ingress controller
77
Ingress controller when deploying OpenStack on Kubernetes
88
is essential to ensure proper external access for the OpenStack services.
99

10-
We recommend using the `ingress-nginx`_ because it is simple and provides
11-
all necessary features. It utilizes Nginx as a reverse proxy backend.
10+
We recommend using the `haproxy-ingress`_ because it is simple and provides
11+
all necessary features. It utilizes HAProxy as a reverse proxy backend.
1212
Here is how to deploy it.
1313

1414
First, let's create a namespace for the OpenStack workloads. The ingress
@@ -30,19 +30,14 @@ Next, deploy the ingress controller in the ``openstack`` namespace:
3030
3131
.. code-block:: bash
3232
33-
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
34-
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
35-
--version="4.8.3" \
36-
--namespace=openstack \
37-
--set controller.kind=Deployment \
38-
--set controller.admissionWebhooks.enabled="false" \
39-
--set controller.scope.enabled="true" \
40-
--set controller.service.enabled="false" \
41-
--set controller.ingressClassResource.name=nginx \
42-
--set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx" \
43-
--set controller.ingressClassResource.default="false" \
44-
--set controller.ingressClass=nginx \
45-
--set controller.labels.app=ingress-api
33+
helm repo add haproxy-ingress https://haproxy-ingress.github.io/charts
34+
helm upgrade --install haproxy-ingress haproxy-ingress/haproxy-ingress \
35+
--version 0.15.0 \
36+
--namespace=openstack \
37+
--set controller.kind=Deployment \
38+
--set controller.ingressClassResource.enabled="true" \
39+
--set controller.ingressClass=ingress-openstack \
40+
--set controller.podLabels.app=ingress-api
4641
4742
You can deploy any other ingress controller that suits your needs best.
4843
See for example the list of available `ingress controllers`_.
@@ -54,7 +49,7 @@ For example, the OpenStack-Helm ``keystone`` chart by default creates a service
5449
that redirects traffic to the ingress controller pods selected using the
5550
``app: ingress-api`` label. Then it also creates an ``Ingress`` resource which
5651
the ingress controller then uses to configure its reverse proxy
57-
backend (Nginx) which eventually routes the traffic to the Keystone API
52+
backend (HAProxy) which eventually routes the traffic to the Keystone API
5853
service which works as an endpoint for Keystone API pods.
5954
6055
.. image:: ingress.jpg
@@ -67,7 +62,7 @@ service which works as an endpoint for Keystone API pods.
6762
service of type ``LoadBalancer`` or ``NodePort`` with the selector pointing to
6863
the ingress controller pods.
6964
70-
.. _ingress-nginx: https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/README.md
65+
.. _haproxy-ingress: https://haproxy-ingress.github.io/
7166
.. _ingress controllers: https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
7267
7368
MetalLB

elasticsearch/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,10 +873,11 @@ network:
873873
ingress:
874874
public: true
875875
classes:
876-
namespace: "nginx"
877-
cluster: "nginx-cluster"
876+
namespace: "ingress-openstack"
877+
cluster: "ingress-cluster"
878878
annotations:
879879
nginx.ingress.kubernetes.io/rewrite-target: /
880+
haproxy.org/path-rewrite: /
880881
node_port:
881882
enabled: false
882883
port: 30920

0 commit comments

Comments
 (0)