From 8cb882de741cc03bd292e181fb4904d651cea84e Mon Sep 17 00:00:00 2001 From: ChristineTChen Date: Tue, 7 Jan 2020 16:50:57 -0500 Subject: [PATCH 1/4] Add Cilium version metadata --- cilium/datadog_checks/cilium/cilium.py | 2 ++ cilium/tests/common.py | 4 +++- cilium/tests/fixtures/agent_metrics.txt | 3 +++ cilium/tests/test_cilium.py | 19 ++++++++++++++++++- cilium/tox.ini | 2 ++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/cilium/datadog_checks/cilium/cilium.py b/cilium/datadog_checks/cilium/cilium.py index 93ef94f21b889..f419d19f12727 100644 --- a/cilium/datadog_checks/cilium/cilium.py +++ b/cilium/datadog_checks/cilium/cilium.py @@ -40,6 +40,8 @@ def __init__(self, name, init_config, instances): 'namespace': 'cilium', 'metrics': metrics, 'prometheus_timeout': instance.get('timeout', 10), + 'metadata_metric_name': 'cilium_version', + 'metadata_label_map': {'version': 'version'}, } ) diff --git a/cilium/tests/common.py b/cilium/tests/common.py index 53e5886550dca..574597f56c129 100644 --- a/cilium/tests/common.py +++ b/cilium/tests/common.py @@ -1,9 +1,11 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +import os + CHECK_NAME = 'cilium' NAMESPACE = 'cilium.' - +CILIUM_VERSION = os.getenv('CILIUM_VERSION') AGENT_DEFAULT_METRICS = [ 'cilium.agent.api_process_time.seconds.count', diff --git a/cilium/tests/fixtures/agent_metrics.txt b/cilium/tests/fixtures/agent_metrics.txt index 196638d0c4518..7cef543add7c1 100644 --- a/cilium/tests/fixtures/agent_metrics.txt +++ b/cilium/tests/fixtures/agent_metrics.txt @@ -1082,3 +1082,6 @@ cilium_unreachable_health_endpoints 0 # HELP cilium_unreachable_nodes Number of nodes that cannot be reached # TYPE cilium_unreachable_nodes gauge cilium_unreachable_nodes 1 +# HELP cilium_version Cilium version +# TYPE cilium_version gauge +cilium_version{version="1.6.90"} 0 \ No newline at end of file diff --git a/cilium/tests/test_cilium.py b/cilium/tests/test_cilium.py index 189e3f002f656..ea4b028d78f53 100644 --- a/cilium/tests/test_cilium.py +++ b/cilium/tests/test_cilium.py @@ -3,7 +3,7 @@ # Licensed under a 3-clause BSD style license (see LICENSE) from datadog_checks.cilium import CiliumCheck -from .common import ADDL_AGENT_METRICS, AGENT_DEFAULT_METRICS, OPERATOR_AWS_METRICS, OPERATOR_METRICS +from .common import ADDL_AGENT_METRICS, AGENT_DEFAULT_METRICS, CILIUM_VERSION, OPERATOR_AWS_METRICS, OPERATOR_METRICS def test_agent_check(aggregator, agent_instance, mock_agent_data): @@ -22,3 +22,20 @@ def test_operator_check(aggregator, operator_instance, mock_operator_data): for m in OPERATOR_METRICS + OPERATOR_AWS_METRICS: aggregator.assert_metric(m) aggregator.assert_all_metrics_covered() + + +def test_version_metadata(agent_instance, datadog_agent): + check = CiliumCheck('cilium', {}, [agent_instance]) + check.check_id = 'test:123' + check.check(agent_instance) + + major, minor, patch = CILIUM_VERSION.split('.') + version_metadata = { + 'version.scheme': 'semver', + 'version.major': major, + 'version.minor': minor, + 'version.patch': patch, + 'version.raw': CILIUM_VERSION, + } + + datadog_agent.assert_metadata('test:123', version_metadata) \ No newline at end of file diff --git a/cilium/tox.ini b/cilium/tox.ini index ea6fc4c53fe1d..c3fb556bbcf27 100644 --- a/cilium/tox.ini +++ b/cilium/tox.ini @@ -21,3 +21,5 @@ passenv = commands = pip install -r requirements.in pytest -v {posargs} +setenv = + CILIUM_VERSION = 1.6.90 From a881aa5d2d306cc261b141ae8193e72dd49d0f8e Mon Sep 17 00:00:00 2001 From: ChristineTChen Date: Tue, 14 Jan 2020 10:04:58 -0500 Subject: [PATCH 2/4] Fix style --- cilium/tests/test_cilium.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cilium/tests/test_cilium.py b/cilium/tests/test_cilium.py index ea4b028d78f53..388ed56c6d53e 100644 --- a/cilium/tests/test_cilium.py +++ b/cilium/tests/test_cilium.py @@ -38,4 +38,4 @@ def test_version_metadata(agent_instance, datadog_agent): 'version.raw': CILIUM_VERSION, } - datadog_agent.assert_metadata('test:123', version_metadata) \ No newline at end of file + datadog_agent.assert_metadata('test:123', version_metadata) From 5341398b73ecc69d5cb14a6bbe9122756462b60b Mon Sep 17 00:00:00 2001 From: ChristineTChen Date: Tue, 14 Jan 2020 10:14:58 -0500 Subject: [PATCH 3/4] Update to latest cilium version --- cilium/tests/terraform/cilium.yaml | 8 ++++---- cilium/tox.ini | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cilium/tests/terraform/cilium.yaml b/cilium/tests/terraform/cilium.yaml index 17fd27bc13d5c..7357091a935bf 100644 --- a/cilium/tests/terraform/cilium.yaml +++ b/cilium/tests/terraform/cilium.yaml @@ -381,7 +381,7 @@ spec: key: custom-cni-conf name: cilium-config optional: true - image: "docker.io/cilium/cilium:v1.6" + image: "docker.io/cilium/cilium:v1.6.5" imagePullPolicy: IfNotPresent lifecycle: postStart: @@ -449,7 +449,7 @@ spec: initContainers: - name: wait-for-node-init command: ['sh', '-c', 'until stat /tmp/cilium-bootstrap-time > /dev/null 2>&1; do echo "Waiting on node-init to run..."; sleep 1; done'] - image: "docker.io/cilium/cilium:v1.6" + image: "docker.io/cilium/cilium:v1.6.5" imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /tmp/cilium-bootstrap-time @@ -475,7 +475,7 @@ spec: key: wait-bpf-mount name: cilium-config optional: true - image: "docker.io/cilium/cilium:v1.6" + image: "docker.io/cilium/cilium:v1.6.5" imagePullPolicy: IfNotPresent name: clean-cilium-state securityContext: @@ -757,7 +757,7 @@ spec: key: identity-allocation-mode name: cilium-config optional: true - image: "docker.io/cilium/operator:v1.6" + image: "docker.io/cilium/operator:v1.6.5" imagePullPolicy: IfNotPresent name: cilium-operator livenessProbe: diff --git a/cilium/tox.ini b/cilium/tox.ini index c3fb556bbcf27..ee2d7d64f44b4 100644 --- a/cilium/tox.ini +++ b/cilium/tox.ini @@ -22,4 +22,4 @@ commands = pip install -r requirements.in pytest -v {posargs} setenv = - CILIUM_VERSION = 1.6.90 + CILIUM_VERSION = 1.6.50 From 7b5186c352cc6bdfd92d6a9af7ffd74fddeb5321 Mon Sep 17 00:00:00 2001 From: ChristineTChen Date: Mon, 2 Mar 2020 11:35:23 -0500 Subject: [PATCH 4/4] Use fixture --- cilium/tests/test_cilium.py | 2 +- cilium/tox.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cilium/tests/test_cilium.py b/cilium/tests/test_cilium.py index 388ed56c6d53e..9eebe79457bd0 100644 --- a/cilium/tests/test_cilium.py +++ b/cilium/tests/test_cilium.py @@ -24,7 +24,7 @@ def test_operator_check(aggregator, operator_instance, mock_operator_data): aggregator.assert_all_metrics_covered() -def test_version_metadata(agent_instance, datadog_agent): +def test_version_metadata(datadog_agent, agent_instance, mock_agent_data): check = CiliumCheck('cilium', {}, [agent_instance]) check.check_id = 'test:123' check.check(agent_instance) diff --git a/cilium/tox.ini b/cilium/tox.ini index ee2d7d64f44b4..c3fb556bbcf27 100644 --- a/cilium/tox.ini +++ b/cilium/tox.ini @@ -22,4 +22,4 @@ commands = pip install -r requirements.in pytest -v {posargs} setenv = - CILIUM_VERSION = 1.6.50 + CILIUM_VERSION = 1.6.90