From 20f8ecd91dccaab7bf6fc7e9ddd5f4da48109465 Mon Sep 17 00:00:00 2001 From: Alberto Barba Date: Thu, 1 Aug 2024 19:29:17 +0200 Subject: [PATCH] feat(agent): explicitly naming the prometheus metrics port in the agent daemonset --- charts/agent/Chart.yaml | 2 +- charts/agent/templates/daemonset.yaml | 5 ++ .../tests/daemonset_metrics_ports_test.yaml | 68 +++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 charts/agent/tests/daemonset_metrics_ports_test.yaml diff --git a/charts/agent/Chart.yaml b/charts/agent/Chart.yaml index 49d52d40b..37083438e 100644 --- a/charts/agent/Chart.yaml +++ b/charts/agent/Chart.yaml @@ -30,4 +30,4 @@ sources: - https://app.sysdigcloud.com/#/settings/user - https://github.com/draios/sysdig type: application -version: 1.27.13 +version: 1.27.14 diff --git a/charts/agent/templates/daemonset.yaml b/charts/agent/templates/daemonset.yaml index 13c3f9208..d6975c32b 100644 --- a/charts/agent/templates/daemonset.yaml +++ b/charts/agent/templates/daemonset.yaml @@ -230,6 +230,11 @@ spec: - name: SSL_CERT_FILE value: /opt/draios/certificates/{{- include "sysdig.custom_ca.keyName" (dict "global" .Values.global.ssl "component" .Values.ssl) -}} {{- end }} + {{- if and (hasKey .Values.sysdig.settings "prometheus_exporter") (.Values.sysdig.settings.prometheus_exporter.enabled) }} + ports: + - containerPort: {{ regexFind "[0-9]+$" (default "0.0.0.0:9544" .Values.sysdig.settings.prometheus_exporter.listen_url) }} + name: metrics + {{- end }} readinessProbe: {{- if eq (include "agent.enableHttpProbes" .) "true" }} httpGet: diff --git a/charts/agent/tests/daemonset_metrics_ports_test.yaml b/charts/agent/tests/daemonset_metrics_ports_test.yaml new file mode 100644 index 000000000..9577a8d9e --- /dev/null +++ b/charts/agent/tests/daemonset_metrics_ports_test.yaml @@ -0,0 +1,68 @@ +suite: Test Daemonset Metrics Port +templates: + - templates/daemonset.yaml +kubernetesProvider: + scheme: + "v1/Node": + gvr: + version: "v1" + resource: "nodes" + namespaced: false + objects: + - apiVersion: v1 + kind: Node + metadata: + name: fakenode + status: + nodeInfo: + osImage: fake-os-image +tests: + - it: test default behavior with no port + asserts: + - isNull: + path: spec.template.spec.containers[0].ports + templates: + - templates/daemonset.yaml + + - it: test behavior with prometheus_exporter enabled + set: + sysdig: + settings: + prometheus_exporter: + enabled: true + asserts: + - equal: + path: spec.template.spec.containers[0].ports + value: + - containerPort: 9544 + name: metrics + templates: + - templates/daemonset.yaml + + - it: test behavior with prometheus_exporter explicitly disabled + set: + sysdig: + settings: + prometheus_exporter: + enabled: false + asserts: + - isNull: + path: spec.template.spec.containers[0].ports + templates: + - templates/daemonset.yaml + + - it: test behavior with prometheus_exporter enabled and non-default port + set: + sysdig: + settings: + prometheus_exporter: + enabled: true + listen_url: 127.0.0.1:1234 + asserts: + - equal: + path: spec.template.spec.containers[0].ports + value: + - containerPort: 1234 + name: metrics + templates: + - templates/daemonset.yaml