Browse Source
feature(ingress_nginx) Add ingressclass for ingress_nginx (#10091 )
Add option to configure class as the default class
Add option to disable wathcing for ingresses without class
Remove redundant if that always evaluates to true
Fix default value missing for ingress_nginx_default
pull/10128/head
Mathias Petermann
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
22 additions and
5 deletions
inventory/sample/group_vars/k8s_cluster/addons.yml
roles/kubernetes-apps/ingress_controller/ingress_nginx/defaults/main.yml
roles/kubernetes-apps/ingress_controller/ingress_nginx/tasks/main.yml
roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/ds-ingress-nginx-controller.yml.j2
roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/ingressclass-nginx.yml.j2
roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/role-ingress-nginx.yml.j2
@ -125,6 +125,8 @@ ingress_publish_status_address: ""
# - --default-ssl-certificate=default/foo-tls
# ingress_nginx_termination_grace_period_seconds: 300
# ingress_nginx_class: nginx
# ingress_nginx_without_class: true
# ingress_nginx_default: false
# ALB ingress controller deployment
ingress_alb_enabled : false
@ -13,7 +13,9 @@ ingress_nginx_configmap_tcp_services: {}
ingress_nginx_configmap_udp_services : {}
ingress_nginx_extra_args : [ ]
ingress_nginx_termination_grace_period_seconds : 300
# ingress_nginx_class: nginx
ingress_nginx_class : nginx
ingress_nginx_without_class : true
ingress_nginx_default : false
ingress_nginx_webhook_enabled : false
ingress_nginx_webhook_job_ttl : 1800
@ -22,6 +22,7 @@
- { name: clusterrolebinding-ingress-nginx, file: clusterrolebinding-ingress-nginx.yml, type : clusterrolebinding }
- { name: role-ingress-nginx, file: role-ingress-nginx.yml, type : role }
- { name: rolebinding-ingress-nginx, file: rolebinding-ingress-nginx.yml, type : rolebinding }
- { name: ingressclass-nginx, file: ingressclass-nginx.yml, type : ingressclass }
- { name: ds-ingress-nginx-controller, file: ds-ingress-nginx-controller.yml, type : ds }
ingress_nginx_templates_for_webhook:
- { name: admission-webhook-configuration, file: admission-webhook-configuration.yml, type : sa }
@ -51,9 +51,8 @@ spec:
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
- --annotations-prefix=nginx.ingress.kubernetes.io
{% if ingress_nginx_class is defined %}
- --ingress-class={{ ingress_nginx_class }}
{% else %}
{% if ingr ess_nginx_without_c las s %}
- --watch-ingress-without-class=true
{% endif %}
{% if ingress_nginx_host_network %}
@ -0,0 +1,13 @@
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: {{ ingress_nginx_class }}
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
{% if ingress_nginx_default %}
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
{%- endif %}
spec:
controller: k8s.io/ingress-nginx
@ -32,7 +32,7 @@ rules:
# Here: "<ingress-controller-leader>-<nginx>"
# This has to be adapted if you change either parameter
# when launching the nginx-ingress-controller.
resourceNames: [{% if ingress_class is defined %} "ingress-controller-leader-{{ ingress_nginx_class | default('nginx') }}"{% else %}"ingress-controller-leader"{% endif %} ]
resourceNames: ["ingress-controller-leader-{{ ingress_nginx_class }}"]
verbs: ["get", "update"]
- apiGroups: [""]
resources: ["events"]
@ -43,7 +43,7 @@ rules:
# Here: "<ingress-controller-leader>-<nginx>"
# This has to be adapted if you change either parameter
# when launching the nginx-ingress-controller.
resourceNames: [{% if ingress_class is defined %} "ingress-controller-leader-{{ ingress_nginx_class | default('nginx') }}"{% else %}"ingress-controller-leader"{% endif %} ]
resourceNames: ["ingress-controller-leader-{{ ingress_nginx_class }}"]
verbs: ["get", "update"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]