# Default values for datadog.
image:
  # This chart is compatible with different images, please choose one
  repository: datadog/agent               # Agent6
  # repository: datadog/dogstatsd         # Standalone DogStatsD6
  tag: 6.9.0  # Use 6.9.0-jmx to enable jmx fetch collection
  pullPolicy: IfNotPresent
  ## It is possible to specify docker registry credentials
  ## See https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
  # pullSecrets:
  #    - name: regsecret

# NB! Normally you need to keep Datadog DaemonSet enabled!
# The exceptional case could be a situation when you need to run
# single DataDog pod per every namespace, but you do not need to
# re-create a DaemonSet for every non-default namespace install.
# Note, that StatsD and DogStatsD work over UDP, so you may not
# get guaranteed delivery of the metrics in Datadog-per-namespace setup!
daemonset:
  enabled: true

  ## Configure pods with the required tolerations to run agents
  ## on RKE data and control plane nodes.
  rkeETCDControlPlane: true

  ## Bind ports on the hostNetwork. Useful for CNI networking where hostPort might
  ## not be supported. The ports will need to be available on all hosts. Can be
  ## used for custom metrics instead of a service endpoint.
  ## WARNING: Make sure that hosts using this are properly firewalled otherwise
  ## metrics and traces will be accepted from any host able to connect to this host.
  # useHostNetwork: true

  ## Sets the hostPort to the same value of the container port. Needs to be used
  ## to receive traces in a standard APM set up. Can be used as for sending custom metrics.
  ## The ports will need to be available on all hosts.
  ## WARNING: Make sure that hosts using this are properly firewalled otherwise
  ## metrics and traces will be accepted from any host able to connect to this host.
  # useHostPort: true

  ## Run the agent in the host's PID namespace. This is required for Dogstatsd origin
  ## detection to work. See https://docs.datadoghq.com/developers/dogstatsd/unix_socket/
  # useHostPID: true

  ## Annotations to add to the DaemonSet's Pods
  # podAnnotations:
  #   scheduler.alpha.kubernetes.io/tolerations: '[{"key": "example", "value": "foo"}]'

  ## Allow the DaemonSet to schedule on tainted nodes (requires Kubernetes >= 1.6)
  # tolerations: []

  ## Allow the DaemonSet to schedule on selected nodes
  # Ref: https://kubernetes.io/docs/user-guide/node-selection/
  # nodeSelector: {}

  ## Allow the DaemonSet to schedule ussing affinity rules
  # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  # affinity: {}

  ## Allow the DaemonSet to perform a rolling update on helm update
  ## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
  # updateStrategy: RollingUpdate

  ## Sets PriorityClassName if defined
  # priorityClassName:

## deploy the kube-state-metrics deployment
## ref: https://github.com/kubernetes/charts/tree/master/stable/kube-state-metrics

kubeStateMetrics:
  enabled: true
  image:
    repository: quay.io/coreos/kube-state-metrics
    tag: v1.4.0

# This is the new cluster agent implementation that handles cluster-wide
# metrics more cleanly, separates concerns for better rbac, and implements
# the external metrics API so you can autoscale HPAs based on datadog
# metrics
clusterAgent:
  containerName: cluster-agent
  image:
    repository: datadog/cluster-agent
    tag: 1.1.0
    pullPolicy: IfNotPresent
  enabled: false
  ## This needs to be at least 32 characters a-zA-z
  ## It is a preshared key between the node agents and the cluster agent
  token: ""
  replicas: 1
  ## Enable the metricsProvider to be able to scale based on metrics in Datadog
  metricsProvider:
    enabled: false
  resources:
    requests:
      cpu: 200m
      memory: 256Mi
    limits:
      cpu: 200m
      memory: 256Mi

  ## Override the agent's liveness probe logic from the default:
  ## In case of issues with the probe, you can disable it with the
  ## following values, to allow easier investigating:
  # livenessProbe:
  #   exec:
  #     command: ["/bin/true"]
  ## Override the cluster-agent's readiness probe logic from the default:
  # readinessProbe:

