# yaml-language-server: $schema=./values.schema.json
image:
  repository: ghcr.io/netdata/netdata
  tag: v2.9.0@sha256:b0364d516d3ca86d3a1b361787125220fe80cd9e096117caeae995b62a0f0fcf
  pullPolicy: IfNotPresent
# -- The service account the pods will use to interact with the Kubernetes API
serviceAccount:
  main:
    enabled: true
    primary: true
configmap:
  configs:
    enabled: true
    data:
      netdata-conf: |-
        [global]
          memory mode = dbengine
          dbengine multihost disk space = 4096
          page cache size = 64
      go-d-conf: |-
        modules:
          k8s_state: yes
      go-d-k8s-state-conf: |-
        jobs:
          - name: k8s_state
            update_every: 1
rbac:
  main:
    enabled: true
    primary: true
    rules:
      - apiGroups:
          - ""
        resources:
          - "pods"
          - "nodes"
          - "nodes/metrics"
          # - "services"       # used by agent service discovery
          # - "configmaps"     # used by agent service discovery
          # - "secrets"        # used by agent service discovery
        verbs:
          - "get"
          - "list"
          - "watch"
      - apiGroups:
          - ""
        resources:
          - "namespaces"
        verbs:
          - "get"
service:
  main:
    ports:
      main:
        port: 19999
        targetPort: 19999
persistence:
  config:
    enabled: true
    mountPath: "/etc/netdata"
    targetSelectAll: true
  lib:
    enabled: true
    mountPath: "/var/lib/netdata"
  cache:
    enabled: true
    mountPath: "/var/cache/netdata"
  passwd:
    enabled: true
    type: hostPath
    hostPath: "/etc/passwd"
    mountPath: "/host/etc/passwd"
    readOnly: true
  group:
    enabled: true
    type: hostPath
    hostPath: "/etc/group"
    mountPath: "/host/etc/group"
    readOnly: true
  proc:
    enabled: true
    type: hostPath
    hostPath: "/proc"
    mountPath: "/host/proc"
    readOnly: true
  dev:
    enabled: true
    type: hostPath
    hostPath: "/dev"
    mountPath: "/host/dev"
    readOnly: true
  sys:
    enabled: true
    type: hostPath
    hostPath: "/sys"
    mountPath: "/host/sys"
    readOnly: true
  os:
    enabled: true
    type: hostPath
    hostPath: "/etc/os-release"
    mountPath: "/host/etc/os-release"
    readOnly: true
  netdata-configs:
    enabled: true
    mountPath: "/etc/netdata/truecharts-defaults/.netdata.conf"
    subPath: "netdata-conf"
    type: configmap
    objectName: configs
    targetSelectAll: true
  go-d-configs:
    enabled: true
    mountPath: "/etc/netdata/truecharts-defaults/.go.d.conf"
    subPath: "go-d-conf"
    type: configmap
    objectName: configs
    targetSelectAll: true
  go-d-k8s-state-configs:
    enabled: true
    mountPath: "/etc/netdata/truecharts-defaults/go.d/.k8s_state.conf"
    subPath: "go-d-k8s-state-conf"
    type: configmap
    objectName: configs
    targetSelectAll: true

securityContext:
  container:
    readOnlyRootFilesystem: false
    runAsNonRoot: false
    capabilities:
      add:
        - SYS_PTRACE
    runAsUser: 0
    runAsGroup: 0
    fsGroup: 201
workload:
  main:
    podSpec:
      automountServiceAccountToken: true
      initContainers:
        create-config:
          enabled: true
          imageSelector: image
          type: init
          command:
            - /bin/bash
            - -c
          args:
            - |-
              copy_config () {
                local confSource="$1"
                local confTarget="$2"
                local dirTarget
                dirTarget="$(dirname "${confTarget}")"

                if [ ! -f "$confTarget" ]; then
                  if [ ! -d "${dirTarget}" ]; then
                    mkdir -p "$dirTarget"
                  fi;
                  cp "$confSource" "$confTarget"
                  echo "Content of $(basename "${confTarget}")"
                  cat "$confTarget"
                else
                  echo "Config $confTarget exists, skipping..."
                fi;
              }
              export -f copy_config

              copy_config "/etc/netdata/truecharts-defaults/.netdata.conf" "/etc/netdata/netdata.conf"
              copy_config "/etc/netdata/truecharts-defaults/.go.d.conf" "/etc/netdata/go.d.conf"
              copy_config "/etc/netdata/truecharts-defaults/go.d/.k8s_state.conf" "/etc/netdata/go.d/k8s_state.conf"
      containers:
        main:
          probes:
            liveness:
              path: "/api/v1/info"
            readiness:
              path: "/api/v1/info"
            startup:
              path: "/api/v1/info"
          env:
            MY_NODE_NAME:
              fieldRef:
                fieldPath: spec.nodeName
            MY_POD_NAMESPACE:
              fieldRef:
                fieldPath: metadata.namespace
            MY_POD_NAME:
              fieldRef:
                fieldPath: metadata.name
            NETDATA_CLAIM_URL: ""
            NETDATA_CLAIM_TOKEN: ""
            NETDATA_CLAIM_ROOMS: ""
