1178 lines
35 KiB
YAML
1178 lines
35 KiB
YAML
---
|
||
apiVersion: v1
|
||
kind: Namespace
|
||
metadata:
|
||
name: netdata
|
||
---
|
||
# Source: netdata/templates/serviceaccount.yaml
|
||
kind: ServiceAccount
|
||
apiVersion: v1
|
||
metadata:
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
name: netdata
|
||
namespace: netdata
|
||
---
|
||
# Source: netdata/templates/child/configmap.yaml
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: netdata-conf-child
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
data:
|
||
|
||
go.d: |
|
||
modules:
|
||
pulsar: no
|
||
prometheus: yes
|
||
kubelet: |
|
||
update_every: 1
|
||
autodetection_retry: 0
|
||
jobs:
|
||
- 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:
|
||
- name: local
|
||
url: http://127.0.0.1:10249/metrics
|
||
dnsquery: |
|
||
update_every: 3600
|
||
autodetection_retry: 0
|
||
jobs:
|
||
- name: job1
|
||
record_types:
|
||
- A
|
||
- AAAA
|
||
domains:
|
||
- google.com
|
||
- github.com
|
||
- gitea.tryton.geeraert.eu
|
||
servers:
|
||
- 8.8.8.8
|
||
- 8.8.4.4
|
||
|
||
x509check: |
|
||
jobs:
|
||
- name: my_site_cert
|
||
source: https://gitea.tryton.geeraert.eu:443
|
||
httpcheck: |
|
||
update_every: 1
|
||
autodetection_retry: 0
|
||
jobs:
|
||
- name: gitea
|
||
url: https://gitea.tryton.geeraert.eu:443
|
||
headers:
|
||
Host: localhost:8080
|
||
User-Agent: netdata/go.d.plugin
|
||
Accept: */*
|
||
- name: bitwarden
|
||
url: https://bitwardem.tryton.geeraert.eu:443
|
||
web_log: |
|
||
jobs:
|
||
- name: django_testing
|
||
path: /host/var/log/pods/django-testing_django-testing-7f89d9ffc5-mcm9g_ad5b3bbf-33ca-410f-aa0e-457664c6345b/django-testing/0.log
|
||
log_type: auto
|
||
- name: nginx
|
||
path: /host/var/log/pods/reverse-proxy_reverse-proxy-67c767c86f-pxvdz_af6033a7-dfcb-4430-a67b-ee75ea424cf7/reverse-proxy/0.log
|
||
log_type: auto
|
||
netdata: |
|
||
[db]
|
||
mode = ram
|
||
[web]
|
||
bind to = localhost:19999
|
||
[health]
|
||
enabled = no
|
||
[ml]
|
||
enabled = no
|
||
[plugins]
|
||
otel = yes
|
||
[plugin:otel]
|
||
command options = --otel-endpoint 0.0.0.0:4317 --otel-logs-journal-dir /var/log/netdata/otel/v1
|
||
stream: |
|
||
[stream]
|
||
enabled = yes
|
||
destination = netdata:19999
|
||
api key = 11111111-2222-3333-4444-555555555555
|
||
timeout seconds = 60
|
||
buffer size bytes = 1048576
|
||
reconnect delay seconds = 5
|
||
initial clock resync iterations = 60
|
||
|
||
otel: |
|
||
# OpenTelemetry Plugin Configuration
|
||
# This file configures the OpenTelemetry metrics and logs ingestion for Netdata
|
||
#
|
||
# To customize, run: edit-config otel.yaml
|
||
# Only include the fields you want to change — missing fields keep their defaults.
|
||
|
||
endpoint:
|
||
# gRPC endpoint to listen on for OpenTelemetry data
|
||
path: "127.0.0.1:4317"
|
||
|
||
# Path to TLS certificate file (enables TLS when provided)
|
||
tls_cert_path: null
|
||
|
||
# Path to TLS private key file (required when TLS certificate is provided)
|
||
tls_key_path: null
|
||
|
||
# Path to TLS CA certificate file for client authentication (optional)
|
||
tls_ca_cert_path: null
|
||
|
||
metrics:
|
||
# Directory with configuration files for mapping OTEL metrics to Netdata charts
|
||
chart_configs_dir: /etc/netdata/otel.d/v1/metrics
|
||
|
||
# Collection interval in seconds (1–3600). Defines the Netdata chart update frequency.
|
||
interval_secs: 10
|
||
|
||
# Grace period in seconds. After the last data point, the plugin waits this long
|
||
# before gap-filling. When interval_secs is overridden, this auto-derives as
|
||
# 5 * interval_secs unless explicitly set.
|
||
grace_period_secs: 60
|
||
|
||
# Expiry duration in seconds. Charts with no data for this long are removed.
|
||
expiry_duration_secs: 900
|
||
|
||
# Maximum number of new charts that can be created per gRPC request.
|
||
# Limits cardinality explosion from high-cardinality label combinations.
|
||
max_new_charts_per_request: 100
|
||
|
||
# Directory where OpenTelemetry logs and traces are stored.
|
||
# Must be an absolute path.
|
||
base_dir: /var/log/netdata/otel/v2
|
||
|
||
remote_storage:
|
||
# Upload data to remote object storage, in addition to keeping it on local
|
||
# disk. One backend is shared by logs and traces.
|
||
enabled: false
|
||
|
||
# NEVER put credentials in this file or in the URI below. Credentials are
|
||
# read from the netdata process environment and the standard cloud
|
||
# locations — for S3: AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY,
|
||
# ~/.aws/credentials, or an attached instance role (nothing to configure).
|
||
# To pass environment variables to the netdata service, use a root-only
|
||
# systemd EnvironmentFile.
|
||
|
||
# Remote storage location. The scheme selects the backend (fs, s3);
|
||
# non-secret backend options go in the query string. Examples:
|
||
# fs:///var/lib/netdata/otel/remote
|
||
# s3://bucket/prefix?region=us-east-1
|
||
# s3://bucket/prefix?region=us-east-1&endpoint=https://minio.example:9000
|
||
uri: "fs:///var/log/netdata/otel/v2/remote"
|
||
|
||
# Data deleted from local disk by retention but still in remote storage is
|
||
# fetched back into a bounded local cache when a query needs it. Cap for
|
||
# that cache:
|
||
read_cache_max_size: "1GB"
|
||
|
||
auth:
|
||
# Require senders to identify a tenant via the X-Scope-OrgID gRPC header.
|
||
# When disabled, all data belongs to a single "default" tenant.
|
||
# Applies to logs and traces; metrics have no tenants.
|
||
enabled: false
|
||
|
||
logs:
|
||
rotation:
|
||
# Incoming logs are appended to a current file; a new file starts when
|
||
# any of these limits is reached.
|
||
default:
|
||
max_file_size: "25MB"
|
||
max_entries: 50000
|
||
|
||
# Per-tenant overrides (any subset of the fields above):
|
||
# my-tenant:
|
||
# max_file_size: "100MB"
|
||
|
||
retention:
|
||
# How much log data to keep on local disk; the oldest files are deleted
|
||
# when any of these limits is exceeded.
|
||
default:
|
||
max_files: 100000
|
||
max_total_size: "1GB"
|
||
max_age: "7 days"
|
||
|
||
# Per-tenant overrides (any subset of the fields above):
|
||
# my-tenant:
|
||
# max_age: "30 days"
|
||
---
|
||
# Source: netdata/templates/child/configmap.yaml
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: netdata-child-sd-config-map
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
data:
|
||
config.yml: |
|
||
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
|
||
match:
|
||
- tags: kube_scheduler
|
||
expr: '{{ glob .Image "k8s.gcr.io/kube-scheduler:*" }}'
|
||
- tags: kube_controller_manager
|
||
expr: '{{ glob .Image "k8s.gcr.io/kube-controller-manager:*" }}'
|
||
- name: "Applications"
|
||
selector: unknown
|
||
tags: -unknown applications
|
||
match:
|
||
- tags: activemq
|
||
expr: '{{ and (eq .Port "8161") (glob .Image "*/activemq*") }}'
|
||
- tags: apache
|
||
expr: '{{ and (eq .Port "80" "8080") (glob .Image "httpd*" "*/httpd*") }}'
|
||
- tags: bind
|
||
expr: '{{ and (eq .Port "8653") (glob .Image "*/bind*") }}'
|
||
- tags: cockroachdb
|
||
expr: '{{ and (eq .Port "8080") (glob .Image "*/cockroach*") }}'
|
||
- tags: consul
|
||
expr: '{{ and (eq .Port "8500") (glob .Image "consul*" "*/consul*") }}'
|
||
- tags: coredns
|
||
expr: '{{ and (eq .Port "9153") (glob .Image "*/coredns*") }}'
|
||
- tags: elasticsearch
|
||
expr: '{{ and (eq .Port "9200") (glob .Image "elasticsearch:*" "*/elasticsearch:*") }}'
|
||
- tags: fluentd
|
||
expr: '{{ and (eq .Port "24220") (glob .Image "fluentd*" "*/fluentd*") }}'
|
||
- tags: freeradius
|
||
expr: '{{ and (eq .Port "18121") (glob .Image "*/freeradius*") }}'
|
||
- tags: hdfs
|
||
expr: '{{ and (eq .Port "50070") (glob .Image "*/hdfs*") }}'
|
||
- tags: lighttpd
|
||
expr: '{{ and (eq .Port "80" "8080") (glob .Image "*/lighttpd*") }}'
|
||
- tags: logstash
|
||
expr: '{{ and (eq .Port "9600") (glob .Image "logstash*" "*/logstash*") }}'
|
||
- tags: mysql
|
||
expr: '{{ and (eq .Port "3306") (glob .Image "mysql*" "*/mysql*" "mariadb*" "*/mariadb*") }}'
|
||
- tags: nginx
|
||
expr: '{{ and (eq .Port "80" "8080") (glob .Image "nginx*" "*/nginx*") }}'
|
||
- tags: openvpn
|
||
expr: '{{ and (eq .Port "7505") (glob .Image "*/openvpn") }}'
|
||
- tags: phpfpm
|
||
expr: '{{ and (eq .Port "80" "8080") (glob .Image "*/phpfpm*" "*/php-fpm*") }}'
|
||
- tags: rabbitmq
|
||
expr: '{{ and (eq .Port "15672") (glob .Image "rabbitmq*" "*/rabbitmq*") }}'
|
||
- tags: solr
|
||
expr: '{{ and (eq .Port "8983") (glob .Image "solr*" "*/solr*") }}'
|
||
- tags: tengine
|
||
expr: '{{ and (eq .Port "80" "8080") (glob .Image "*/tengine*") }}'
|
||
- tags: unbound
|
||
expr: '{{ and (eq .Port "8953") (glob .Image "*/unbound*") }}'
|
||
- tags: vernemq
|
||
expr: '{{ and (eq .Port "8888") (glob .Image "*/vernemq*") }}'
|
||
- tags: zookeeper
|
||
expr: '{{ and (eq .Port "2181") (glob .Image "zookeeper*" "*/zookeeper*") }}'
|
||
- tags: consul_envoy
|
||
expr: |
|
||
{{ $imageOK := glob .Image "*/consul-dataplane*" -}}
|
||
{{ $scrapeOK := eq (get .Annotations "prometheus.io/scrape") "true" -}}
|
||
{{ $promPort := get .Annotations "prometheus.io/port" -}}
|
||
{{ $portOK1 := and (eq .Port $promPort) (not (empty .Port)) -}}
|
||
{{ $portOK2 := and (empty .Port) (not (empty $promPort)) -}}
|
||
{{ and $imageOK $scrapeOK (or $portOK1 $portOK2) }}
|
||
- name: "Prometheus Generic Applications"
|
||
selector: unknown
|
||
tags: -unknown prometheus_generic
|
||
match:
|
||
- tags: prometheus_generic
|
||
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*") -}}
|
||
{{ and $scrapeOK $portOK $imageOK }}
|
||
compose:
|
||
- name: "Control-Plane"
|
||
selector: '!unknown control_plane'
|
||
config:
|
||
- selector: kube_scheduler
|
||
template: |
|
||
- module: prometheus
|
||
name: prometheus-{{.TUID}}
|
||
url: http://{{.PodIP}}:{{default "10251" .Port}}/metrics
|
||
app: '{{.ContName}}'
|
||
update_every: 10
|
||
max_time_series: 1000
|
||
- selector: kube_controller_manager
|
||
template: |
|
||
- module: prometheus
|
||
name: prometheus-{{.TUID}}
|
||
url: http://{{.PodIP}}:{{default "10252" .Port}}/metrics
|
||
app: '{{.ContName}}'
|
||
update_every: 10
|
||
max_time_series: 2000
|
||
- name: "Prometheus Generic Applications"
|
||
selector: '!unknown prometheus_generic'
|
||
config:
|
||
- selector: prometheus_generic
|
||
template: |
|
||
{{ $path := default "/metrics" (get .Annotations "prometheus.io/path") -}}
|
||
- module: prometheus
|
||
name: prometheus-{{.TUID}}
|
||
url: http://{{.Address}}{{$path}}
|
||
app: '{{.ContName}}'
|
||
update_every: 10
|
||
max_time_series: 4000
|
||
- name: "Applications"
|
||
selector: '!unknown applications'
|
||
tags: file
|
||
config:
|
||
- selector: activemq
|
||
template: |
|
||
- module: activemq
|
||
name: activemq-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: apache
|
||
template: |
|
||
- module: apache
|
||
name: apache-{{.TUID}}
|
||
url: http://{{.Address}}/server-status?auto
|
||
- selector: bind
|
||
template: |
|
||
- module: bind
|
||
name: bind-{{.TUID}}
|
||
url: http://{{.Address}}/json/v1
|
||
- selector: cockroachdb
|
||
template: |
|
||
- module: cockroachdb
|
||
name: cockroachdb-{{.TUID}}
|
||
url: http://{{.Address}}/_status/vars
|
||
- selector: consul
|
||
template: |
|
||
- module: consul
|
||
name: consul-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: coredns
|
||
template: |
|
||
- module: coredns
|
||
name: coredns-{{.TUID}}
|
||
url: http://{{.Address}}/metrics
|
||
- selector: elasticsearch
|
||
template: |
|
||
- module: elasticsearch
|
||
name: elasticsearch-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: consul_envoy
|
||
template: |
|
||
{{ $path := default "/metrics" (get .Annotations "prometheus.io/path") -}}
|
||
{{ $promPort := get .Annotations "prometheus.io/port" -}}
|
||
{{ $port := ternary .Port $promPort (not (empty .Port)) -}}
|
||
- module: envoy
|
||
name: {{.TUID}}
|
||
url: http://{{ .PodIP }}:{{ $port }}{{ $path }}
|
||
- selector: fluentd
|
||
template: |
|
||
- module: fluentd
|
||
name: fluentd-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: freeradius
|
||
template: |
|
||
- module: freeradius
|
||
name: freeradius-{{.TUID}}
|
||
address: {{.PodIP}}
|
||
port: {{.Port}}
|
||
- selector: hdfs
|
||
template: |
|
||
- module: hdfs
|
||
name: hdfs-{{.TUID}}
|
||
url: http://{{.Address}}/jmx
|
||
- selector: lighttpd
|
||
template: |
|
||
- module: lighttpd
|
||
name: lighttpd-{{.TUID}}
|
||
url: http://{{.Address}}/server-status?auto
|
||
- selector: logstash
|
||
template: |
|
||
- module: logstash
|
||
name: logstash-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: mysql
|
||
template: |
|
||
- module: mysql
|
||
name: mysql-{{.TUID}}
|
||
dsn: 'netdata@tcp({{.Address}})/'
|
||
- selector: nginx
|
||
template: |
|
||
- module: nginx
|
||
name: nginx-{{.TUID}}
|
||
url: http://{{.Address}}/stub_status
|
||
- selector: openvpn
|
||
template: |
|
||
- module: openvpn
|
||
name: openvpn-{{.TUID}}
|
||
address: {{.Address}}
|
||
- selector: phpfpm
|
||
template: |
|
||
- module: phpfpm
|
||
name: phpfpm-{{.TUID}}
|
||
url: http://{{.Address}}/status?full&json
|
||
- selector: rabbitmq
|
||
template: |
|
||
- module: rabbitmq
|
||
name: rabbitmq-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: solr
|
||
template: |
|
||
- module: solr
|
||
name: solr-{{.TUID}}
|
||
url: http://{{.Address}}
|
||
- selector: tengine
|
||
template: |
|
||
- module: tengine
|
||
name: tengine-{{.TUID}}
|
||
url: http://{{.Address}}/us
|
||
- selector: unbound
|
||
template: |
|
||
- module: unbound
|
||
name: unbound-{{.TUID}}
|
||
address: {{.Address}}
|
||
use_tls: false
|
||
- selector: vernemq
|
||
template: |
|
||
- module: vernemq
|
||
name: vernemq-{{.TUID}}
|
||
url: http://{{.Address}}/metrics
|
||
- selector: zookeeper
|
||
template: |
|
||
- module: zookeeper
|
||
name: zookeeper-{{.TUID}}
|
||
address: {{.Address}}
|
||
---
|
||
# Source: netdata/templates/k8s-state/configmap.yaml
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: netdata-conf-k8s-state
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
data:
|
||
|
||
go.d: |
|
||
default_run: no
|
||
modules:
|
||
k8s_state: yes
|
||
go.d-k8s_state: |
|
||
jobs:
|
||
- name: k8s_state
|
||
update_every: 1
|
||
netdata: |
|
||
[global]
|
||
hostname = netdata-k8s-state
|
||
[db]
|
||
mode = ram
|
||
[web]
|
||
bind to = localhost:19999
|
||
[health]
|
||
enabled = no
|
||
[ml]
|
||
enabled = no
|
||
[plugins]
|
||
timex = no
|
||
checks = no
|
||
idlejitter = no
|
||
tc = no
|
||
diskspace = no
|
||
proc = no
|
||
cgroups = no
|
||
enable running new plugins = no
|
||
slabinfo = no
|
||
perf = no
|
||
go.d = yes
|
||
ioping = no
|
||
ebpf = no
|
||
charts.d = no
|
||
apps = no
|
||
python.d = no
|
||
fping = no
|
||
stream: |
|
||
[stream]
|
||
enabled = yes
|
||
destination = netdata:19999
|
||
api key = 11111111-2222-3333-4444-555555555555
|
||
timeout seconds = 60
|
||
buffer size bytes = 1048576
|
||
reconnect delay seconds = 5
|
||
initial clock resync iterations = 60
|
||
httpcheck: |
|
||
update_every: 1
|
||
autodetection_retry: 0
|
||
jobs:
|
||
- name: gitea
|
||
url: https://gitea.tryton.geeraert.eu:443
|
||
headers:
|
||
Host: localhost:8080
|
||
User-Agent: netdata/go.d.plugin
|
||
Accept: */*
|
||
- name: bitwarden
|
||
url: https://bitwardem.tryton.geeraert.eu:443
|
||
---
|
||
# Source: netdata/templates/parent/configmap.yaml
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: netdata-conf-parent
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
data:
|
||
|
||
health: |
|
||
SEND_EMAIL="NO"
|
||
SEND_SLACK="YES"
|
||
SLACK_WEBHOOK_URL=""
|
||
DEFAULT_RECIPIENT_SLACK=""
|
||
netdata: |
|
||
[global]
|
||
hostname = netdata-parent
|
||
[db]
|
||
mode = dbengine
|
||
|
||
[plugins]
|
||
cgroups = no
|
||
tc = no
|
||
enable running new plugins = no
|
||
check for new plugins every = 72000
|
||
python.d = no
|
||
charts.d = no
|
||
go.d = no
|
||
node.d = no
|
||
apps = no
|
||
proc = no
|
||
idlejitter = no
|
||
diskspace = no
|
||
stream: |
|
||
[11111111-2222-3333-4444-555555555555]
|
||
enabled = yes
|
||
history = 3600
|
||
default memory mode = dbengine
|
||
health enabled by default = auto
|
||
allow from = *
|
||
---
|
||
# Source: netdata/templates/k8s-state/persistentvolumeclaim.yaml
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: netdata-k8s-state-varlib
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: k8sState
|
||
spec:
|
||
storageClassName: nfs-storage-intelligent
|
||
accessModes: [ "ReadWriteOnce" ]
|
||
resources:
|
||
requests:
|
||
storage: 1Gi
|
||
---
|
||
# Source: netdata/templates/parent/persistentvolumeclaim.yaml
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: netdata-parent-database
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: parent
|
||
spec:
|
||
storageClassName: nfs-storage-intelligent
|
||
accessModes: [ "ReadWriteOnce" ]
|
||
resources:
|
||
requests:
|
||
storage: 15Gi
|
||
---
|
||
# Source: netdata/templates/parent/persistentvolumeclaim.yaml
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: netdata-parent-alarms
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: parent
|
||
spec:
|
||
storageClassName: nfs-storage-intelligent
|
||
accessModes: [ "ReadWriteOnce" ]
|
||
resources:
|
||
requests:
|
||
storage: 1Gi
|
||
---
|
||
# Source: netdata/templates/clusterrole.yaml
|
||
apiVersion: rbac.authorization.k8s.io/v1
|
||
kind: ClusterRole
|
||
metadata:
|
||
name: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
rules:
|
||
- apiGroups: [""]
|
||
resources:
|
||
- "pods" # used by sd, go.d/k8s_state, netdata (cgroup-name.sh, get-kubernetes-labels.sh)
|
||
- "services" # used by sd
|
||
- "configmaps" # used by sd
|
||
- "secrets" # used by sd
|
||
- "nodes" # used by go.d/k8s_state
|
||
- "nodes/metrics" # used by go.d/k8s_kubelet when querying Kubelet HTTPS endpoint
|
||
- "nodes/proxy" # used by netdata (cgroup-name.sh) when querying Kubelet /pods endpoint
|
||
verbs:
|
||
- "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)
|
||
verbs:
|
||
- "get"
|
||
---
|
||
# Source: netdata/templates/clusterrolebinding.yaml
|
||
apiVersion: rbac.authorization.k8s.io/v1
|
||
kind: ClusterRoleBinding
|
||
metadata:
|
||
name: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
roleRef:
|
||
apiGroup: rbac.authorization.k8s.io
|
||
kind: ClusterRole
|
||
name: netdata
|
||
subjects:
|
||
- kind: ServiceAccount
|
||
name: netdata
|
||
namespace: netdata
|
||
---
|
||
# Source: netdata/templates/parent/service.yaml
|
||
apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: netdata
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: parent
|
||
annotations:
|
||
spec:
|
||
type: ClusterIP
|
||
ports:
|
||
- port: 19999
|
||
targetPort: http
|
||
protocol: TCP
|
||
name: http
|
||
selector:
|
||
app: netdata
|
||
release: netdata
|
||
role: parent
|
||
---
|
||
# Source: netdata/templates/child/daemonset.yaml
|
||
apiVersion: apps/v1
|
||
kind: DaemonSet
|
||
metadata:
|
||
name: netdata-child
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: child
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: netdata
|
||
release: netdata
|
||
role: child
|
||
template:
|
||
metadata:
|
||
annotations:
|
||
container.apparmor.security.beta.kubernetes.io/netdata: unconfined
|
||
checksum/config: 8a146c7f2aa937bbdd19b8ad73ddf059040663eb3ae88046b343003a4fa089e3
|
||
labels:
|
||
app: netdata
|
||
release: netdata
|
||
role: child
|
||
spec:
|
||
serviceAccountName: netdata
|
||
restartPolicy: Always
|
||
hostPID: true
|
||
hostIPC: true
|
||
hostNetwork: true
|
||
initContainers:
|
||
- name: init-persistence
|
||
image: "alpine:latest"
|
||
resources:
|
||
requests:
|
||
cpu: 10m
|
||
imagePullPolicy: Always
|
||
volumeMounts:
|
||
- name: persistencevarlibdir
|
||
mountPath: "/persistencevarlibdir"
|
||
command:
|
||
- "/bin/sh"
|
||
args:
|
||
- "-c"
|
||
- '
|
||
chmod 777 /persistencevarlibdir;
|
||
'
|
||
containers:
|
||
- name: netdata
|
||
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: "e15a4f12-89d7-4d5b-b588-6658fa835473"
|
||
- name: MY_POD_NAME
|
||
valueFrom:
|
||
fieldRef:
|
||
fieldPath: metadata.name
|
||
- name: MY_NODE_NAME
|
||
valueFrom:
|
||
fieldRef:
|
||
fieldPath: spec.nodeName
|
||
- name: MY_POD_NAMESPACE
|
||
valueFrom:
|
||
fieldRef:
|
||
fieldPath: metadata.namespace
|
||
- name: NETDATA_LISTENER_PORT
|
||
value: '19999'
|
||
ports:
|
||
- name: http
|
||
containerPort: 19999
|
||
protocol: TCP
|
||
livenessProbe:
|
||
exec:
|
||
command:
|
||
- /usr/sbin/netdatacli
|
||
- ping
|
||
initialDelaySeconds: 0
|
||
failureThreshold: 3
|
||
periodSeconds: 30
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
readinessProbe:
|
||
exec:
|
||
command:
|
||
- /usr/sbin/netdatacli
|
||
- ping
|
||
initialDelaySeconds: 0
|
||
failureThreshold: 3
|
||
periodSeconds: 30
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
volumeMounts:
|
||
- name: proc
|
||
readOnly: true
|
||
mountPath: /host/proc
|
||
- name: sys
|
||
mountPath: /host/sys
|
||
- name: os-release
|
||
mountPath: /host/etc/os-release
|
||
- name: varlog
|
||
mountPath: /host/var/log
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d.conf
|
||
subPath: go.d
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/k8s_kubelet.conf
|
||
subPath: kubelet
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/dns_query.conf
|
||
subPath: dnsquery
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/x509check.conf
|
||
subPath: x509check
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/httpcheck.conf
|
||
subPath: httpcheck
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/web_log.conf
|
||
subPath: web_log
|
||
- name: configmap
|
||
mountPath: /etc/netdata/otel.yaml
|
||
subPath: otel
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/k8s_kubeproxy.conf
|
||
subPath: kubeproxy
|
||
- name: configmap
|
||
mountPath: /etc/netdata/netdata.conf
|
||
subPath: netdata
|
||
- name: configmap
|
||
mountPath: /etc/netdata/stream.conf
|
||
subPath: stream
|
||
- name: persistencevarlibdir
|
||
mountPath: /var/lib/netdata
|
||
- name: sdconfigmap
|
||
mountPath: "/etc/netdata/go.d/sd/k8s.conf"
|
||
subPath: config.yml
|
||
securityContext:
|
||
capabilities:
|
||
add:
|
||
- SYS_PTRACE
|
||
- SYS_ADMIN
|
||
resources:
|
||
{}
|
||
tolerations:
|
||
- effect: NoSchedule
|
||
operator: Exists
|
||
terminationGracePeriodSeconds: 30
|
||
volumes:
|
||
- name: proc
|
||
hostPath:
|
||
path: /proc
|
||
- name: sys
|
||
hostPath:
|
||
path: /sys
|
||
- name: os-release
|
||
hostPath:
|
||
path: /etc/os-release
|
||
- name: varlog
|
||
hostPath:
|
||
path: /var/log
|
||
- name: configmap
|
||
configMap:
|
||
name: netdata-conf-child
|
||
optional: true
|
||
- name: configsecret
|
||
secret:
|
||
secretName: netdata-conf-child
|
||
optional: true
|
||
- name: persistencevarlibdir
|
||
hostPath:
|
||
path: /var/lib/netdata-k8s-child/var/lib/netdata
|
||
type: DirectoryOrCreate
|
||
- name: sdconfigmap
|
||
configMap:
|
||
name: netdata-child-sd-config-map
|
||
optional: true
|
||
dnsPolicy: ClusterFirstWithHostNet
|
||
---
|
||
# Source: netdata/templates/k8s-state/deployment.yaml
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: netdata-k8s-state
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: k8sState
|
||
spec:
|
||
strategy:
|
||
type: Recreate
|
||
selector:
|
||
matchLabels:
|
||
app: netdata
|
||
release: netdata
|
||
role: k8sState
|
||
template:
|
||
metadata:
|
||
annotations:
|
||
container.apparmor.security.beta.kubernetes.io/netdata: unconfined
|
||
checksum/config: 695eec71873af73b22884232dbacc2917e0b13dad40de683b317b1105911c469
|
||
labels:
|
||
app: netdata
|
||
release: netdata
|
||
role: k8sState
|
||
spec:
|
||
securityContext:
|
||
fsGroup: 201
|
||
serviceAccountName: netdata
|
||
restartPolicy: Always
|
||
initContainers:
|
||
containers:
|
||
- name: netdata
|
||
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:
|
||
- name: http
|
||
containerPort: 19999
|
||
protocol: TCP
|
||
livenessProbe:
|
||
exec:
|
||
command:
|
||
- /usr/sbin/netdatacli
|
||
- ping
|
||
initialDelaySeconds: 0
|
||
failureThreshold: 3
|
||
periodSeconds: 30
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
readinessProbe:
|
||
exec:
|
||
command:
|
||
- /usr/sbin/netdatacli
|
||
- ping
|
||
initialDelaySeconds: 0
|
||
failureThreshold: 3
|
||
periodSeconds: 30
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
volumeMounts:
|
||
- name: os-release
|
||
mountPath: /host/etc/os-release
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d.conf
|
||
subPath: go.d
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/httpcheck.conf
|
||
subPath: httpcheck
|
||
- name: configmap
|
||
mountPath: /etc/netdata/go.d/k8s_state.conf
|
||
subPath: go.d-k8s_state
|
||
- name: configmap
|
||
mountPath: /etc/netdata/netdata.conf
|
||
subPath: netdata
|
||
- name: configmap
|
||
mountPath: /etc/netdata/stream.conf
|
||
subPath: stream
|
||
- name: varlib
|
||
mountPath: /var/lib/netdata
|
||
resources:
|
||
{}
|
||
terminationGracePeriodSeconds: 30
|
||
volumes:
|
||
- name: os-release
|
||
hostPath:
|
||
path: /etc/os-release
|
||
- name: configmap
|
||
configMap:
|
||
name: netdata-conf-k8s-state
|
||
optional: true
|
||
- name: configsecret
|
||
secret:
|
||
secretName: netdata-conf-k8s-state
|
||
optional: true
|
||
- name: varlib
|
||
persistentVolumeClaim:
|
||
claimName: netdata-k8s-state-varlib
|
||
dnsPolicy: ClusterFirstWithHostNet
|
||
---
|
||
# Source: netdata/templates/parent/deployment.yaml
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: netdata-parent
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
role: parent
|
||
spec:
|
||
replicas: 1
|
||
strategy:
|
||
type: Recreate
|
||
selector:
|
||
matchLabels:
|
||
app: netdata
|
||
release: netdata
|
||
role: parent
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: netdata
|
||
release: netdata
|
||
role: parent
|
||
annotations:
|
||
checksum/config: 7ae6d956c6b1ddf923e6d707aecca99fc502fa2fba6feb22b7845f5840edd58e
|
||
spec:
|
||
securityContext:
|
||
fsGroup: 201
|
||
serviceAccountName: netdata
|
||
initContainers:
|
||
[]
|
||
containers:
|
||
- name: netdata
|
||
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: "e15a4f12-89d7-4d5b-b588-6658fa835473"
|
||
- 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:
|
||
- name: http
|
||
containerPort: 19999
|
||
protocol: TCP
|
||
livenessProbe:
|
||
exec:
|
||
command:
|
||
- /usr/sbin/netdatacli
|
||
- ping
|
||
initialDelaySeconds: 0
|
||
failureThreshold: 3
|
||
periodSeconds: 30
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
readinessProbe:
|
||
exec:
|
||
command:
|
||
- /usr/sbin/netdatacli
|
||
- ping
|
||
initialDelaySeconds: 0
|
||
failureThreshold: 3
|
||
periodSeconds: 30
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
securityContext:
|
||
runAsUser: 201
|
||
runAsGroup: 201
|
||
volumeMounts:
|
||
- name: os-release
|
||
mountPath: /host/etc/os-release
|
||
- name: configmap
|
||
mountPath: /etc/netdata/health_alarm_notify.conf
|
||
subPath: health
|
||
- name: configmap
|
||
mountPath: /etc/netdata/netdata.conf
|
||
subPath: netdata
|
||
- name: configmap
|
||
mountPath: /etc/netdata/stream.conf
|
||
subPath: stream
|
||
- name: database
|
||
mountPath: /var/cache/netdata
|
||
- name: alarms
|
||
mountPath: /var/lib/netdata
|
||
resources:
|
||
{}
|
||
terminationGracePeriodSeconds: 300
|
||
volumes:
|
||
- name: os-release
|
||
hostPath:
|
||
path: /etc/os-release
|
||
- name: configmap
|
||
configMap:
|
||
name: netdata-conf-parent
|
||
optional: true
|
||
- name: configsecret
|
||
secret:
|
||
secretName: netdata-conf-parent
|
||
optional: true
|
||
- name: database
|
||
persistentVolumeClaim:
|
||
claimName: netdata-parent-database
|
||
- name: alarms
|
||
persistentVolumeClaim:
|
||
claimName: netdata-parent-alarms
|
||
dnsPolicy: Default
|
||
---
|
||
# Source: netdata/templates/parent/ingress.yaml
|
||
apiVersion: networking.k8s.io/v1
|
||
kind: Ingress
|
||
metadata:
|
||
name: netdata
|
||
namespace: netdata
|
||
labels:
|
||
app: netdata
|
||
chart: netdata-3.7.170
|
||
release: netdata
|
||
heritage: Helm
|
||
annotations:
|
||
kubernetes.io/ingress.class: nginx
|
||
kubernetes.io/tls-acme: "true"
|
||
spec:
|
||
rules:
|
||
- host: netdata.k8s.local
|
||
http:
|
||
paths:
|
||
- path: /
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: netdata
|
||
port:
|
||
name: http
|