datadog:
  ## You'll need to set this to your Datadog API key before the agent will run.
  ## ref: https://app.datadoghq.com/account/settings#agent/kubernetes
  ##
  # apiKey:

  ## Starting with Agent v6.4.0, the agent proxy settings can be overridden
  ## with the following environment variables:
  # httpProxy: ""
  # httpsProxy: ""
  # noProxy: ""

  ## You can modify the security context used to run the containers by
  ## modifying the label type below:
  # securityContext:
  #   seLinuxOptions:
  #     seLinuxLabel: "spc_t"

  ## Use existing Secret which stores API key instead of creating a new one
  # apiKeyExistingSecret:

  ## If you are using clusterAgent.metricsProvider.enabled = true, you'll need
  ## a datadog app key for read access to the metrics
  # appKey:

  ## Use existing Secret which stores APP key instead of creating a new one
  # appKeyExistingSecret:

  ## Daemonset/Deployment container name
  ## See clusterAgent.containerName if clusterAgent.enabled = true
  ##
  name: datadog

  # The site of the Datadog intake to send Agent data to.
  # Defaults to 'datadoghq.com', set to 'datadoghq.eu' to send data to the EU site.
  # site: datadoghq.com

  # The host of the Datadog intake server to send Agent data to, only set this option
  # if you need the Agent to send data to a custom URL.
  # Overrides the site setting defined in "site".
  # dd_url: https://app.datadoghq.com

  ## Set logging verbosity.
  ## ref: https://github.com/DataDog/docker-dd-agent#environment-variables
  ## Note: For Agent6 (image `datadog/agent`) the valid log levels are
  ## trace, debug, info, warn, error, critical, and off
  ##
  logLevel: INFO

  ## Un-comment this to make each node accept non-local statsd traffic.
  ## ref: https://github.com/DataDog/docker-dd-agent#environment-variables
  ##
  # nonLocalTraffic: true

  ## Enable origin detection for container tagging
  ## https://docs.datadoghq.com/developers/dogstatsd/unix_socket/#using-origin-detection-for-container-tagging
  ##
  # dogstatsdOriginDetection: true

  ## Enable container runtime socket volume mounting
  useCriSocketVolume: true

  ## Enable dogstatsd over Unix Domain Socket
  ## ref: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/
  ##
  # useDogStatsDSocketVolume: true

  ## Set host tags.
  ## ref: https://github.com/DataDog/docker-dd-agent#environment-variables
  ##
  # tags:

  ## Enables event collection from the kubernetes API
  ## ref: https://github.com/DataDog/docker-dd-agent#environment-variables
  ##
  collectEvents: false

  ## Enables log collection
  ## ref: https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/#log-collection-setup
  ##
  # logsEnabled: false
  # logsConfigContainerCollectAll: false

  ## Un-comment this to enable APM and tracing, on port 8126
  ## ref: https://github.com/DataDog/docker-dd-agent#tracing-from-the-host
  ##
  # apmEnabled: true

  ## Un-comment this to enable live process monitoring
  ## ref: https://docs.datadoghq.com/graphing/infrastructure/process/#kubernetes-daemonset
  ##
  # processAgentEnabled: true

  ## The dd-agent supports many environment variables
  ## ref: https://github.com/DataDog/datadog-agent/tree/master/Dockerfiles/agent#environment-variables
  ##
  # env:
  #   - name:
  #     value:

  ## The dd-agent supports detailed process and container monitoring and
  ## requires control over the volume and volumeMounts for the daemonset
  ## ref: https://docs.datadoghq.com/guides/process/
  ##
  # volumes:
  #  - hostPath:
  #      path: /etc/passwd
  #    name: passwd
  # volumeMounts:
  #   - name: passwd
  #     mountPath: /etc/passwd
  #     readOnly: true

  ## Enable leader election mechanism for event collection
  ##
  # leaderElection: false

  ## Set the lease time for leader election
  ##
  # leaderLeaseDuration: 600

  ## Provide additional check configurations (static and Autodiscovery)
  ## Each key will become a file in /conf.d
  ## ref: https://github.com/DataDog/datadog-agent/tree/master/Dockerfiles/agent#optional-volumes
  ## ref: https://docs.datadoghq.com/agent/autodiscovery/
  ##
  # confd:
  #   redisdb.yaml: |-
  #     init_config:
  #     instances:
  #       - host: "name"
  #         port: "6379"
  #   kubernetes_state.yaml: |-
  #     ad_identifiers:
  #       - kube-state-metrics
  #     init_config:
  #     instances:
  #       - kube_state_url: http://%%host%%:8080/metrics

  ## Provide additional custom checks as python code
  ## Each key will become a file in /checks.d
  ## ref: https://github.com/DataDog/datadog-agent/tree/master/Dockerfiles/agent#optional-volumes
  ##
  # checksd:
  #   service.py: |-

  ## Path to the container runtime socket (if different from Docker)
  ## This is supported starting from agent 6.6.0
  # criSocketPath: /var/run/containerd/containerd.sock

  ## Provide a mapping of Kubernetes Labels to Datadog Tags
  # podLabelsAsTags:
  #     app: kube_app
  #     release: helm_release

  ## Provide a mapping of Kubernetes Annotations to Datadog Tags
  # podAnnotationsAsTags:
  #     iam.amazonaws.com/role: kube_iamrole

  ## Override the agent's liveness probe logic from the default:
  ## In case of issues with the probe, you can disable it with the
  ## following values, to allow easier investigating:
  # livenessProbe:
  #   exec:
  #     command: ["/bin/true"]

  ## datadog-agent resource requests and limits
  ## Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class
  ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  resources:
    requests:
      cpu: 200m
      memory: 256Mi
    limits:
      cpu: 200m
      memory: 256Mi

rbac:
  ## If true, create & use RBAC resources
  create: true

  ## Ignored if rbac.create is true
  serviceAccountName: default

tolerations: []

kube-state-metrics:
  rbac:
    create: true

    ## Ignored if rbac.create is true
    serviceAccountName: default
