Files
netdata_kube/netdata_helm.yml
T

1178 lines
35 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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