From d68ff3e0474b9cd7d467806ac4bda5d8ba4aba2d Mon Sep 17 00:00:00 2001 From: Markus Schlotbohm Date: Fri, 6 Sep 2019 21:13:20 +0200 Subject: [PATCH] Fix #10921 (#16936) * Fix #10921 When the controller kind is specified as DaemonSet and useHostPort is set to true, there is no need to spin up a service of type NodePort or LoadBalancer, or at least you should be able to disable this option. Signed-off-by: Markus Schlotbohm * Add option `controller.service.enabled` to disable deployment of the service template. Signed-off-by: Markus Schlotbohm --- stable/nginx-ingress/Chart.yaml | 2 +- stable/nginx-ingress/README.md | 1 + stable/nginx-ingress/templates/controller-service.yaml | 2 ++ stable/nginx-ingress/values.yaml | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/stable/nginx-ingress/Chart.yaml b/stable/nginx-ingress/Chart.yaml index 145ded8c2b..7049cbac7d 100644 --- a/stable/nginx-ingress/Chart.yaml +++ b/stable/nginx-ingress/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: nginx-ingress -version: 1.19.0 +version: 1.19.1 appVersion: 0.25.1 home: https://github.com/kubernetes/ingress-nginx description: An nginx Ingress controller that uses ConfigMap to store the nginx configuration. diff --git a/stable/nginx-ingress/README.md b/stable/nginx-ingress/README.md index 665422006b..89d1740f2f 100644 --- a/stable/nginx-ingress/README.md +++ b/stable/nginx-ingress/README.md @@ -94,6 +94,7 @@ Parameter | Description | Default `controller.service.labels` | labels for controller service | `{}` `controller.publishService.enabled` | if true, the controller will set the endpoint records on the ingress objects to reflect those on the service | `false` `controller.publishService.pathOverride` | override of the default publish-service name | `""` +`controller.service.enabled` | if disabled no service will be created. This is especially useful when `controller.kind` is set to `DaemonSet` and `controller.daemonset.useHostPorts` is `true` | true `controller.service.clusterIP` | internal controller cluster service IP | `""` `controller.service.omitClusterIP` | To omit the `clusterIP` from the controller service | `false` `controller.service.externalIPs` | controller service external IP addresses. Do not set this when `controller.hostNetwork` is set to `true` and `kube-proxy` is used as there will be a port-conflict for port `80` | `[]` diff --git a/stable/nginx-ingress/templates/controller-service.yaml b/stable/nginx-ingress/templates/controller-service.yaml index 27a0fb0551..9da1a19bd0 100644 --- a/stable/nginx-ingress/templates/controller-service.yaml +++ b/stable/nginx-ingress/templates/controller-service.yaml @@ -1,3 +1,4 @@ +{{- if .Values.controller.service.enabled }} apiVersion: v1 kind: Service metadata: @@ -85,3 +86,4 @@ spec: component: "{{ .Values.controller.name }}" release: {{ .Release.Name }} type: "{{ .Values.controller.service.type }}" +{{- end }} diff --git a/stable/nginx-ingress/values.yaml b/stable/nginx-ingress/values.yaml index 0c7d4ab02e..16819d5d63 100644 --- a/stable/nginx-ingress/values.yaml +++ b/stable/nginx-ingress/values.yaml @@ -222,6 +222,8 @@ controller: configMapKey: "" service: + enabled: true + annotations: {} labels: {} omitClusterIP: false