From 403a73ac11e9612cb9c66979e2d106f92789bd34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Kr=C3=B6ger?= Date: Wed, 15 Jan 2025 14:14:33 +0100 Subject: [PATCH] [ingress-nginx] expose custom tcp and udp ports in ingress-nginx-controller (#11850) --- .../ds-ingress-nginx-controller.yml.j2 | 20 +++++++++++++++++++ .../templates/svc-ingress-nginx.yml.j2 | 16 +++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/ds-ingress-nginx-controller.yml.j2 b/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/ds-ingress-nginx-controller.yml.j2 index 7f71592234a..8ae42200671 100644 --- a/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/ds-ingress-nginx-controller.yml.j2 +++ b/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/ds-ingress-nginx-controller.yml.j2 @@ -125,6 +125,26 @@ spec: {% if not ingress_nginx_host_network %} hostPort: {{ ingress_nginx_metrics_port }} {% endif %} +{% if ingress_nginx_configmap_tcp_services %} +{% for port in ingress_nginx_configmap_tcp_services.keys() %} + - name: tcp-port-{{ port }} + containerPort: "{{ port | int }}" + protocol: TCP +{% if not ingress_nginx_host_network %} + hostPort: "{{ port | int }}" +{% endif %} +{% endfor %} +{% endif %} +{% if ingress_nginx_configmap_udp_services %} +{% for port in ingress_nginx_configmap_udp_services.keys() %} + - name: udp-port-{{ port }} + containerPort: "{{ port | int }}" + protocol: UDP +{% if not ingress_nginx_host_network %} + hostPort: "{{ port | int }}" +{% endif %} +{% endfor %} +{% endif %} {% if ingress_nginx_webhook_enabled %} - name: webhook containerPort: 8443 diff --git a/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/svc-ingress-nginx.yml.j2 b/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/svc-ingress-nginx.yml.j2 index ba51ffe94e7..02f0b6239d3 100644 --- a/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/svc-ingress-nginx.yml.j2 +++ b/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/svc-ingress-nginx.yml.j2 @@ -27,6 +27,22 @@ spec: protocol: TCP {% if (ingress_nginx_service_type == 'NodePort' or ingress_nginx_service_type == 'LoadBalancer') and ingress_nginx_service_nodeport_https %} nodePort: {{ingress_nginx_service_nodeport_https | int}} +{% endif %} +{% if ingress_nginx_configmap_tcp_services %} +{% for port in ingress_nginx_configmap_tcp_services.keys() %} + - name: tcp-port-{{ port }} + port: "{{ port | int }}" + targetPort: "{{ port | int }}" + protocol: TCP +{% endfor %} +{% endif %} +{% if ingress_nginx_configmap_udp_services %} +{% for port in ingress_nginx_configmap_udp_services.keys() %} + - name: udp-port-{{ port }} + port: "{{ port | int }}" + targetPort: "{{ port | int }}" + protocol: UDP +{% endfor %} {% endif %} selector: app.kubernetes.io/name: ingress-nginx