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_defaultpull/10128/head
parent
4014a1cccb
commit
862fd2c5c4
|
@ -125,6 +125,8 @@ ingress_publish_status_address: ""
|
||||||
# - --default-ssl-certificate=default/foo-tls
|
# - --default-ssl-certificate=default/foo-tls
|
||||||
# ingress_nginx_termination_grace_period_seconds: 300
|
# ingress_nginx_termination_grace_period_seconds: 300
|
||||||
# ingress_nginx_class: nginx
|
# ingress_nginx_class: nginx
|
||||||
|
# ingress_nginx_without_class: true
|
||||||
|
# ingress_nginx_default: false
|
||||||
|
|
||||||
# ALB ingress controller deployment
|
# ALB ingress controller deployment
|
||||||
ingress_alb_enabled: false
|
ingress_alb_enabled: false
|
||||||
|
|
|
@ -13,7 +13,9 @@ ingress_nginx_configmap_tcp_services: {}
|
||||||
ingress_nginx_configmap_udp_services: {}
|
ingress_nginx_configmap_udp_services: {}
|
||||||
ingress_nginx_extra_args: []
|
ingress_nginx_extra_args: []
|
||||||
ingress_nginx_termination_grace_period_seconds: 300
|
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_enabled: false
|
||||||
ingress_nginx_webhook_job_ttl: 1800
|
ingress_nginx_webhook_job_ttl: 1800
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
- { name: clusterrolebinding-ingress-nginx, file: clusterrolebinding-ingress-nginx.yml, type: clusterrolebinding }
|
- { name: clusterrolebinding-ingress-nginx, file: clusterrolebinding-ingress-nginx.yml, type: clusterrolebinding }
|
||||||
- { name: role-ingress-nginx, file: role-ingress-nginx.yml, type: role }
|
- { name: role-ingress-nginx, file: role-ingress-nginx.yml, type: role }
|
||||||
- { name: rolebinding-ingress-nginx, file: rolebinding-ingress-nginx.yml, type: rolebinding }
|
- { 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 }
|
- { name: ds-ingress-nginx-controller, file: ds-ingress-nginx-controller.yml, type: ds }
|
||||||
ingress_nginx_templates_for_webhook:
|
ingress_nginx_templates_for_webhook:
|
||||||
- { name: admission-webhook-configuration, file: admission-webhook-configuration.yml, type: sa }
|
- { name: admission-webhook-configuration, file: admission-webhook-configuration.yml, type: sa }
|
||||||
|
|
|
@ -51,9 +51,8 @@ spec:
|
||||||
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
|
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
|
||||||
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
|
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
|
||||||
- --annotations-prefix=nginx.ingress.kubernetes.io
|
- --annotations-prefix=nginx.ingress.kubernetes.io
|
||||||
{% if ingress_nginx_class is defined %}
|
|
||||||
- --ingress-class={{ ingress_nginx_class }}
|
- --ingress-class={{ ingress_nginx_class }}
|
||||||
{% else %}
|
{% if ingress_nginx_without_class %}
|
||||||
- --watch-ingress-without-class=true
|
- --watch-ingress-without-class=true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if ingress_nginx_host_network %}
|
{% 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>"
|
# Here: "<ingress-controller-leader>-<nginx>"
|
||||||
# This has to be adapted if you change either parameter
|
# This has to be adapted if you change either parameter
|
||||||
# when launching the nginx-ingress-controller.
|
# 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"]
|
verbs: ["get", "update"]
|
||||||
- apiGroups: [""]
|
- apiGroups: [""]
|
||||||
resources: ["events"]
|
resources: ["events"]
|
||||||
|
@ -43,7 +43,7 @@ rules:
|
||||||
# Here: "<ingress-controller-leader>-<nginx>"
|
# Here: "<ingress-controller-leader>-<nginx>"
|
||||||
# This has to be adapted if you change either parameter
|
# This has to be adapted if you change either parameter
|
||||||
# when launching the nginx-ingress-controller.
|
# 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"]
|
verbs: ["get", "update"]
|
||||||
- apiGroups: ["coordination.k8s.io"]
|
- apiGroups: ["coordination.k8s.io"]
|
||||||
resources: ["leases"]
|
resources: ["leases"]
|
||||||
|
|
Loading…
Reference in New Issue