From f6a5dffe3cb9a110b2642aff22f80417ee9165c4 Mon Sep 17 00:00:00 2001 From: pierre Date: Mon, 3 Aug 2026 09:58:50 +0100 Subject: [PATCH] update proper commands --- README.md | 13 ++- netdata_helm.yml | 225 +++++++++++++++++++++++++---------------------- 2 files changed, 133 insertions(+), 105 deletions(-) diff --git a/README.md b/README.md index 0ef5166..8275e7d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,19 @@ # netdata_kube +If you plan to connect the node to Netdata Cloud, you can find the command with the right parameters by clicking the "Add Nodes" button in your Space's Nodes tab. + File generated using the following command ``` -helm template -n netdata netdata netdata/netdata >> netdata_helm.yml +helm repo add netdata https://netdata.github.io/helmchart/ && helm repo update + +helm template -n netdata netdata netdata/netdata \ +--set image.tag=edge \ +--set parent.claiming.enabled="true" \ +--set parent.claiming.token=CIlCwV6GawNWIfhrqMVmPAJixo_BSaGvwVbHKFOCQCHbYG5J8Ac0FDxKrObJ727F1dndg8J-v6apUhzGho6RIOlkrqJ_F7DKodjLqbsSWb7Ta-GSHkkuHcTXidxKxEo5RK0jiqU \ +--set parent.claiming.rooms=cd70f310-47a2-4b24-b7d3-0fc4205450d4 \ +--set child.claiming.enabled="true" \ +--set child.claiming.token=CIlCwV6GawNWIfhrqMVmPAJixo_BSaGvwVbHKFOCQCHbYG5J8Ac0FDxKrObJ727F1dndg8J-v6apUhzGho6RIOlkrqJ_F7DKodjLqbsSWb7Ta-GSHkkuHcTXidxKxEo5RK0jiqU \ +--set child.claiming.rooms=cd70f310-47a2-4b24-b7d3-0fc4205450d4 > /opt/kubernetes/netdata_kube/netdata_helm.yml ``` I had to manually add a namespace block diff --git a/netdata_helm.yml b/netdata_helm.yml index 7f9c29d..0bf3102 100644 --- a/netdata_helm.yml +++ b/netdata_helm.yml @@ -1,16 +1,11 @@ --- -apiVersion: v1 -kind: Namespace -metadata: - name: netdata ---- # Source: netdata/templates/serviceaccount.yaml kind: ServiceAccount apiVersion: v1 metadata: labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm name: netdata @@ -24,7 +19,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm data: @@ -37,17 +32,22 @@ data: update_every: 1 autodetection_retry: 0 jobs: - - url: http://127.0.0.1:10255/metrics - - url: https://localhost:10250/metrics + - name: local + url: http://127.0.0.1:10255/metrics + - name: local + url: https://localhost:10250/metrics tls_skip_verify: yes kubeproxy: | update_every: 1 autodetection_retry: 0 jobs: - - url: http://127.0.0.1:10249/metrics + - name: local + url: http://127.0.0.1:10249/metrics netdata: | [db] mode = ram + [web] + bind to = localhost:19999 [health] enabled = no [ml] @@ -70,18 +70,23 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm data: config.yml: | - name: kubernetes - discovery: - k8s: - - tags: unknown - role: pod - local_mode: true - tag: + disabled: no + + name: 'kubernetes' + + discover: + - discoverer: k8s + k8s: + - tags: unknown + role: pod + pod: + local_mode: yes + classify: - name: "Control-Plane" selector: unknown tags: -unknown control_plane @@ -95,49 +100,49 @@ data: tags: -unknown applications match: - tags: activemq - expr: '{{ and (eq .Port "8161") (glob .Image "**/activemq*") }}' + expr: '{{ and (eq .Port "8161") (glob .Image "*/activemq*") }}' - tags: apache - expr: '{{ and (eq .Port "80" "8080") (glob .Image "httpd*" "**/httpd*") }}' + expr: '{{ and (eq .Port "80" "8080") (glob .Image "httpd*" "*/httpd*") }}' - tags: bind - expr: '{{ and (eq .Port "8653") (glob .Image "**/bind*") }}' + expr: '{{ and (eq .Port "8653") (glob .Image "*/bind*") }}' - tags: cockroachdb - expr: '{{ and (eq .Port "8080") (glob .Image "**/cockroach*") }}' + expr: '{{ and (eq .Port "8080") (glob .Image "*/cockroach*") }}' - tags: consul - expr: '{{ and (eq .Port "8500") (glob .Image "consul*" "**/consul*") }}' + expr: '{{ and (eq .Port "8500") (glob .Image "consul*" "*/consul*") }}' - tags: coredns - expr: '{{ and (eq .Port "9153") (glob .Image "**/coredns*") }}' + expr: '{{ and (eq .Port "9153") (glob .Image "*/coredns*") }}' - tags: elasticsearch - expr: '{{ and (eq .Port "9200") (glob .Image "elasticsearch:*" "**/elasticsearch:*") }}' + expr: '{{ and (eq .Port "9200") (glob .Image "elasticsearch:*" "*/elasticsearch:*") }}' - tags: fluentd - expr: '{{ and (eq .Port "24220") (glob .Image "fluentd*" "**/fluentd*") }}' + expr: '{{ and (eq .Port "24220") (glob .Image "fluentd*" "*/fluentd*") }}' - tags: freeradius - expr: '{{ and (eq .Port "18121") (glob .Image "**/freeradius*") }}' + expr: '{{ and (eq .Port "18121") (glob .Image "*/freeradius*") }}' - tags: hdfs - expr: '{{ and (eq .Port "50070") (glob .Image "**/hdfs*") }}' + expr: '{{ and (eq .Port "50070") (glob .Image "*/hdfs*") }}' - tags: lighttpd - expr: '{{ and (eq .Port "80" "8080") (glob .Image "**/lighttpd*") }}' + expr: '{{ and (eq .Port "80" "8080") (glob .Image "*/lighttpd*") }}' - tags: logstash - expr: '{{ and (eq .Port "9600") (glob .Image "logstash*" "**/logstash*") }}' + expr: '{{ and (eq .Port "9600") (glob .Image "logstash*" "*/logstash*") }}' - tags: mysql - expr: '{{ and (eq .Port "3306") (glob .Image "mysql*" "**/mysql*" "mariadb*" "**/mariadb*") }}' + expr: '{{ and (eq .Port "3306") (glob .Image "mysql*" "*/mysql*" "mariadb*" "*/mariadb*") }}' - tags: nginx - expr: '{{ and (eq .Port "80" "8080") (glob .Image "nginx*" "**/nginx*") }}' + expr: '{{ and (eq .Port "80" "8080") (glob .Image "nginx*" "*/nginx*") }}' - tags: openvpn - expr: '{{ and (eq .Port "7505") (glob .Image "**/openvpn") }}' + expr: '{{ and (eq .Port "7505") (glob .Image "*/openvpn") }}' - tags: phpfpm - expr: '{{ and (eq .Port "80" "8080") (glob .Image "**/phpfpm*" "**/php-fpm*") }}' + expr: '{{ and (eq .Port "80" "8080") (glob .Image "*/phpfpm*" "*/php-fpm*") }}' - tags: rabbitmq - expr: '{{ and (eq .Port "15672") (glob .Image "rabbitmq*" "**/rabbitmq*") }}' + expr: '{{ and (eq .Port "15672") (glob .Image "rabbitmq*" "*/rabbitmq*") }}' - tags: solr - expr: '{{ and (eq .Port "8983") (glob .Image "solr*" "**/solr*") }}' + expr: '{{ and (eq .Port "8983") (glob .Image "solr*" "*/solr*") }}' - tags: tengine - expr: '{{ and (eq .Port "80" "8080") (glob .Image "**/tengine*") }}' + expr: '{{ and (eq .Port "80" "8080") (glob .Image "*/tengine*") }}' - tags: unbound - expr: '{{ and (eq .Port "8953") (glob .Image "**/unbound*") }}' + expr: '{{ and (eq .Port "8953") (glob .Image "*/unbound*") }}' - tags: vernemq - expr: '{{ and (eq .Port "8888") (glob .Image "**/vernemq*") }}' + expr: '{{ and (eq .Port "8888") (glob .Image "*/vernemq*") }}' - tags: zookeeper - expr: '{{ and (eq .Port "2181") (glob .Image "zookeeper*" "**/zookeeper*") }}' + expr: '{{ and (eq .Port "2181") (glob .Image "zookeeper*" "*/zookeeper*") }}' - tags: consul_envoy expr: | {{ $imageOK := glob .Image "*/consul-dataplane*" -}} @@ -154,13 +159,12 @@ data: expr: | {{ $scrapeOK := eq (get .Annotations "prometheus.io/scrape") "true" -}} {{ $portOK := eq (default .Port (get .Annotations "prometheus.io/port")) .Port -}} - {{ $imageOK := not (glob .Image "netdata/netdata*" "**pulsar*" "**telegraf*") -}} + {{ $imageOK := not (glob .Image "netdata/netdata*" "*pulsar*" "*telegraf*") -}} {{ and $scrapeOK $portOK $imageOK }} - build: + compose: - name: "Control-Plane" selector: '!unknown control_plane' - tags: file - apply: + config: - selector: kube_scheduler template: | - module: prometheus @@ -179,8 +183,7 @@ data: max_time_series: 2000 - name: "Prometheus Generic Applications" selector: '!unknown prometheus_generic' - tags: file - apply: + config: - selector: prometheus_generic template: | {{ $path := default "/metrics" (get .Annotations "prometheus.io/path") -}} @@ -193,7 +196,7 @@ data: - name: "Applications" selector: '!unknown applications' tags: file - apply: + config: - selector: activemq template: | - module: activemq @@ -314,10 +317,6 @@ data: - module: zookeeper name: zookeeper-{{.TUID}} address: {{.Address}} - export: - file: - - selector: file - filename: "/export/go.d.yml" --- # Source: netdata/templates/k8s-state/configmap.yaml apiVersion: v1 @@ -327,7 +326,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm data: @@ -345,6 +344,8 @@ data: hostname = netdata-k8s-state [db] mode = ram + [web] + bind to = localhost:19999 [health] enabled = no [ml] @@ -385,7 +386,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm data: @@ -430,7 +431,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: k8sState @@ -448,7 +449,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: parent @@ -456,7 +457,7 @@ spec: accessModes: [ "ReadWriteOnce" ] resources: requests: - storage: 5Gi + storage: 15Gi --- # Source: netdata/templates/parent/persistentvolumeclaim.yaml apiVersion: v1 @@ -466,7 +467,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: parent @@ -483,7 +484,7 @@ metadata: name: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm rules: @@ -500,6 +501,21 @@ rules: - "get" - "list" - "watch" + - apiGroups: ["apps"] + resources: + - "deployments" + verbs: + - "get" + - "list" + - "watch" + - apiGroups: ["batch"] + resources: + - "cronjobs" + - "jobs" + verbs: + - "get" + - "list" + - "watch" - apiGroups: [""] resources: - "namespaces" # used by go.d/k8s_state, netdata (cgroup-name.sh, get-kubernetes-labels.sh) @@ -513,7 +529,7 @@ metadata: name: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm roleRef: @@ -533,7 +549,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: parent @@ -558,7 +574,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: child @@ -572,7 +588,7 @@ spec: metadata: annotations: container.apparmor.security.beta.kubernetes.io/netdata: unconfined - checksum/config: 9fb8c023847faf4c2c98561afaf796d0de060016b1ceedc43055a7a15e0b9a71 + checksum/config: 8a146c7f2aa937bbdd19b8ad73ddf059040663eb3ae88046b343003a4fa089e3 labels: app: netdata release: netdata @@ -602,9 +618,15 @@ spec: ' containers: - name: netdata - image: "netdata/netdata:v1.47.4" + image: "netdata/netdata:edge" imagePullPolicy: Always env: + - name: NETDATA_CLAIM_URL + value: "https://api.netdata.cloud" + - name: NETDATA_CLAIM_TOKEN + value: "CIlCwV6GawNWIfhrqMVmPAJixo_BSaGvwVbHKFOCQCHbYG5J8Ac0FDxKrObJ727F1dndg8J-v6apUhzGho6RIOlkrqJ_F7DKodjLqbsSWb7Ta-GSHkkuHcTXidxKxEo5RK0jiqU" + - name: NETDATA_CLAIM_ROOMS + value: "cd70f310-47a2-4b24-b7d3-0fc4205450d4" - name: MY_POD_NAME valueFrom: fieldRef: @@ -619,8 +641,6 @@ spec: fieldPath: metadata.namespace - name: NETDATA_LISTENER_PORT value: '19999' - - name: NETDATA_PLUGINS_GOD_WATCH_PATH - value: "/etc/netdata/go.d/sd/go.d.yml" ports: - name: http containerPort: 19999 @@ -672,8 +692,9 @@ spec: subPath: stream - name: persistencevarlibdir mountPath: /var/lib/netdata - - name: sd-shared - mountPath: "/etc/netdata/go.d/sd/" + - name: sdconfigmap + mountPath: "/etc/netdata/go.d/sd/k8s.conf" + subPath: config.yml securityContext: capabilities: add: @@ -681,30 +702,6 @@ spec: - SYS_ADMIN resources: {} - - name: sd - image: "netdata/agent-sd:v0.2.10" - imagePullPolicy: Always - volumeMounts: - - name: sd-shared - mountPath: "/export/" - resources: - limits: - cpu: 50m - memory: 150Mi - requests: - cpu: 50m - memory: 100Mi - env: - - name: NETDATA_SD_CONFIG_MAP - value: "netdata-child-sd-config-map:config.yml" - - name: MY_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: MY_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName tolerations: - effect: NoSchedule operator: Exists @@ -734,8 +731,10 @@ spec: hostPath: path: /var/lib/netdata-k8s-child/var/lib/netdata type: DirectoryOrCreate - - name: sd-shared - emptyDir: { } + - name: sdconfigmap + configMap: + name: netdata-child-sd-config-map + optional: true dnsPolicy: ClusterFirstWithHostNet --- # Source: netdata/templates/k8s-state/deployment.yaml @@ -746,7 +745,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: k8sState @@ -762,7 +761,7 @@ spec: metadata: annotations: container.apparmor.security.beta.kubernetes.io/netdata: unconfined - checksum/config: f4cd1a58dfbd50f877fadfa490af5351d5700abd512e9561f910bf541855cf3b + checksum/config: 695eec71873af73b22884232dbacc2917e0b13dad40de683b317b1105911c469 labels: app: netdata release: netdata @@ -775,9 +774,17 @@ spec: initContainers: containers: - name: netdata - image: "netdata/netdata:v1.47.4" + image: "netdata/netdata:edge" imagePullPolicy: Always env: + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: MY_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace - name: NETDATA_LISTENER_PORT value: '19999' ports: @@ -787,8 +794,8 @@ spec: livenessProbe: exec: command: - - /usr/sbin/netdatacli - - ping + - /usr/sbin/netdatacli + - ping initialDelaySeconds: 0 failureThreshold: 3 periodSeconds: 30 @@ -797,8 +804,8 @@ spec: readinessProbe: exec: command: - - /usr/sbin/netdatacli - - ping + - /usr/sbin/netdatacli + - ping initialDelaySeconds: 0 failureThreshold: 3 periodSeconds: 30 @@ -849,7 +856,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm role: parent @@ -869,17 +876,24 @@ spec: release: netdata role: parent annotations: - checksum/config: 460d438925c1eed3ec4af1f762f106b7bdf0e79e888e5dfa58020de5d75ec818 + checksum/config: 7ae6d956c6b1ddf923e6d707aecca99fc502fa2fba6feb22b7845f5840edd58e spec: securityContext: fsGroup: 201 serviceAccountName: netdata initContainers: + [] containers: - name: netdata - image: "netdata/netdata:v1.47.4" + image: "netdata/netdata:edge" imagePullPolicy: Always env: + - name: NETDATA_CLAIM_URL + value: "https://api.netdata.cloud" + - name: NETDATA_CLAIM_TOKEN + value: "CIlCwV6GawNWIfhrqMVmPAJixo_BSaGvwVbHKFOCQCHbYG5J8Ac0FDxKrObJ727F1dndg8J-v6apUhzGho6RIOlkrqJ_F7DKodjLqbsSWb7Ta-GSHkkuHcTXidxKxEo5RK0jiqU" + - name: NETDATA_CLAIM_ROOMS + value: "cd70f310-47a2-4b24-b7d3-0fc4205450d4" - name: MY_POD_NAME valueFrom: fieldRef: @@ -914,6 +928,9 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 + securityContext: + runAsUser: 201 + runAsGroup: 201 volumeMounts: - name: os-release mountPath: /host/etc/os-release @@ -961,7 +978,7 @@ metadata: namespace: netdata labels: app: netdata - chart: netdata-3.7.108 + chart: netdata-3.7.170 release: netdata heritage: Helm annotations: