From ced332be0d70ae3a2c84327f2d216f5cf1fc875d Mon Sep 17 00:00:00 2001 From: Myst <1592048+LeMyst@users.noreply.github.com> Date: Mon, 30 Sep 2024 15:09:05 +0000 Subject: [PATCH] Chart: Add `controller.metrics.service.enabled`. --- charts/ingress-nginx/README.md | 1 + .../templates/controller-service-metrics.yaml | 2 +- .../controller-service-metrics_test.yaml | 22 +++++++++++++++++-- charts/ingress-nginx/values.yaml | 2 ++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index cd181f76e..4a0f50484 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -372,6 +372,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.metrics.prometheusRule.enabled | bool | `false` | | | controller.metrics.prometheusRule.rules | list | `[]` | | | controller.metrics.service.annotations | object | `{}` | | +| controller.metrics.service.enabled | bool | `true` | Enable the metrics service or not. | | controller.metrics.service.externalIPs | list | `[]` | List of IP addresses at which the stats-exporter service is available # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips # | | controller.metrics.service.labels | object | `{}` | Labels to be added to the metrics service resource | | controller.metrics.service.loadBalancerSourceRanges | list | `[]` | | diff --git a/charts/ingress-nginx/templates/controller-service-metrics.yaml b/charts/ingress-nginx/templates/controller-service-metrics.yaml index 7c153295f..4b25a840e 100644 --- a/charts/ingress-nginx/templates/controller-service-metrics.yaml +++ b/charts/ingress-nginx/templates/controller-service-metrics.yaml @@ -1,4 +1,4 @@ -{{- if .Values.controller.metrics.enabled -}} +{{- if and .Values.controller.metrics.enabled .Values.controller.metrics.service.enabled -}} apiVersion: v1 kind: Service metadata: diff --git a/charts/ingress-nginx/tests/controller-service-metrics_test.yaml b/charts/ingress-nginx/tests/controller-service-metrics_test.yaml index afdb94046..ddb412e5b 100644 --- a/charts/ingress-nginx/tests/controller-service-metrics_test.yaml +++ b/charts/ingress-nginx/tests/controller-service-metrics_test.yaml @@ -3,16 +3,34 @@ templates: - controller-service-metrics.yaml tests: - - it: should not create a metrics Service if `controller.metrics.enabled` is false + - it: should not create a metrics Service if `controller.metrics.enabled` is false and `controller.metrics.service.enabled` is false set: controller.metrics.enabled: false + controller.metrics.service.enabled: false asserts: - hasDocuments: count: 0 - - it: should create a metrics Service if `controller.metrics.enabled` is true + - it: should not create a metrics Service if `controller.metrics.enabled` is false and `controller.metrics.service.enabled` is true + set: + controller.metrics.enabled: false + controller.metrics.service.enabled: true + asserts: + - hasDocuments: + count: 0 + + - it: should not create a metrics Service if `controller.metrics.enabled` is true and `controller.metrics.service.enabled` is false set: controller.metrics.enabled: true + controller.metrics.service.enabled: false + asserts: + - hasDocuments: + count: 0 + + - it: should create a metrics Service if `controller.metrics.enabled` is true and `controller.metrics.service.enabled` is true + set: + controller.metrics.enabled: true + controller.metrics.service.enabled: true asserts: - hasDocuments: count: 1 diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 50a41f2f0..136fae4b2 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -844,6 +844,8 @@ controller: # if this port is changed, change healthz-port: in extraArgs: accordingly enabled: false service: + # -- Enable the metrics service or not. + enabled: true annotations: {} # prometheus.io/scrape: "true" # prometheus.io/port: "10254"