From 957d153c8eae38fffea135dbdf9ff060d216d909 Mon Sep 17 00:00:00 2001 From: Nicolas Takashi Date: Thu, 13 Jul 2023 11:27:53 +0100 Subject: [PATCH] [CHORE] adding ebpf collector Signed-off-by: Nicolas Takashi --- charts/opentelemetry-collector/Chart.yaml | 2 +- .../rendered/configmap-agent.yaml | 2 +- .../rendered/configmap.yaml | 2 +- .../rendered/daemonset.yaml | 4 +- .../rendered/deployment.yaml | 4 +- .../rendered/service.yaml | 2 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/configmap-agent.yaml | 2 +- .../rendered/daemonset.yaml | 4 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/configmap-agent.yaml | 2 +- .../rendered/daemonset.yaml | 4 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/configmap-agent.yaml | 2 +- .../rendered/daemonset.yaml | 4 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/configmap-agent.yaml | 2 +- .../daemonset-only/rendered/daemonset.yaml | 4 +- .../rendered/serviceaccount.yaml | 2 +- .../deployment-only/rendered/configmap.yaml | 2 +- .../deployment-only/rendered/deployment.yaml | 4 +- .../deployment-only/rendered/service.yaml | 2 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/configmap.yaml | 2 +- .../rendered/deployment.yaml | 4 +- .../rendered/service.yaml | 2 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/deployment.yaml | 2 +- .../rendered/service.yaml | 2 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/configmap-statefulset.yaml | 2 +- .../statefulset-only/rendered/service.yaml | 2 +- .../rendered/serviceaccount.yaml | 2 +- .../rendered/statefulset.yaml | 4 +- .../templates/network-explorer/_helpers.tpl | 82 ++++++ .../cloud-collector-deployment.yaml | 115 ++++++++ .../cloud-collector-serviceaccount.yaml | 12 + .../templates/network-explorer/configmap.yaml | 13 + .../k8s-collector-clusterrole.yaml | 25 ++ .../k8s-collector-clusterrolebinding.yaml | 16 ++ .../k8s-collector-deployment.yaml | 160 +++++++++++ .../k8s-collector-serviceaccount.yaml | 8 + .../kernel-collector-clusterrole.yaml | 17 ++ .../kernel-collector-clusterrolebinding.yaml | 16 ++ .../kernel-collector-daemonset.yaml | 199 +++++++++++++ .../kernel-collector-podsecuritypolicy.yaml | 38 +++ .../kernel-collector-serviceaccount.yaml | 8 + .../network-explorer/reducer-deployment.yaml | 115 ++++++++ .../network-explorer/reducer-service.yaml | 24 ++ .../values.schema.json | 150 ++++++++++ charts/opentelemetry-collector/values.yaml | 266 ++++++++++++++++++ 51 files changed, 1307 insertions(+), 43 deletions(-) create mode 100644 charts/opentelemetry-collector/templates/network-explorer/_helpers.tpl create mode 100644 charts/opentelemetry-collector/templates/network-explorer/cloud-collector-deployment.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/cloud-collector-serviceaccount.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/configmap.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrole.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrolebinding.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/k8s-collector-deployment.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/k8s-collector-serviceaccount.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrole.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrolebinding.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/kernel-collector-daemonset.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/kernel-collector-podsecuritypolicy.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/kernel-collector-serviceaccount.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/reducer-deployment.yaml create mode 100644 charts/opentelemetry-collector/templates/network-explorer/reducer-service.yaml diff --git a/charts/opentelemetry-collector/Chart.yaml b/charts/opentelemetry-collector/Chart.yaml index e94eb2e68..ad0e0bc01 100644 --- a/charts/opentelemetry-collector/Chart.yaml +++ b/charts/opentelemetry-collector/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: opentelemetry-collector -version: 0.62.2 +version: 0.63.0 description: OpenTelemetry Collector Helm chart for Kubernetes type: application home: https://opentelemetry.io/ diff --git a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap-agent.yaml index e181b62fc..9d8c2bbbc 100644 --- a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap-agent.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap-agent.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap.yaml b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap.yaml index 40f6d70ae..346263491 100644 --- a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/daemonset.yaml index 2d097bc9c..6c8245e8c 100644 --- a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/daemonset.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/daemonset.yaml @@ -5,7 +5,7 @@ kind: DaemonSet metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -21,7 +21,7 @@ spec: template: metadata: annotations: - checksum/config: 46472f2ed9ca2cae8aa6b2bf37eddf1b804685780513d7aa74593abec5dd0792 + checksum/config: 05d49ab2d6fdf2c4ae24177bd3388603215677eeb0d7f8d04212d08eea78eef1 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/deployment.yaml b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/deployment.yaml index a30de7bcc..7b51da854 100644 --- a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/deployment.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/deployment.yaml @@ -5,7 +5,7 @@ kind: Deployment metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -23,7 +23,7 @@ spec: template: metadata: annotations: - checksum/config: 3e4b3981267ad3a64323a3ea8bf6b5456cd16fd5a6c74306608ce593b6f71013 + checksum/config: dd398f20da75dec2d48ef955e86c97aee60643ddcd278c25bd84840b5e830b42 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/service.yaml b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/service.yaml index 6a6b37ded..060fefe2e 100644 --- a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/service.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/service.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/configmap-agent.yaml index b7ce8110b..cde45c798 100644 --- a/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/configmap-agent.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/configmap-agent.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/daemonset.yaml index 399eba6ed..05a12975a 100644 --- a/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/daemonset.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/daemonset.yaml @@ -5,7 +5,7 @@ kind: DaemonSet metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -21,7 +21,7 @@ spec: template: metadata: annotations: - checksum/config: 593c29545bf6044e25ee9435b0671df70d4ff50087a9454286281760979441c2 + checksum/config: a2d9141949d6cf51dfef0603067bafca8027ffb1c06b1405c1b71120dff56856 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/configmap-agent.yaml index 9059ebd72..3bbf69898 100644 --- a/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/configmap-agent.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/configmap-agent.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/daemonset.yaml index b08866e15..fc248fa4a 100644 --- a/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/daemonset.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/daemonset.yaml @@ -5,7 +5,7 @@ kind: DaemonSet metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -21,7 +21,7 @@ spec: template: metadata: annotations: - checksum/config: b7bc6f40f133055f591b6bea2b36251fb02d0ceca9e3d69d97438549f92697a2 + checksum/config: d16cfa5c657cfcc941c3fd5bc99a87e24b35acb9d9d1d0c8761b1093beadad34 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/configmap-agent.yaml index ae6c33a3b..a8ee9648f 100644 --- a/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/configmap-agent.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/configmap-agent.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/daemonset.yaml index 94ec49554..0d200a203 100644 --- a/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/daemonset.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/daemonset.yaml @@ -5,7 +5,7 @@ kind: DaemonSet metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -21,7 +21,7 @@ spec: template: metadata: annotations: - checksum/config: dea04d4ee304688ad9c7ac25be60339f2d4403b11b4cb1ac99a61a53008118a0 + checksum/config: 8982a0e14ff679dde9dd3dd0933aa80aa994f1e2005036a6039e7193ee2b70da labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-only/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-only/rendered/configmap-agent.yaml index ae6c33a3b..a8ee9648f 100644 --- a/charts/opentelemetry-collector/examples/daemonset-only/rendered/configmap-agent.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-only/rendered/configmap-agent.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/daemonset-only/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-only/rendered/daemonset.yaml index 17aaefabb..d0c8ca185 100644 --- a/charts/opentelemetry-collector/examples/daemonset-only/rendered/daemonset.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-only/rendered/daemonset.yaml @@ -5,7 +5,7 @@ kind: DaemonSet metadata: name: example-opentelemetry-collector-agent labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -21,7 +21,7 @@ spec: template: metadata: annotations: - checksum/config: dea04d4ee304688ad9c7ac25be60339f2d4403b11b4cb1ac99a61a53008118a0 + checksum/config: 8982a0e14ff679dde9dd3dd0933aa80aa994f1e2005036a6039e7193ee2b70da labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-only/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-only/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/daemonset-only/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-only/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-only/rendered/configmap.yaml b/charts/opentelemetry-collector/examples/deployment-only/rendered/configmap.yaml index 40f6d70ae..346263491 100644 --- a/charts/opentelemetry-collector/examples/deployment-only/rendered/configmap.yaml +++ b/charts/opentelemetry-collector/examples/deployment-only/rendered/configmap.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-only/rendered/deployment.yaml b/charts/opentelemetry-collector/examples/deployment-only/rendered/deployment.yaml index 281bed44b..9047079c7 100644 --- a/charts/opentelemetry-collector/examples/deployment-only/rendered/deployment.yaml +++ b/charts/opentelemetry-collector/examples/deployment-only/rendered/deployment.yaml @@ -5,7 +5,7 @@ kind: Deployment metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -23,7 +23,7 @@ spec: template: metadata: annotations: - checksum/config: 3e4b3981267ad3a64323a3ea8bf6b5456cd16fd5a6c74306608ce593b6f71013 + checksum/config: dd398f20da75dec2d48ef955e86c97aee60643ddcd278c25bd84840b5e830b42 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/deployment-only/rendered/service.yaml b/charts/opentelemetry-collector/examples/deployment-only/rendered/service.yaml index 6a6b37ded..060fefe2e 100644 --- a/charts/opentelemetry-collector/examples/deployment-only/rendered/service.yaml +++ b/charts/opentelemetry-collector/examples/deployment-only/rendered/service.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-only/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/deployment-only/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/deployment-only/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/deployment-only/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/configmap.yaml b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/configmap.yaml index 8ee15f6c0..e706fed38 100644 --- a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/configmap.yaml +++ b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/configmap.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/deployment.yaml b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/deployment.yaml index f3d3bd365..2cc0b2c57 100644 --- a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/deployment.yaml +++ b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/deployment.yaml @@ -5,7 +5,7 @@ kind: Deployment metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -23,7 +23,7 @@ spec: template: metadata: annotations: - checksum/config: cbd23c8115adfd5fc353b4b18a24681556ec5d7b4c6c92be080ddad9081f2d73 + checksum/config: 38a1ad0d55e3809b1d504ead21cb56479a38d74934f60f910e7e9a47a54f5334 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/service.yaml b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/service.yaml index f46c50954..712888ce9 100644 --- a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/service.yaml +++ b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/service.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/deployment.yaml b/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/deployment.yaml index dcdc7dc32..9264a19d8 100644 --- a/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/deployment.yaml +++ b/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/deployment.yaml @@ -5,7 +5,7 @@ kind: Deployment metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/service.yaml b/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/service.yaml index 6a6b37ded..060fefe2e 100644 --- a/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/service.yaml +++ b/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/service.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/statefulset-only/rendered/configmap-statefulset.yaml b/charts/opentelemetry-collector/examples/statefulset-only/rendered/configmap-statefulset.yaml index eb4309e7c..99d75bf28 100644 --- a/charts/opentelemetry-collector/examples/statefulset-only/rendered/configmap-statefulset.yaml +++ b/charts/opentelemetry-collector/examples/statefulset-only/rendered/configmap-statefulset.yaml @@ -5,7 +5,7 @@ kind: ConfigMap metadata: name: example-opentelemetry-collector-statefulset labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/statefulset-only/rendered/service.yaml b/charts/opentelemetry-collector/examples/statefulset-only/rendered/service.yaml index d0b2b1f9f..12cdc8aa4 100644 --- a/charts/opentelemetry-collector/examples/statefulset-only/rendered/service.yaml +++ b/charts/opentelemetry-collector/examples/statefulset-only/rendered/service.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/statefulset-only/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/statefulset-only/rendered/serviceaccount.yaml index 3d0891b4a..fa4e23aac 100644 --- a/charts/opentelemetry-collector/examples/statefulset-only/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/statefulset-only/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" diff --git a/charts/opentelemetry-collector/examples/statefulset-only/rendered/statefulset.yaml b/charts/opentelemetry-collector/examples/statefulset-only/rendered/statefulset.yaml index 629bd7b8f..357968e78 100644 --- a/charts/opentelemetry-collector/examples/statefulset-only/rendered/statefulset.yaml +++ b/charts/opentelemetry-collector/examples/statefulset-only/rendered/statefulset.yaml @@ -5,7 +5,7 @@ kind: StatefulSet metadata: name: example-opentelemetry-collector labels: - helm.sh/chart: opentelemetry-collector-0.62.2 + helm.sh/chart: opentelemetry-collector-0.63.0 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example app.kubernetes.io/version: "0.81.0" @@ -24,7 +24,7 @@ spec: template: metadata: annotations: - checksum/config: 682bc943f21fe4f8b34d0c038601aab9226339da9c618882a7aabbd250469100 + checksum/config: 564c0616e3b6290ae2297d55cb8f50bfd0c2e01d48bb6b6e7c5e7eb7f6b307c6 labels: app.kubernetes.io/name: opentelemetry-collector diff --git a/charts/opentelemetry-collector/templates/network-explorer/_helpers.tpl b/charts/opentelemetry-collector/templates/network-explorer/_helpers.tpl new file mode 100644 index 000000000..89c5dd0d0 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/_helpers.tpl @@ -0,0 +1,82 @@ +{{/* +Fully qualified app name for the kernel-collector daemonset. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "opentelemetry-collector-kernel-collector.fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- printf "%s-kernel-collector" .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s-kernel-collector" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use for the kernel-collector +*/}} +{{- define "opentelemetry-collector-kernel-collector.serviceAccountName" -}} +{{- if .Values.networkExplorer.kernelCollector.serviceAccount.create }} +{{- default (include "opentelemetry-collector-kernel-collector.fullname" .) .Values.networkExplorer.kernelCollector.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.networkExplorer.kernelCollector.serviceAccount.name }} +{{- end }} +{{- end }} + +{{/* +Fully qualified app name for the reducer deployment. +*/}} +{{- define "opentelemetry-collector-reducer.fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- printf "%s-reducer" .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s-reducer" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} + +{{/* +Fully qualified app name for the k8s-collector deployment. +*/}} +{{- define "opentelemetry-collector-k8s-collector.fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- printf "%s-k8s-collector" .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s-k8s-collector" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use for the k8s-collector +*/}} +{{- define "opentelemetry-collector-k8s-collector.serviceAccountName" -}} +{{- if .Values.networkExplorer.k8sCollector.serviceAccount.create }} +{{- default (include "opentelemetry-collector-k8s-collector.fullname" .) .Values.networkExplorer.k8sCollector.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.networkExplorer.k8sCollector.serviceAccount.name }} +{{- end }} +{{- end }} + +{{/* +Fully qualified app name for the cloud-collector deployment. +*/}} +{{- define "opentelemetry-collector-cloud-collector.fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- printf "%s-cloud-collector" .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s-cloud-collector" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use for the cloud-collector +*/}} +{{- define "opentelemetry-collector-cloud-collector.serviceAccountName" -}} +{{- if .Values.networkExplorer.cloudCollector.serviceAccount.create }} +{{- default (include "opentelemetry-collector-cloud-collector.fullname" .) .Values.networkExplorer.cloudCollector.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.networkExplorer.cloudCollector.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/opentelemetry-collector/templates/network-explorer/cloud-collector-deployment.yaml b/charts/opentelemetry-collector/templates/network-explorer/cloud-collector-deployment.yaml new file mode 100644 index 000000000..e392653ac --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/cloud-collector-deployment.yaml @@ -0,0 +1,115 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.cloudCollector.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "opentelemetry-collector-cloud-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +spec: + progressDeadlineSeconds: 600 + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-cloud-collector.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + strategy: + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-cloud-collector.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + spec: +{{- if .Values.networkExplorer.imagePullSecrets }} + imagePullSecrets: +{{- range .Values.networkExplorer.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} + containers: + - image: "{{ default .Values.networkExplorer.images.repository .Values.networkExplorer.cloudCollector.image.repository }}/{{ .Values.networkExplorer.cloudCollector.image.name }}:{{ default .Values.networkExplorer.images.tag .Values.networkExplorer.cloudCollector.image.tag }}" + imagePullPolicy: {{ .Values.networkExplorer.images.pullPolicy }} + name: cloud-collector +{{- if hasKey .Values.networkExplorer.cloudCollector "resources" }} + resources: +{{ toYaml .Values.networkExplorer.cloudCollector.resources | indent 10 }} +{{- end }} + args: +{{- if .Values.networkExplorer.log.console }} + - --log-console +{{- end }} +{{- if hasKey .Values.networkExplorer.log "level" }} + - --{{ .Values.networkExplorer.log.level }} +{{- end }} +{{- if hasKey .Values.networkExplorer.cloudCollector "log" -}} +{{- if hasKey .Values.networkExplorer.cloudCollector.log "whitelist" }} +{{- if hasKey .Values.networkExplorer.cloudCollector.log.whitelist "channel" }} + - --log-whitelist-channel={{ .Values.networkExplorer.cloudCollector.log.whitelist.channel }} +{{- end }} +{{- if hasKey .Values.networkExplorer.cloudCollector.log.whitelist "component" }} + - --log-whitelist-component={{ .Values.networkExplorer.cloudCollector.log.whitelist.component }} +{{- end }} +{{- if hasKey .Values.networkExplorer.cloudCollector.log.whitelist "cloudPlatform" }} + - --log-whitelist-cloud-platform={{ .Values.networkExplorer.cloudCollector.log.whitelist.cloudPlatform }} +{{- end }} +{{- end }} +{{- end }} +{{- if .Values.networkExplorer.cloudCollector.additionalArgs }} +{{ toYaml .Values.networkExplorer.cloudCollector.additionalArgs | indent 10 }} +{{- end }} + env: + - name: "EBPF_NET_CLUSTER_NAME" + value: {{ tpl (.Values.networkExplorer.clusterName | toYaml) . }} +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.enabled) }} + - name: "EBPF_NET_DEBUG_MODE" + value: "true" +{{- end }} +{{- end }} +{{- if (default false .Values.networkExplorer.cloudCollector.runUnderGDB) }} + - name: "EBPF_NET_RUN_UNDER_GDB" + value: "gdb" +{{- end }} + - name: "EBPF_NET_INTAKE_HOST" + value: {{ include "opentelemetry-collector-reducer.fullname" . }} + - name: "EBPF_NET_INTAKE_PORT" + value: "{{ default 7000 .Values.networkExplorer.reducer.telemetryPort }}" +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: "EBPF_NET_MINIDUMP_DIR" + value: "/hostfs/var/run/network-explorer/minidump" +{{- end }} +{{- end }} +{{- if .Values.networkExplorer.cloudCollector.env }} +{{ toYaml .Values.networkExplorer.cloudCollector.env | indent 10 }} +{{- end }} +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + volumeMounts: + - mountPath: /hostfs/var/run/network-explorer + name: host-var-run-network-explorer + readOnly: false + volumes: + - name: host-var-run-network-explorer + hostPath: + path: /var/run/network-explorer + type: DirectoryOrCreate +{{- end }} +{{- end }} + terminationGracePeriodSeconds: 30 + securityContext: {} + serviceAccountName: {{ include "opentelemetry-collector-cloud-collector.serviceAccountName" . }} + {{- with .Values.networkExplorer.cloudCollector.nodeSelector }} + nodeSelector: +{{ toYaml . | indent 8}} + {{- end }} + {{- with .Values.networkExplorer.cloudCollector.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.networkExplorer.cloudCollector.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} + {{- end }} +{{- end }} diff --git a/charts/opentelemetry-collector/templates/network-explorer/cloud-collector-serviceaccount.yaml b/charts/opentelemetry-collector/templates/network-explorer/cloud-collector-serviceaccount.yaml new file mode 100644 index 000000000..027835d0c --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/cloud-collector-serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.cloudCollector.enabled .Values.networkExplorer.cloudCollector.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "opentelemetry-collector-cloud-collector.serviceAccountName" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} + {{- with .Values.networkExplorer.cloudCollector.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/configmap.yaml b/charts/opentelemetry-collector/templates/network-explorer/configmap.yaml new file mode 100644 index 000000000..074a4b9b7 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/configmap.yaml @@ -0,0 +1,13 @@ +{{- if .Values.networkExplorer.enabled}} +## TODO: Review Cluster Name +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "opentelemetry-collector.fullname" . }}-config + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +data: + config.yaml: | + labels: + environment: {{ tpl (.Values.networkExplorer.clusterName | toYaml) . }} +{{- end }} diff --git a/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrole.yaml b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrole.yaml new file mode 100644 index 000000000..dd0411162 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrole.yaml @@ -0,0 +1,25 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.rbac.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "opentelemetry-collector-k8s-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - replicasets + verbs: + - get + - list + - watch +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrolebinding.yaml b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrolebinding.yaml new file mode 100644 index 000000000..cafc8249c --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-clusterrolebinding.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.rbac.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "opentelemetry-collector-k8s-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "opentelemetry-collector-k8s-collector.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ include "opentelemetry-collector-k8s-collector.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-deployment.yaml b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-deployment.yaml new file mode 100644 index 000000000..fcdcd76ca --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-deployment.yaml @@ -0,0 +1,160 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.k8sCollector.enabled }} +# The k8s-collector consists of two services: +# 1) k8s-watcher: talks to the Kubernetes API server to determine the current state of +# the cluster; sets up watches to be notified of subsequent changes to pods, services +# and other resources. +# 2) k8s-relay: relays the information collected by k8s-watcher to the reducer. +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "opentelemetry-collector-k8s-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +spec: + progressDeadlineSeconds: 600 + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-k8s-collector.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + strategy: + type: RollingUpdate + template: + metadata: + annotations: + # This is here to allow us to do "zero-downtime" updates without an image change. + rollingUpdateVersion: "1" + charts.flowmill.com/version: {{ .Chart.Version }} + labels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-k8s-collector.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + spec: +{{- if .Values.networkExplorer.imagePullSecrets }} + imagePullSecrets: +{{- range .Values.networkExplorer.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} + containers: + - image: "{{ default .Values.networkExplorer.images.repository .Values.networkExplorer.k8sCollector.watcher.image.repository }}/{{ .Values.networkExplorer.k8sCollector.watcher.image.name }}:{{ default .Values.networkExplorer.images.tag .Values.networkExplorer.k8sCollector.watcher.image.tag }}" + imagePullPolicy: {{ .Values.networkExplorer.images.pullPolicy }} + name: k8s-watcher +{{- if hasKey .Values.networkExplorer.k8sCollector.watcher "resources" }} + resources: +{{ toYaml .Values.networkExplorer.k8sCollector.watcher.resources | indent 10 }} +{{- end }} + args: + - --log-console + {{- if hasKey .Values.networkExplorer.log "level" }} + - --log-level={{ .Values.networkExplorer.log.level }} + {{- end }} + # k8s-relay, which is a service that the k8s-watcher talks to. + # Currently not configurable, has to be reachable on localhost:8172, so must + # share a pod with the k8s-watcher above. + - image: "{{ default .Values.networkExplorer.images.repository .Values.networkExplorer.k8sCollector.relay.image.repository }}/{{ .Values.networkExplorer.k8sCollector.relay.image.name }}:{{ default .Values.networkExplorer.images.tag .Values.networkExplorer.k8sCollector.relay.image.tag }}" + imagePullPolicy: {{ .Values.networkExplorer.images.pullPolicy }} + name: k8s-relay +{{- if hasKey .Values.networkExplorer.k8sCollector.relay "resources" }} + resources: +{{ toYaml .Values.networkExplorer.k8sCollector.relay.resources | indent 10 }} +{{- end }} + args: + - --config-file=/etc/network-explorer/config.yaml +{{- if .Values.networkExplorer.log.console }} + - --log-console +{{- end }} +{{- if hasKey .Values.networkExplorer.log "level" }} + - --{{ .Values.networkExplorer.log.level }} +{{- end }} +{{- if hasKey .Values.networkExplorer.k8sCollector.relay "log" -}} +{{- if hasKey .Values.networkExplorer.k8sCollector.relay.log "whitelist" }} +{{- if hasKey .Values.networkExplorer.k8sCollector.relay.log.whitelist "channel" }} + - --log-whitelist-channel={{ .Values.networkExplorer.k8sCollector.relay.log.whitelist.channel }} +{{- end }} +{{- if hasKey .Values.networkExplorer.k8sCollector.relay.log.whitelist "component" }} + - --log-whitelist-component={{ .Values.networkExplorer.k8sCollector.relay.log.whitelist.component }} +{{- end }} +{{- if hasKey .Values.networkExplorer.k8sCollector.relay.log.whitelist "cloudPlatform" }} + - --log-whitelist-cloud-platform={{ .Values.networkExplorer.k8sCollector.relay.log.whitelist.cloudPlatform }} +{{- end }} +{{- end }} +{{- end }} +{{- if .Values.networkExplorer.k8sCollector.relay.additionalArgs }} +{{ toYaml .Values.networkExplorer.k8sCollector.relay.additionalArgs | indent 10 }} +{{- end }} + env: + - name: "EBPF_NET_CLUSTER_NAME" + value: {{ tpl (.Values.networkExplorer.clusterName | toYaml) . }} +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.enabled) }} + - name: "EBPF_NET_DEBUG_MODE" + value: "true" +{{- end }} +{{- end }} +{{- if (default false .Values.networkExplorer.k8sCollector.relay.runUnderGDB) }} + - name: "EBPF_NET_RUN_UNDER_GDB" + value: "gdb" +{{- end }} + - name: "EBPF_NET_INTAKE_HOST" + value: {{ include "opentelemetry-collector-reducer.fullname" . }} + - name: "EBPF_NET_INTAKE_PORT" + value: "{{ default 7000 .Values.networkExplorer.reducer.telemetryPort }}" +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: "EBPF_NET_MINIDUMP_DIR" + value: "/hostfs/var/run/network-explorer/minidump" +{{- end }} +{{- end }} +{{- if .Values.networkExplorer.debug.sendUnplannedExitMetric }} + - name: "EBPF_NET_CRASH_METRIC_HOST" + value: {{quote (include "opentelemetry-collector.fullname" .) }} + - name: "EBPF_NET_CRASH_METRIC_PORT" + value: {{ .Values.ports.otlp.servicePort | quote }} +{{- end }} +{{- if .Values.networkExplorer.k8sCollector.relay.env }} +{{ toYaml .Values.networkExplorer.k8sCollector.relay.env | indent 10 }} +{{- end }} + volumeMounts: + - mountPath: /etc/network-explorer + name: k8s-relay-config +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - mountPath: /hostfs/var/run/network-explorer + name: host-var-run-network-explorer + readOnly: false +{{- end }} +{{- end }} + terminationGracePeriodSeconds: 30 + volumes: +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: host-var-run-network-explorer + hostPath: + path: /var/run/network-explorer + type: DirectoryOrCreate +{{- end }} +{{- end }} + - name: k8s-relay-config + projected: + sources: + - configMap: + name: {{ include "opentelemetry-collector.fullname" . }}-config + items: + - key: config.yaml + path: config.yaml + securityContext: {} + serviceAccountName: {{ include "opentelemetry-collector-k8s-collector.serviceAccountName" . }} + {{- with .Values.networkExplorer.k8sCollector.nodeSelector }} + nodeSelector: +{{ toYaml . | indent 8}} + {{- end }} + {{- with .Values.networkExplorer.k8sCollector.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.networkExplorer.k8sCollector.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} + {{- end }} +{{- end }} diff --git a/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-serviceaccount.yaml b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-serviceaccount.yaml new file mode 100644 index 000000000..9de2d9b45 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/k8s-collector-serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.k8sCollector.enabled .Values.networkExplorer.k8sCollector.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "opentelemetry-collector-k8s-collector.serviceAccountName" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrole.yaml b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrole.yaml new file mode 100644 index 000000000..91ae7995a --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrole.yaml @@ -0,0 +1,17 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.rbac.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +rules: +- apiGroups: + - policy + resourceNames: + - {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + resources: + - podsecuritypolicies + verbs: + - use +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrolebinding.yaml b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrolebinding.yaml new file mode 100644 index 000000000..256786c29 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-clusterrolebinding.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.rbac.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ include "opentelemetry-collector-kernel-collector.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-daemonset.yaml b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-daemonset.yaml new file mode 100644 index 000000000..3ffd02ada --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-daemonset.yaml @@ -0,0 +1,199 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.kernelCollector.enabled }} +# kernel collector daemonset: deploys the kernel collector to each node in the cluster. +# The kernel collector needs to be able to compile and install +# eBPF programs in the node's kernel, so needs to run as root and +# needs to mount /lib/modules and /usr/src from the node itself. +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + annotations: + release_number: "3" + charts.flowmill.com/version: {{ .Chart.Version }} + labels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + spec: +{{- if .Values.networkExplorer.imagePullSecrets }} + imagePullSecrets: +{{- range .Values.networkExplorer.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} + containers: + - name: kernel-collector + image: "{{ default .Values.networkExplorer.images.repository .Values.networkExplorer.kernelCollector.image.repository }}/{{ .Values.networkExplorer.kernelCollector.image.name }}:{{ default .Values.networkExplorer.images.tag .Values.networkExplorer.kernelCollector.image.tag }}" + imagePullPolicy: {{ .Values.networkExplorer.images.pullPolicy }} + args: + - --config-file=/etc/network-explorer/config.yaml +{{- if .Values.networkExplorer.kernelCollector.bpfDumpFile }} + - --bpf-dump-file={{ .Values.networkExplorer.kernelCollector.bpfDumpFile }} +{{- end }} +{{- if (default false .Values.networkExplorer.kernelCollector.useDockerMetadata) }} + - --force-docker-metadata +{{- end }} +{{- if not (default false .Values.networkExplorer.kernelCollector.collectNomadMetadata) }} + - --disable-nomad-metadata +{{- end }} +{{- if .Values.networkExplorer.kernelCollector.userlandTcp }} + - --enable-userland-tcp +{{- end }} +{{- if .Values.networkExplorer.log.console }} + - --log-console +{{- end }} +{{- if hasKey .Values.networkExplorer.log "level" }} + - --{{ .Values.networkExplorer.log.level }} +{{- end }} +{{- if hasKey .Values.networkExplorer.kernelCollector "log" }} +{{- if hasKey .Values.networkExplorer.kernelCollector.log "whitelist" }} +{{- if hasKey .Values.networkExplorer.kernelCollector.log.whitelist "agentLog" }} + - --log-whitelist-agent-log={{ .Values.networkExplorer.kernelCollector.log.whitelist.agentLog }} +{{- end }} +{{- if hasKey .Values.networkExplorer.kernelCollector.log.whitelist "channel" }} + - --log-whitelist-channel={{ .Values.networkExplorer.kernelCollector.log.whitelist.channel }} +{{- end }} +{{- if hasKey .Values.networkExplorer.kernelCollector.log.whitelist "component" }} + - --log-whitelist-component={{ .Values.networkExplorer.kernelCollector.log.whitelist.component }} +{{- end }} +{{- if hasKey .Values.networkExplorer.kernelCollector.log.whitelist "cloudPlatform" }} + - --log-whitelist-cloud-platform={{ .Values.networkExplorer.kernelCollector.log.whitelist.cloudPlatform }} +{{- end }} +{{- end }} +{{- end }} +{{- if .Values.networkExplorer.kernelCollector.additionalArgs }} +{{ toYaml .Values.networkExplorer.kernelCollector.additionalArgs | indent 12 }} +{{- end }} + # TODO: liveness probe + env: + - name: "EBPF_NET_CLUSTER_NAME" + value: {{ tpl (.Values.networkExplorer.clusterName | toYaml) . }} +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.enabled) }} + - name: "EBPF_NET_DEBUG_MODE" + value: "true" +{{- end }} +{{- end }} + - name: "EBPF_NET_DISABLE_HTTP_METRICS" + value: {{ quote (default false .Values.networkExplorer.kernelCollector.disableHttpMetrics) }} +{{- if (default false .Values.networkExplorer.kernelCollector.runUnderGDB) }} + - name: "EBPF_NET_RUN_UNDER_GDB" + value: "gdb" +{{- end }} + - name: "EBPF_NET_KERNEL_HEADERS_AUTO_FETCH" + value: {{ quote (default true .Values.networkExplorer.kernelCollector.fetchKernelHeaders) }} + - name: "EBPF_NET_INTAKE_HOST" + value: {{ include "opentelemetry-collector-reducer.fullname" . }} + - name: "EBPF_NET_INTAKE_PORT" + value: "{{ default 7000 .Values.networkExplorer.reducer.telemetryPort }}" +{{- if .Values.networkExplorer.kernelCollector.exportBpfSrcFile }} + - name: "EBPF_NET_EXPORT_BPF_SRC_FILE" + value: {{ quote .Values.networkExplorer.kernelCollector.exportBpfSrcFile }} +{{- end }} + - name: "EBPF_NET_HOST_DIR" + value: "/hostfs" +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: "EBPF_NET_MINIDUMP_DIR" + value: "/hostfs/var/run/network-explorer/minidump" +{{- end }} +{{- end }} +{{- if .Values.networkExplorer.debug.sendUnplannedExitMetric }} + ## TODO: Needs to be reviewed. + ## it requires a collector running as deployment + - name: "EBPF_NET_CRASH_METRIC_HOST" + value: {{quote (include "opentelemetry-collector.fullname" .) }} + - name: "EBPF_NET_CRASH_METRIC_PORT" + value: {{ .Values.ports.otlp.servicePort | quote }} +{{- end }} +{{- if .Values.networkExplorer.kernelCollector.env }} +{{ toYaml .Values.networkExplorer.kernelCollector.env | indent 12 }} +{{- end }} +{{- if hasKey .Values.networkExplorer.kernelCollector "resources" }} + resources: +{{ toYaml .Values.networkExplorer.kernelCollector.resources | indent 12 }} +{{- end }} + securityContext: + privileged: true + volumeMounts: + - mountPath: /hostfs/ + name: host-root + readOnly: true +{{- if (default true .Values.networkExplorer.kernelCollector.fetchKernelHeaders) }} + - mountPath: /hostfs/var/cache + name: host-var-cache + readOnly: false +{{- end }} + - mountPath: /etc/network-explorer + name: {{ include "opentelemetry-collector.fullname" . }}-config + readOnly: true +{{- if (default false .Values.networkExplorer.kernelCollector.useDockerMetadata) }} + - mountPath: /var/run/docker.sock + name: docker-sock + readOnly: false +{{- end }} +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - mountPath: /hostfs/var/run/network-explorer + name: host-var-run-network-explorer + readOnly: false +{{- end }} +{{- end }} + dnsPolicy: ClusterFirstWithHostNet + hostNetwork: true + hostPID: true + serviceAccountName: {{ include "opentelemetry-collector-kernel-collector.serviceAccountName" . }} + volumes: + - name: {{ include "opentelemetry-collector.fullname" . }}-config + projected: + sources: + - configMap: + name: {{ include "opentelemetry-collector.fullname" . }}-config + items: + - key: config.yaml + path: config.yaml + - name: host-root + hostPath: + path: / + type: Directory +{{- if (default true .Values.networkExplorer.kernelCollector.fetchKernelHeaders) }} + - name: host-var-cache + hostPath: + path: /var/cache + type: DirectoryOrCreate +{{- end }} +{{- if hasKey .Values "debug" }} +{{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: host-var-run-network-explorer + hostPath: + path: /var/run/network-explorer + type: DirectoryOrCreate +{{- end }} +{{- end }} +{{- if (default false .Values.networkExplorer.kernelCollector.useDockerMetadata) }} + - name: docker-sock + hostPath: + path: /var/run/docker.sock + type: Socket +{{- end }} + {{- with .Values.networkExplorer.kernelCollector.nodeSelector }} + nodeSelector: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.networkExplorer.kernelCollector.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.networkExplorer.kernelCollector.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} + {{- end }} +{{- end }} diff --git a/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-podsecuritypolicy.yaml b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-podsecuritypolicy.yaml new file mode 100644 index 000000000..219f66eab --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-podsecuritypolicy.yaml @@ -0,0 +1,38 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.podSecurityPolicy.enabled }} +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: {{ include "opentelemetry-collector-kernel-collector.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +spec: + privileged: true + allowPrivilegeEscalation: true + allowedHostPaths: + - pathPrefix: /usr/src + readOnly: true + - pathPrefix: /lib/modules + readOnly: true + - pathPrefix: /etc + readOnly: true + - pathPrefix: /var/cache + readOnly: false + - pathPrefix: /sys/fs/cgroup + readOnly: true + fsGroup: + rule: RunAsAny + hostNetwork: true + hostPorts: + - max: 65535 + min: 0 + hostPID: true + readOnlyRootFilesystem: false + runAsUser: + rule: RunAsAny + seLinux: + rule: RunAsAny + supplementalGroups: + rule: RunAsAny + volumes: + - "*" +{{- end }} diff --git a/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-serviceaccount.yaml b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-serviceaccount.yaml new file mode 100644 index 000000000..5be16206a --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/kernel-collector-serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if and .Values.networkExplorer.enabled .Values.networkExplorer.kernelCollector.enabled .Values.networkExplorer.kernelCollector.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "opentelemetry-collector-kernel-collector.serviceAccountName" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +{{- end -}} diff --git a/charts/opentelemetry-collector/templates/network-explorer/reducer-deployment.yaml b/charts/opentelemetry-collector/templates/network-explorer/reducer-deployment.yaml new file mode 100644 index 000000000..dd0051ce0 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/reducer-deployment.yaml @@ -0,0 +1,115 @@ +{{- if .Values.networkExplorer.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "opentelemetry-collector-reducer.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +spec: + replicas: 1 + strategy: + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-reducer.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "opentelemetry-collector-reducer.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + spec: +{{- if .Values.networkExplorer.imagePullSecrets }} + imagePullSecrets: +{{- range .Values.networkExplorer.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} + containers: + - name: reducer + image: "{{ default .Values.networkExplorer.images.repository .Values.networkExplorer.reducer.image.repository }}/{{ .Values.networkExplorer.reducer.image.name }}:{{ default .Values.networkExplorer.images.tag .Values.networkExplorer.reducer.image.tag }}" + imagePullPolicy: {{ .Values.networkExplorer.images.pullPolicy }} + args: + - --port={{- .Values.networkExplorer.reducer.telemetryPort }} + - --log-console + - --no-log-file + {{- if hasKey .Values.networkExplorer.log "level" }} + - --{{ .Values.networkExplorer.log.level }} + {{- end }} + - --enable-aws-enrichment + - --disable-prometheus-metrics + - --enable-otlp-grpc-metrics + - --otlp-grpc-metrics-host={{ include "opentelemetry-collector.fullname" . }} + - --otlp-grpc-metrics-port={{ .Values.ports.otlp.servicePort }} + {{- if .Values.networkExplorer.reducer.disableMetrics }} + - --disable-metrics={{join "," .Values.networkExplorer.reducer.disableMetrics}} + {{- end }} + {{- if .Values.networkExplorer.reducer.enableMetrics }} + - --enable-metrics={{join "," .Values.networkExplorer.reducer.enableMetrics}} + {{- end }} + {{- if .Values.networkExplorer.reducer.ingestShards }} + - --num-ingest-shards={{- .Values.networkExplorer.reducer.ingestShards }} + {{- end }} + {{- if .Values.networkExplorer.reducer.matchingShards }} + - --num-matching-shards={{- .Values.networkExplorer.reducer.matchingShards }} + {{- end }} + {{- if .Values.networkExplorer.reducer.aggregationShards }} + - --num-aggregation-shards={{- .Values.networkExplorer.reducer.aggregationShards }} + {{- end }} + {{- if .Values.networkExplorer.reducer.extraArgs }} + {{- toYaml .Values.networkExplorer.reducer.extraArgs | nindent 12 }} + {{- end }} + env: + {{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: "EBPF_NET_MINIDUMP_DIR" + value: "/hostfs/var/run/network-explorer/minidump" + {{- end }} + {{- if .Values.networkExplorer.debug.sendUnplannedExitMetric }} + - name: "EBPF_NET_CRASH_METRIC_HOST" + value: {{quote (include "opentelemetry-collector.fullname" .) }} + - name: "EBPF_NET_CRASH_METRIC_PORT" + value: {{ .Values.ports.otlp.servicePort | quote }} + {{- end }} + ports: + - name: telemetry + containerPort: {{ .Values.networkExplorer.reducer.telemetryPort }} + protocol: TCP + {{- if not .Values.networkExplorer.reducer.disableInternalMetrics }} + - name: stats + containerPort: {{ .Values.networkExplorer.reducer.statsPromPort }} + protocol: TCP + {{- end }} + volumeMounts: + {{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - mountPath: /hostfs/var/run/network-explorer + name: host-var-run-network-explorer + readOnly: false + {{- end }} + readinessProbe: + initialDelaySeconds: 5 + periodSeconds: 20 + timeoutSeconds: 5 + exec: + command: ['/srv/health_check.sh', 'readiness_probe', 'localhost', {{ quote .Values.networkExplorer.reducer.telemetryPort }}] + resources: + {{- toYaml .Values.networkExplorer.resources | nindent 12 }} + {{- with .Values.networkExplorer.reducer.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.networkExplorer.reducer.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.networkExplorer.reducer.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + {{- if (default false .Values.networkExplorer.debug.storeMinidump) }} + - name: host-var-run-network-explorer + hostPath: + path: /var/run/network-explorer + type: DirectoryOrCreate + {{- end }} +{{- end }} diff --git a/charts/opentelemetry-collector/templates/network-explorer/reducer-service.yaml b/charts/opentelemetry-collector/templates/network-explorer/reducer-service.yaml new file mode 100644 index 000000000..528042379 --- /dev/null +++ b/charts/opentelemetry-collector/templates/network-explorer/reducer-service.yaml @@ -0,0 +1,24 @@ +{{- if .Values.networkExplorer.enabled}} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "opentelemetry-collector-reducer.fullname" . }} + labels: + {{- include "opentelemetry-collector.labels" . | nindent 4 }} +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: {{ include "opentelemetry-collector-reducer.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + ports: + - name: telemetry + port: {{ .Values.networkExplorer.reducer.telemetryPort }} + targetPort: telemetry + protocol: TCP + {{- if not .Values.networkExplorer.reducer.disableInternalMetrics }} + - name: stats + port: {{ .Values.networkExplorer.reducer.statsPromPort }} + targetPort: stats + protocol: TCP + {{- end }} +{{- end }} diff --git a/charts/opentelemetry-collector/values.schema.json b/charts/opentelemetry-collector/values.schema.json index 96e92d4dc..ed3fbec85 100644 --- a/charts/opentelemetry-collector/values.schema.json +++ b/charts/opentelemetry-collector/values.schema.json @@ -910,6 +910,156 @@ } } } + }, + "networkExplorer": { + "description": "Splunk Network Explorer Configuration", + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "description": "Enable network explorer", + "type": "boolean" + }, + "clusterName": { + "description": "Cluster Name", + "type": "string" + }, + "resources": { + "type": "object", + "additionalProperties": false, + "properties": { + "limits": { + "type": "object", + "additionalProperties": false, + "properties": { + "cpu": { + "type": [ + "string", + "integer" + ] + }, + "memory": { + "type": "string" + } + } + }, + "requests": { + "type": "object", + "additionalProperties": false, + "properties": { + "cpu": { + "type": [ + "string", + "integer" + ] + }, + "memory": { + "type": "string" + } + } + } + } + }, + "images": { + "description": "images", + "type": "object", + "additionalProperties": false, + "properties": { + "tag": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "pullPolicy": { + "type": "string", + "enum": [ + "IfNotPresent", + "Always", + "Never" + ] + } + } + }, + "imagePullSecrets": { + "type": "array", + "items": { + "type": "string" + } + }, + "log": { + "type": "object", + "additionalProperties": false, + "properties": { + "console": { + "type": "boolean" + }, + "level": { + "type": "string", + "enum": [ + "error", + "warning", + "info", + "debug", + "trace" + ] + } + } + }, + "debug": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "storeMinidump": { + "type": "boolean" + }, + "sendUnplannedExitMetric": { + "type": "boolean" + } + } + }, + "kernelCollector": { + "type": "object", + "additionalProperties": true + }, + "cloudCollector": { + "type": "object", + "additionalProperties": true + }, + "k8sCollector": { + "type": "object", + "additionalProperties": true + }, + "reducer": { + "type": "object", + "additionalProperties": true + }, + "rbac": { + "type": "object", + "additionalProperties": false, + "properties": { + "create": { + "type": "boolean" + } + } + }, + "podSecurityPolicy": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "annotations": { + "type": "object", + "additionalProperties": true + } + } + } + } } }, "required": ["mode"] diff --git a/charts/opentelemetry-collector/values.yaml b/charts/opentelemetry-collector/values.yaml index 15956c320..1e4599bf5 100644 --- a/charts/opentelemetry-collector/values.yaml +++ b/charts/opentelemetry-collector/values.yaml @@ -539,3 +539,269 @@ networkPolicy: # ports: # - port: 1234 # protocol: TCP + +# Default values for otel network collector. +networkExplorer: + clusterName: "" + enabled: false + images: + tag: v0.10.0 + repository: otel + pullPolicy: IfNotPresent + imagePullSecrets: [] + + resources: {} + + log: + console: false + # possible values: { error | warning | info | debug | trace } + level: warning + + debug: + enabled: false + storeMinidump: false + sendUnplannedExitMetric: true + + kernelCollector: + enabled: true + serviceAccount: + create: true + name: "" + image: + repository: "" + tag: "" + name: opentelemetry-ebpf-kernel-collector + + nodeSelector: {} + disableHttpMetrics: false + + tolerations: + - operator: "Exists" + effect: "NoExecute" + - operator: "Exists" + effect: "NoSchedule" + + affinity: {} + resources: {} + + # uncomment the line below to disable automatic kernel headers fetching + # fetchKernelHeaders: false + + # uncomment to enable enrichment using Docker metadata + # useDockerMetadata: true + + # uncomment to enable enrichment using Nomad metadata (https://www.nomadproject.io/) + # collectNomadMetadata: true + + cloudCollector: + enabled: true + image: + repository: "" + tag: "" + name: opentelemetry-ebpf-cloud-collector + + serviceAccount: + create: true + name: "" + annotations: + {} + ## eks.amazonaws.com/role-arn: "role-arn-name" + + tolerations: [] + affinity: {} + + k8sCollector: + enabled: true + serviceAccount: + create: true + name: "" + relay: + image: + repository: "" + tag: "" + name: opentelemetry-ebpf-k8s-relay + watcher: + image: + repository: "" + tag: "" + name: opentelemetry-ebpf-k8s-watcher + + tolerations: [] + affinity: {} + + reducer: + image: + repository: "" + tag: "" + name: opentelemetry-ebpf-reducer + extraArgs: {} + ingestShards: 1 + matchingShards: 1 + aggregationShards: 1 + disableInternalMetrics: true + disableMetrics: + [] + ### to disable an entire metric category: ### + # - tcp.all + # - udp.all + # - dns.all + # - http.all + ### to disable an individual metric: ### + ### tcp ### + # - tcp.bytes + # - tcp.rtt.num_measurements + # - tcp.active + # - tcp.rtt.average + # - tcp.packets + # - tcp.retrans + # - tcp.syn_timeouts + # - tcp.new_sockets + # - tcp.resets + ### udp ### + # - udp.bytes + # - udp.packets + # - udp.active + # - udp.drops + ### dns ### + # - dns.client.duration.average + # - dns.server.duration.average + # - dns.active_sockets + # - dns.responses + # - dns.timeouts + ### http ## + # - http.client.duration.average + # - http.server.duration.average + # - http.active_sockets + # - http.status_code + ### ebpf_net ## + # - ebpf_net.span_utilization_fraction + # - ebpf_net.pipeline_metric_bytes_discarded + # - ebpf_net.codetiming_min_ns + # - ebpf_net.entrypoint_info + # - ebpf_net.otlp_grpc.requests_sent + # - ebpf_net.connections + # - ebpf_net.rpc_queue_elem_utilization_fraction + # - ebpf_net.disconnects + # - ebpf_net.codetiming_avg_ns + # - ebpf_net.client_handle_pool + # - ebpf_net.otlp_grpc.successful_requests + # - ebpf_net.span_utilization + # - ebpf_net.up + # - ebpf_net.rpc_queue_buf_utilization_fraction + # - ebpf_net.collector_log_count + # - ebpf_net.time_since_last_message_ns + # - ebpf_net.bpf_log + # - ebpf_net.codetiming_count + # - ebpf_net.message + # - ebpf_net.otlp_grpc.bytes_sent + # - ebpf_net.pipeline_message_error + # - ebpf_net.pipeline_metric_bytes_written + # - ebpf_net.codetiming_max_ns + # - ebpf_net.span_utilization_max + # - ebpf_net.client_handle_pool_fraction + # - ebpf_net.span_utilization_fraction + # - ebpf_net.rpc_latency_ns + # - ebpf_net.agg_root_truncation + # - ebpf_net.clock_offset_ns + # - ebpf_net.otlp_grpc.metrics_sent + # - ebpf_net.otlp_grpc.unknown_response_tags + # - ebpf_net.collector_health + # - ebpf_net.codetiming_sum_ns + # - ebpf_net.otlp_grpc.failed_requests + # - ebpf_net.rpc_queue_buf_utilization + ### to enable all metrics (including metrics turned off by default): ### + # - none + enableMetrics: + [] + ### Disable metrics flag is evaluated first and only then enable metric flag is evaluated. ### + ### to enable an entire metric category: ### + # - tcp.all + # - udp.all + # - dns.all + # - http.all + # - ebpf_net.all + ### to enable an individual metric: ### + ### tcp ### + # - tcp.bytes + # - tcp.rtt.num_measurements + # - tcp.active + # - tcp.rtt.average + # - tcp.packets + # - tcp.retrans + # - tcp.syn_timeouts + # - tcp.new_sockets + # - tcp.resets + ### udp ### + # - udp.bytes + # - udp.packets + # - udp.active + # - udp.drops + ### dns ### + # - dns.client.duration.average + # - dns.server.duration.average + # - dns.active_sockets + # - dns.responses + # - dns.timeouts + ### http ### + # - http.client.duration.average + # - http.server.duration.average + # - http.active_sockets + # - http.status_code + ### ebpf_net ### + # - ebpf_net.span_utilization_fraction + # - ebpf_net.pipeline_metric_bytes_discarded + # - ebpf_net.codetiming_min_ns + # - ebpf_net.entrypoint_info + # - ebpf_net.otlp_grpc.requests_sent + # - ebpf_net.connections + # - ebpf_net.rpc_queue_elem_utilization_fraction + # - ebpf_net.disconnects + # - ebpf_net.codetiming_avg_ns + # - ebpf_net.client_handle_pool + # - ebpf_net.otlp_grpc.successful_requests + # - ebpf_net.span_utilization + # - ebpf_net.up + # - ebpf_net.rpc_queue_buf_utilization_fraction + # - ebpf_net.collector_log_count + # - ebpf_net.time_since_last_message_ns + # - ebpf_net.bpf_log + # - ebpf_net.codetiming_count + # - ebpf_net.message + # - ebpf_net.otlp_grpc.bytes_sent + # - ebpf_net.pipeline_message_error + # - ebpf_net.pipeline_metric_bytes_written + # - ebpf_net.codetiming_max_ns + # - ebpf_net.span_utilization_max + # - ebpf_net.client_handle_pool_fraction + # - ebpf_net.span_utilization_fraction + # - ebpf_net.rpc_latency_ns + # - ebpf_net.agg_root_truncation + # - ebpf_net.clock_offset_ns + # - ebpf_net.otlp_grpc.metrics_sent + # - ebpf_net.otlp_grpc.unknown_response_tags + # - ebpf_net.collector_health + # - ebpf_net.codetiming_sum_ns + # - ebpf_net.otlp_grpc.failed_requests + # - ebpf_net.rpc_queue_buf_utilization + telemetryPort: 7000 + statsPromPort: 7001 + resources: {} + nodeSelector: {} + tolerations: [] + affinity: {} + + rbac: + create: true + + podSecurityPolicy: + enabled: true + annotations: + {} + ## Specify pod annotations + ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor + ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp + ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl + ## + # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' + # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'