[stable/datadog] Mount kernel headers in system-probe container (#22686)

The goal is to implement runtime-compiled eBPF probes in system-probe
and collect the data to convert them in DataDog metrics in the agent.

Signed-off-by: Lénaïc Huard <lenaic.huard@datadoghq.com>
This commit is contained in:
Lénaïc Huard
2020-06-24 11:04:37 -07:00
committed by GitHub
parent cc69b438b9
commit 8655b15921
10 changed files with 207 additions and 168 deletions
+6
View File
@@ -1,5 +1,11 @@
# Datadog changelog
## 2.3.15
* Mount kernel headers in system-probe container
* Fix the mount of the `system-probe` socket in core agent
* Add parameters to enable eBPF based checks
## 2.3.14
* Allow overriding the `command` to run in the cluster-agent container
+1 -1
View File
@@ -1,6 +1,6 @@
apiVersion: v1
name: datadog
version: 2.3.14
version: 2.3.15
appVersion: "7"
description: Datadog Agent
keywords:
+160 -158
View File
@@ -269,164 +269,166 @@ helm install --name <RELEASE_NAME> \
stable/datadog
```
| Parameter | Description | Default |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| `targetSystem` | Target OS of this installation (supported: `linux`, `windows`) | `linux` |
| `datadog.apiKey` | Your Datadog API key | `nil` You must provide your own key |
| `datadog.apiKeyExistingSecret` | If set, use the secret with a provided name instead of creating a new one | `nil` |
| `datadog.appKey` | Datadog APP key required to use metricsProvider | `nil` You must provide your own key |
| `datadog.appKeyExistingSecret` | If set, use the secret with a provided name instead of creating a new one | `nil` |
| `agents.image.repository` | The image repository to pull from | `datadog/agent` |
| `agents.image.tag` | The image tag to pull | `7.19.0` |
| `agents.image.doNotCheckTag` | By default, the helm chart will check that the version provided in `agents.image.tag` is superior to the minimal version requested by the chart. If `doNotCheckTag` is explicitly set to `true`, this check is skipped. This is useful for custom tags that are not respecting semantic versioning. | `false` |
| `agents.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `agents.image.pullSecrets` | Image pull secrets | `nil` |
| `nameOverride` | Override name of app | `""` |
| `fullnameOverride` | Override full name of app | `""` |
| `agents.rbac.create` | If true, create & use RBAC resources | `true` |
| `agents.rbac.serviceAccountName` | existing ServiceAccount to use (ignored if rbac.create=true) | `default` |
| `datadog.site` | Site ('datadoghq.com' or 'datadoghq.eu') | `nil` |
| `datadog.dd_url` | Datadog intake server | `nil` |
| `datadog.env` | Additional Datadog environment variables | `nil` |
| `datadog.logLevel` | Agent log verbosity (possible values: trace, debug, info, warn, error, critical, and off) | `INFO` |
| `datadog.logs.enabled` | Enable log collection | `nil` |
| `datadog.logs.containerCollectAll` | Collect logs from all containers | `nil` |
| `datadog.logs.containerCollectUsingFiles` | Collect container logs from files on disk instead of container runtime API | `true` |
| `datadog.apm.enabled` | Enable tracing from the host | `false` |
| `datadog.apm.port` | Used to override the default agent APM Port | `8126` |
| `datadog.apm.useSocketVolume` | Enable APM over Unix Domain Socket | `False` |
| `datadog.apm.socketPath` | Custom path to the socket, has to be located in the `/var/run/datadog/` folder path | `/var/run/datadog/apm.socket` |
| `datadog.apm.hostPath` | host directory that contains the trace-agent socket path | `/var/run/datadog/` |
| `datadog.clusterChecks.enabled` | Enable Cluster Checks on both the Cluster Agent and the Agent daemonset | `false` |
| `datadog.processAgent.enabled` | Enable live process and container monitoring agent. Possible values: `true` enable process-agent, `false` disable process-agent | `true` |
| `datadog.processAgent.processCollection` | Enable live process collection. Possible values: `true` enable process collection, `false` disable process collection | `false` |
| `datadog.checksd` | Additional custom checks as python code | `nil` |
| `datadog.confd` | Additional check configurations (static and Autodiscovery) | `nil` |
| `datadog.dockerSocketPath` | Path to the docker socket | `/var/run/docker.sock` |
| `datadog.criSocketPath` | Path to the container runtime socket (default is Docker runtime) | `nil` |
| `datadog.tags` | Set host tags | `nil` |
| `datadog.dogstatsd.originDetection` | Enable origin detection for container tagging | `False` |
| `datadog.dogstatsd.port` | Used to override the default agent DogStatsD Port | `8125` |
| `datadog.dogstatsd.useHostPID` | If true, use the host's PID namespace | `nil` |
| `datadog.dogstatsd.useHostPort` | If true, use the same ports for both host and container | `nil` |
| `datadog.dogstatsd.nonLocalTraffic` | Enable statsd reporting from any external ip | `False` |
| `datadog.dogstatsd.useSocketVolume` | Enable dogstatsd over Unix Domain Socket | `False` |
| `datadog.dogstatsd.socketPath` | Custom path to the socket, has to be located in the `/var/run/datadog/` folder path | `/var/run/datadog/dsd.socket` |
| `datadog.dogstatsd.hostPath` | host directory that contains the dogstatsd socket | `/var/run/datadog/` |
| `datadog.nodeLabelsAsTags` | Kubernetes Node Labels to Datadog Tags mapping | `nil` |
| `datadog.podAnnotationsAsTags` | Kubernetes Annotations to Datadog Tags mapping | `nil` |
| `datadog.podLabelsAsTags` | Kubernetes Labels to Datadog Tags mapping | `nil` |
| `datadog.securityContext` | Allows you to overwrite the default securityContext applied to the container | `nil` |
| `datadog.acInclude` | Include containers based on image name | `nil` |
| `datadog.acExclude` | Exclude containers based on image name | `nil` |
| `datadog.systemProbe.enabled` | enable system probe collection | `false` |
| `datadog.systemProbe.seccomp` | Apply an ad-hoc seccomp profile to system-probe to restrict its privileges | `localhost/system-probe` |
| `datadog.systemProbe.seccompRoot` | Seccomp root directory for system-probe | `/var/lib/kubelet/seccomp` |
| `datadog.systemProbe.debugPort` | The port to expose pprof and expvar for system-probe agent, it is not enabled if the value is set to 0 | `0` |
| `datadog.systemProbe.enableConntrack` | If true, system-probe connects to the netlink/conntrack subsystem to add NAT information to connection data. Ref: http://conntrack-tools.netfilter.org/ | `true` |
| `datadog.systemProbe.bpfDebug` | If true, system-probe writes debug logs to /sys/kernel/debug/tracing/trace_pipe | `false` |
| `datadog.systemProbe.apparmor` | Apparmor profile for system-probe | `unconfined` |
| `agents.podAnnotations` | Annotations to add to the DaemonSet's Pods | `nil` |
| `agents.podLabels` | labels to add to each pod | `nil` |
| `agents.tolerations` | List of node taints to tolerate (requires Kubernetes >= 1.6) | `nil` |
| `agents.nodeSelector` | Node selectors | `nil` |
| `agents.affinity` | Node affinities | `nil` |
| `agents.useHostNetwork` | If true, use the host's network | `nil` |
| `agents.dnsConfig` | If set, configure dnsConfig options in datadog agent containers | `nil` |
| `agents.containers.agent.env` | Additional list of environment variables to use in the agent container | `nil` |
| `agents.containers.agent.logLevel` | Agent log verbosity | `INFO` |
| `agents.containers.agent.resources.limits.cpu` | CPU resource limits for the agent container | `200m` |
| `agents.containers.agent.resources.requests.cpu` | CPU resource requests for the agent container | `200m` |
| `agents.containers.agent.resources.limits.memory` | Memory resource limits for the agent container | `256Mi` |
| `agents.containers.agent.resources.requests.memory` | Memory resource requests for the agent container | `256Mi` |
| `agents.containers.agent.livenessProbe` | Overrides the default liveness probe | http check on /live with port 5555 |
| `agents.containers.agent.readinessProbe` | Overrides the default readiness probe | http check on /ready with port 5555 |
| `agents.containers.processAgent.env` | Additional list of environment variables to use in the process-agent container | `nil` |
| `agents.containers.processAgent.logLevel` | Process agent log verbosity | `INFO` |
| `agents.containers.processAgent.resources.limits.cpu` | CPU resource limits for the process-agent container | `100m` |
| `agents.containers.processAgent.resources.requests.cpu` | CPU resource requests for the process-agent container | `100m` |
| `agents.containers.processAgent.resources.limits.memory` | Memory resource limits for the process-agent container | `200Mi` |
| `agents.containers.processAgent.resources.requests.memory` | Memory resource requests for the process-agent container | `200Mi` |
| `agents.containers.traceAgent.env` | Additional list of environment variables to use in the trace-agent container | `nil` |
| `agents.containers.traceAgent.logLevel` | Trace agent log verbosity | `INFO` |
| `agents.containers.traceAgent.resources.limits.cpu` | CPU resource limits for the trace-agent container | `100m` |
| `agents.containers.traceAgent.resources.requests.cpu` | CPU resource requests for the trace-agent container | `100m` |
| `agents.containers.traceAgent.resources.limits.memory` | Memory resource limits for the trace-agent container | `200Mi` |
| `agents.containers.traceAgent.resources.requests.memory` | Memory resource requests for the trace-agent container | `200Mi` |
| `agents.containers.systemProbe.env` | Additional list of environment variables to use in the system-probe container | `nil` |
| `agents.containers.systemProbe.logLevel` | System probe log verbosity | `INFO` |
| `agents.containers.systemProbe.resources.limits.cpu` | CPU resource limits for the system-probe container | `100m` |
| `agents.containers.systemProbe.resources.requests.cpu` | CPU resource requests for the system-probe container | `100m` |
| `agents.containers.systemProbe.resources.limits.memory` | Memory resource limits for the system-probe container | `200Mi` |
| `agents.containers.systemProbe.resources.requests.memory` | Memory resource requests for the system-probe container | `200Mi` |
| `agents.containers.initContainers.resources.limits.cpu` | CPU resource limits for the init containers container | `200m` |
| `agents.containers.initContainers.resources.requests.cpu` | CPU resource requests for the init containers container | `200m` |
| `agents.containers.initContainers.resources.limits.memory` | Memory resource limits for the init containers container | `256Mi` |
| `agents.containers.initContainers.resources.requests.memory` | Memory resource requests for the init containers container | `256Mi` |
| `agents.priorityClassName` | Which Priority Class to associate with the daemonset | `nil` |
| `agents.useConfigMap` | Configures a configmap to provide the agent configuration. Use this in combination with the `agent.customAgentConfig` parameter. | `false` |
| `agents.customAgentConfig` | Specify custom contents for the datadog agent config (datadog.yaml). Note the `agent.useConfigMap` parameter needs to be set to `true` for this parameter to be taken into account. | `{}` |
| `agents.updateStrategy` | Which update strategy to deploy the daemonset | RollingUpdate with 10% maxUnavailable |
| `agents.volumes` | Additional volumes for the daemonset or deployment | `nil` |
| `agents.volumeMounts` | Additional volumeMounts for the daemonset or deployment | `nil` |
| `datadog.leaderElection` | Enable the leader Election feature | `false` |
| `datadog.leaderLeaseDuration` | The duration for which a leader stays elected. | 60 sec, 15 if Cluster Checks enabled |
| `datadog.collectEvents` | Enable Kubernetes event collection. Requires leader election. | `false` |
| `datadog.kubeStateMetricsEnabled` | If true, create kube-state-metrics | `true` |
| `clusterAgent.enabled` | Use the cluster-agent for cluster metrics (Kubernetes 1.10+ only) | `false` |
| `clusterAgent.token` | A cluster-internal secret for agent-to-agent communication. Must be 32+ characters a-zA-Z | Generates a random value |
| `clusterAgent.tokenExistingSecret` | If set, use the secret with a provided name instead of creating a new one | `nil` |
| `clusterAgent.image.repository` | The image repository for the cluster-agent | `datadog/cluster-agent` |
| `clusterAgent.image.tag` | The image tag to pull | `1.2.0` |
| `clusterAgent.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `clusterAgent.image.pullSecrets` | Image pull secrets | `nil` |
| `clusterAgent.command` | Override the default command to run in the container | `nil` |
| `clusterAgent.rbac.create` | If true, create & use RBAC resources for cluster agent's pods | `true` |
| `clusterAgent.rbac.serviceAccount` | existing ServiceAccount to use (ignored if rbac.create=true) for cluster agent's pods | `default` |
| `clusterAgent.metricsProvider.enabled` | Enable Datadog metrics as a source for HPA scaling | `false` |
| `clusterAgent.metricsProvider.service.type` | The type of service to use for the clusterAgent metrics server | `ClusterIP` |
| `clusterAgent.metricsProvider.service.port` | The port for service to use for the clusterAgent metrics server | `443` . |
| `clusterAgent.confd` | Additional check configurations (static and Autodiscovery) | `nil` |
| `clusterAgent.podAnnotations` | Annotations to add to the Cluster Agent Pod(s) | `nil` |
| `clusterAgent.podLabels` | Labels to add to the Cluster Agent Pod(s) | `nil` |
| `clusterAgent.createPodDisruptionBudget` | Enable a pod disruption budget to apply to the Cluster Agent pods | `false` |
| `clusterAgent.priorityClassName` | Name of the priorityClass to apply to the Cluster Agent | `nil` |
| `clusterAgent.nodeSelector` | Node selectors to apply to the Cluster Agent deployment | `nil` |
| `clusterAgent.affinity` | Node affinities to apply to the Cluster Agent deployment | `nil` |
| `clusterAgent.resources.requests.cpu` | CPU resource requests | `200m` |
| `clusterAgent.resources.limits.cpu` | CPU resource limits | `200m` |
| `clusterAgent.resources.requests.memory` | Memory resource requests | `256Mi` |
| `clusterAgent.resources.limits.memory` | Memory resource limits | `256Mi` |
| `clusterAgent.tolerations` | List of node taints to tolerate | `[]` |
| `clusterAgent.healthPort` | Overrides the default health port used by the liveness and readiness endpoint | `5555` |
| `clusterAgent.livenessProbe` | Overrides the default liveness probe | `http check on /live with port 5555` |
| `clusterAgent.readinessProbe` | Overrides the default readiness probe | `http check on /ready with port 5555` |
| `clusterAgent.strategy` | Which update strategy to deploy the cluster-agent | RollingUpdate with 0 maxUnavailable, 1 maxSurge |
| `clusterAgent.useHostNetwork` | If true, use the host's network | `nil` |
| `clusterAgent.dnsConfig` | If set, configure dnsConfig options in datadog cluster agent containers | `nil` |
| `clusterAgent.volumes` | Additional volumes for the cluster-agent deployment | `nil` |
| `clusterAgent.volumeMounts` | Additional volumeMounts for the cluster-agent deployment | `nil` |
| `clusterChecksRunner.enabled` | Enable Datadog agent deployment dedicated for running Cluster Checks. It allows having different resources (Request/Limit) for Cluster Checks agent pods. | `false` |
| `clusterChecksRunner.env` | Additional Datadog environment variables for Cluster Checks Deployment | `nil` |
| `clusterChecksRunner.createPodDisruptionBudget` | Enable a pod disruption budget to apply to the Cluster Checks pods | `false` |
| `clusterChecksRunner.resources.requests.cpu` | CPU resource requests | `200m` |
| `clusterChecksRunner.resources.limits.cpu` | CPU resource limits | `200m` |
| `clusterChecksRunner.resources.requests.memory` | Memory resource requests | `256Mi` |
| `clusterChecksRunner.resources.limits.memory` | Memory resource limits | `256Mi` |
| `clusterChecksRunner.nodeSelector` | Node selectors | `nil` |
| `clusterChecksRunner.tolerations` | List of node taints to tolerate | `nil` |
| `clusterChecksRunner.affinity` | Node affinities | avoid running pods on the same node |
| `clusterChecksRunner.livenessProbe` | Overrides the default liveness probe | http check on /live with port 5555 |
| `clusterChecksRunner.readinessProbe` | Overrides the default readiness probe | http check on /ready with port 5555 |
| `clusterChecksRunner.rbac.create` | If true, create & use RBAC resources for clusterchecks agent's pods | `true` |
| `clusterChecksRunner.rbac.dedicated` | If true, use dedicated RBAC resources for clusterchecks agent's pods | `false` |
| `clusterChecksRunner.rbac.serviceAccount` | existing ServiceAccount to use (ignored if rbac.create=true) for clusterchecks agent's pods | `default` |
| `clusterChecksRunner.strategy` | Which update strategy to deploy the Cluster Checks Deployment | RollingUpdate with 0 maxUnavailable, 1 maxSurge |
| `clusterChecksRunner.dnsConfig` | If set, configure dnsConfig options in datadog cluster agent clusterChecks containers | `nil` |
| `kube-state-metrics.rbac.create` | If true, create & use RBAC resources for kube-state-metrics | `true` |
| `kube-state-metrics.serviceAccount.create` | If true, create & use serviceAccount | `true` |
| `kube-state-metrics.serviceAccount.name` | If not set & create is true, use template fullname | |
| `kube-state-metrics.resources` | Overwrite the default kube-state-metrics container resources (Optional) | |
| Parameter | Description | Default |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| `targetSystem` | Target OS of this installation (supported: `linux`, `windows`) | `linux` |
| `datadog.apiKey` | Your Datadog API key | `nil` You must provide your own key |
| `datadog.apiKeyExistingSecret` | If set, use the secret with a provided name instead of creating a new one | `nil` |
| `datadog.appKey` | Datadog APP key required to use metricsProvider | `nil` You must provide your own key |
| `datadog.appKeyExistingSecret` | If set, use the secret with a provided name instead of creating a new one | `nil` |
| `agents.image.repository` | The image repository to pull from | `datadog/agent` |
| `agents.image.tag` | The image tag to pull | `7.19.0` |
| `agents.image.doNotCheckTag` | By default, the helm chart will check that the version provided in `agents.image.tag` is superior to the minimal version requested by the chart. If `doNotCheckTag` is explicitly set to `true`, this check is skipped. This is useful for custom tags that are not respecting semantic versioning. | `false` |
| `agents.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `agents.image.pullSecrets` | Image pull secrets | `nil` |
| `nameOverride` | Override name of app | `""` |
| `fullnameOverride` | Override full name of app | `""` |
| `agents.rbac.create` | If true, create & use RBAC resources | `true` |
| `agents.rbac.serviceAccountName` | existing ServiceAccount to use (ignored if rbac.create=true) | `default` |
| `datadog.site` | Site ('datadoghq.com' or 'datadoghq.eu') | `nil` |
| `datadog.dd_url` | Datadog intake server | `nil` |
| `datadog.env` | Additional Datadog environment variables | `nil` |
| `datadog.logLevel` | Agent log verbosity (possible values: trace, debug, info, warn, error, critical, and off) | `INFO` |
| `datadog.logs.enabled` | Enable log collection | `nil` |
| `datadog.logs.containerCollectAll` | Collect logs from all containers | `nil` |
| `datadog.logs.containerCollectUsingFiles` | Collect container logs from files on disk instead of container runtime API | `true` |
| `datadog.apm.enabled` | Enable tracing from the host | `false` |
| `datadog.apm.port` | Used to override the default agent APM Port | `8126` |
| `datadog.apm.useSocketVolume` | Enable APM over Unix Domain Socket | `False` |
| `datadog.apm.socketPath` | Custom path to the socket, has to be located in the `/var/run/datadog/` folder path | `/var/run/datadog/apm.socket` |
| `datadog.apm.hostPath` | host directory that contains the trace-agent socket path | `/var/run/datadog/` |
| `datadog.clusterChecks.enabled` | Enable Cluster Checks on both the Cluster Agent and the Agent daemonset | `false` |
| `datadog.processAgent.enabled` | Enable live process and container monitoring agent. Possible values: `true` enable process-agent, `false` disable process-agent | `true` |
| `datadog.processAgent.processCollection` | Enable live process collection. Possible values: `true` enable process collection, `false` disable process collection | `false` |
| `datadog.checksd` | Additional custom checks as python code | `nil` |
| `datadog.confd` | Additional check configurations (static and Autodiscovery) | `nil` |
| `datadog.dockerSocketPath` | Path to the docker socket | `/var/run/docker.sock` |
| `datadog.criSocketPath` | Path to the container runtime socket (default is Docker runtime) | `nil` |
| `datadog.tags` | Set host tags | `nil` |
| `datadog.dogstatsd.originDetection` | Enable origin detection for container tagging | `False` |
| `datadog.dogstatsd.port` | Used to override the default agent DogStatsD Port | `8125` |
| `datadog.dogstatsd.useHostPID` | If true, use the host's PID namespace | `nil` |
| `datadog.dogstatsd.useHostPort` | If true, use the same ports for both host and container | `nil` |
| `datadog.dogstatsd.nonLocalTraffic` | Enable statsd reporting from any external ip | `False` |
| `datadog.dogstatsd.useSocketVolume` | Enable dogstatsd over Unix Domain Socket | `False` |
| `datadog.dogstatsd.socketPath` | Custom path to the socket, has to be located in the `/var/run/datadog/` folder path | `/var/run/datadog/dsd.socket` |
| `datadog.dogstatsd.hostPath` | host directory that contains the dogstatsd socket | `/var/run/datadog/` |
| `datadog.nodeLabelsAsTags` | Kubernetes Node Labels to Datadog Tags mapping | `nil` |
| `datadog.podAnnotationsAsTags` | Kubernetes Annotations to Datadog Tags mapping | `nil` |
| `datadog.podLabelsAsTags` | Kubernetes Labels to Datadog Tags mapping | `nil` |
| `datadog.securityContext` | Allows you to overwrite the default securityContext applied to the container | `nil` |
| `datadog.acInclude` | Include containers based on image name | `nil` |
| `datadog.acExclude` | Exclude containers based on image name | `nil` |
| `datadog.systemProbe.enabled` | enable system probe collection | `false` |
| `datadog.systemProbe.seccomp` | Apply an ad-hoc seccomp profile to system-probe to restrict its privileges | `localhost/system-probe` |
| `datadog.systemProbe.seccompRoot` | Seccomp root directory for system-probe | `/var/lib/kubelet/seccomp` |
| `datadog.systemProbe.debugPort` | The port to expose pprof and expvar for system-probe agent, it is not enabled if the value is set to 0 | `0` |
| `datadog.systemProbe.enableConntrack` | If true, system-probe connects to the netlink/conntrack subsystem to add NAT information to connection data. Ref: http://conntrack-tools.netfilter.org/ | `true` |
| `datadog.systemProbe.bpfDebug` | If true, system-probe writes debug logs to /sys/kernel/debug/tracing/trace_pipe | `false` |
| `datadog.systemProbe.apparmor` | Apparmor profile for system-probe | `unconfined` |
| `datadog.systemProbe.enableTCPQueueLength | Enable the TCP queue length eBPF-based check | `false` |
| `datadog.systemProbe.enableOOMKill` | Enable the OOM kill eBPF-based check | `false` |
| `agents.podAnnotations` | Annotations to add to the DaemonSet's Pods | `nil` |
| `agents.podLabels` | labels to add to each pod | `nil` |
| `agents.tolerations` | List of node taints to tolerate (requires Kubernetes >= 1.6) | `nil` |
| `agents.nodeSelector` | Node selectors | `nil` |
| `agents.affinity` | Node affinities | `nil` |
| `agents.useHostNetwork` | If true, use the host's network | `nil` |
| `agents.dnsConfig` | If set, configure dnsConfig options in datadog agent containers | `nil` |
| `agents.containers.agent.env` | Additional list of environment variables to use in the agent container | `nil` |
| `agents.containers.agent.logLevel` | Agent log verbosity | `INFO` |
| `agents.containers.agent.resources.limits.cpu` | CPU resource limits for the agent container | `200m` |
| `agents.containers.agent.resources.requests.cpu` | CPU resource requests for the agent container | `200m` |
| `agents.containers.agent.resources.limits.memory` | Memory resource limits for the agent container | `256Mi` |
| `agents.containers.agent.resources.requests.memory` | Memory resource requests for the agent container | `256Mi` |
| `agents.containers.agent.livenessProbe` | Overrides the default liveness probe | http check on /live with port 5555 |
| `agents.containers.agent.readinessProbe` | Overrides the default readiness probe | http check on /ready with port 5555 |
| `agents.containers.processAgent.env` | Additional list of environment variables to use in the process-agent container | `nil` |
| `agents.containers.processAgent.logLevel` | Process agent log verbosity | `INFO` |
| `agents.containers.processAgent.resources.limits.cpu` | CPU resource limits for the process-agent container | `100m` |
| `agents.containers.processAgent.resources.requests.cpu` | CPU resource requests for the process-agent container | `100m` |
| `agents.containers.processAgent.resources.limits.memory` | Memory resource limits for the process-agent container | `200Mi` |
| `agents.containers.processAgent.resources.requests.memory` | Memory resource requests for the process-agent container | `200Mi` |
| `agents.containers.traceAgent.env` | Additional list of environment variables to use in the trace-agent container | `nil` |
| `agents.containers.traceAgent.logLevel` | Trace agent log verbosity | `INFO` |
| `agents.containers.traceAgent.resources.limits.cpu` | CPU resource limits for the trace-agent container | `100m` |
| `agents.containers.traceAgent.resources.requests.cpu` | CPU resource requests for the trace-agent container | `100m` |
| `agents.containers.traceAgent.resources.limits.memory` | Memory resource limits for the trace-agent container | `200Mi` |
| `agents.containers.traceAgent.resources.requests.memory` | Memory resource requests for the trace-agent container | `200Mi` |
| `agents.containers.systemProbe.env` | Additional list of environment variables to use in the system-probe container | `nil` |
| `agents.containers.systemProbe.logLevel` | System probe log verbosity | `INFO` |
| `agents.containers.systemProbe.resources.limits.cpu` | CPU resource limits for the system-probe container | `100m` |
| `agents.containers.systemProbe.resources.requests.cpu` | CPU resource requests for the system-probe container | `100m` |
| `agents.containers.systemProbe.resources.limits.memory` | Memory resource limits for the system-probe container | `200Mi` |
| `agents.containers.systemProbe.resources.requests.memory` | Memory resource requests for the system-probe container | `200Mi` |
| `agents.containers.initContainers.resources.limits.cpu` | CPU resource limits for the init containers container | `200m` |
| `agents.containers.initContainers.resources.requests.cpu` | CPU resource requests for the init containers container | `200m` |
| `agents.containers.initContainers.resources.limits.memory` | Memory resource limits for the init containers container | `256Mi` |
| `agents.containers.initContainers.resources.requests.memory` | Memory resource requests for the init containers container | `256Mi` |
| `agents.priorityClassName` | Which Priority Class to associate with the daemonset | `nil` |
| `agents.useConfigMap` | Configures a configmap to provide the agent configuration. Use this in combination with the `agent.customAgentConfig` parameter. | `false` |
| `agents.customAgentConfig` | Specify custom contents for the datadog agent config (datadog.yaml). Note the `agent.useConfigMap` parameter needs to be set to `true` for this parameter to be taken into account. | `{}` |
| `agents.updateStrategy` | Which update strategy to deploy the daemonset | RollingUpdate with 10% maxUnavailable |
| `agents.volumes` | Additional volumes for the daemonset or deployment | `nil` |
| `agents.volumeMounts` | Additional volumeMounts for the daemonset or deployment | `nil` |
| `datadog.leaderElection` | Enable the leader Election feature | `false` |
| `datadog.leaderLeaseDuration` | The duration for which a leader stays elected. | 60 sec, 15 if Cluster Checks enabled |
| `datadog.collectEvents` | Enable Kubernetes event collection. Requires leader election. | `false` |
| `datadog.kubeStateMetricsEnabled` | If true, create kube-state-metrics | `true` |
| `clusterAgent.enabled` | Use the cluster-agent for cluster metrics (Kubernetes 1.10+ only) | `false` |
| `clusterAgent.token` | A cluster-internal secret for agent-to-agent communication. Must be 32+ characters a-zA-Z | Generates a random value |
| `clusterAgent.tokenExistingSecret` | If set, use the secret with a provided name instead of creating a new one | `nil` |
| `clusterAgent.image.repository` | The image repository for the cluster-agent | `datadog/cluster-agent` |
| `clusterAgent.image.tag` | The image tag to pull | `1.2.0` |
| `clusterAgent.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `clusterAgent.image.pullSecrets` | Image pull secrets | `nil` |
| `clusterAgent.command` | Override the default command to run in the container | `nil` |
| `clusterAgent.rbac.create` | If true, create & use RBAC resources for cluster agent's pods | `true` |
| `clusterAgent.rbac.serviceAccount` | existing ServiceAccount to use (ignored if rbac.create=true) for cluster agent's pods | `default` |
| `clusterAgent.metricsProvider.enabled` | Enable Datadog metrics as a source for HPA scaling | `false` |
| `clusterAgent.metricsProvider.service.type` | The type of service to use for the clusterAgent metrics server | `ClusterIP` |
| `clusterAgent.metricsProvider.service.port` | The port for service to use for the clusterAgent metrics server | `443` . |
| `clusterAgent.confd` | Additional check configurations (static and Autodiscovery) | `nil` |
| `clusterAgent.podAnnotations` | Annotations to add to the Cluster Agent Pod(s) | `nil` |
| `clusterAgent.podLabels` | Labels to add to the Cluster Agent Pod(s) | `nil` |
| `clusterAgent.createPodDisruptionBudget` | Enable a pod disruption budget to apply to the Cluster Agent pods | `false` |
| `clusterAgent.priorityClassName` | Name of the priorityClass to apply to the Cluster Agent | `nil` |
| `clusterAgent.nodeSelector` | Node selectors to apply to the Cluster Agent deployment | `nil` |
| `clusterAgent.affinity` | Node affinities to apply to the Cluster Agent deployment | `nil` |
| `clusterAgent.resources.requests.cpu` | CPU resource requests | `200m` |
| `clusterAgent.resources.limits.cpu` | CPU resource limits | `200m` |
| `clusterAgent.resources.requests.memory` | Memory resource requests | `256Mi` |
| `clusterAgent.resources.limits.memory` | Memory resource limits | `256Mi` |
| `clusterAgent.tolerations` | List of node taints to tolerate | `[]` |
| `clusterAgent.healthPort` | Overrides the default health port used by the liveness and readiness endpoint | `5555` |
| `clusterAgent.livenessProbe` | Overrides the default liveness probe | `http check on /live with port 5555` |
| `clusterAgent.readinessProbe` | Overrides the default readiness probe | `http check on /ready with port 5555` |
| `clusterAgent.strategy` | Which update strategy to deploy the cluster-agent | RollingUpdate with 0 maxUnavailable, 1 maxSurge |
| `clusterAgent.useHostNetwork` | If true, use the host's network | `nil` |
| `clusterAgent.dnsConfig` | If set, configure dnsConfig options in datadog cluster agent containers | `nil` |
| `clusterAgent.volumes` | Additional volumes for the cluster-agent deployment | `nil` |
| `clusterAgent.volumeMounts` | Additional volumeMounts for the cluster-agent deployment | `nil` |
| `clusterChecksRunner.enabled` | Enable Datadog agent deployment dedicated for running Cluster Checks. It allows having different resources (Request/Limit) for Cluster Checks agent pods. | `false` |
| `clusterChecksRunner.env` | Additional Datadog environment variables for Cluster Checks Deployment | `nil` |
| `clusterChecksRunner.createPodDisruptionBudget` | Enable a pod disruption budget to apply to the Cluster Checks pods | `false` |
| `clusterChecksRunner.resources.requests.cpu` | CPU resource requests | `200m` |
| `clusterChecksRunner.resources.limits.cpu` | CPU resource limits | `200m` |
| `clusterChecksRunner.resources.requests.memory` | Memory resource requests | `256Mi` |
| `clusterChecksRunner.resources.limits.memory` | Memory resource limits | `256Mi` |
| `clusterChecksRunner.nodeSelector` | Node selectors | `nil` |
| `clusterChecksRunner.tolerations` | List of node taints to tolerate | `nil` |
| `clusterChecksRunner.affinity` | Node affinities | avoid running pods on the same node |
| `clusterChecksRunner.livenessProbe` | Overrides the default liveness probe | http check on /live with port 5555 |
| `clusterChecksRunner.readinessProbe` | Overrides the default readiness probe | http check on /ready with port 5555 |
| `clusterChecksRunner.rbac.create` | If true, create & use RBAC resources for clusterchecks agent's pods | `true` |
| `clusterChecksRunner.rbac.dedicated` | If true, use dedicated RBAC resources for clusterchecks agent's pods | `false` |
| `clusterChecksRunner.rbac.serviceAccount` | existing ServiceAccount to use (ignored if rbac.create=true) for clusterchecks agent's pods | `default` |
| `clusterChecksRunner.strategy` | Which update strategy to deploy the Cluster Checks Deployment | RollingUpdate with 0 maxUnavailable, 1 maxSurge |
| `clusterChecksRunner.dnsConfig` | If set, configure dnsConfig options in datadog cluster agent clusterChecks containers | `nil` |
| `kube-state-metrics.rbac.create` | If true, create & use RBAC resources for kube-state-metrics | `true` |
| `kube-state-metrics.serviceAccount.create` | If true, create & use serviceAccount | `true` |
| `kube-state-metrics.serviceAccount.name` | If not set & create is true, use template fullname | |
| `kube-state-metrics.resources` | Overwrite the default kube-state-metrics container resources (Optional) | |
## Configuration options for Windows deployments
@@ -79,10 +79,6 @@
value: "clusterchecks endpointschecks"
{{- end }}
{{- end }}
{{- if .Values.datadog.systemProbe.enabled }}
- name: SYSTEM_PROBE_CONFIG_SYSPROBE_SOCKET
value: /sysprobe/var/run
{{- end }}
{{- range $value := .Values.agents.containers.agent.env }}
- name: {{ $value.name }}
value: {{ $value.value | quote }}
@@ -111,8 +107,11 @@
{{- end }}
{{- if .Values.datadog.systemProbe.enabled }}
- name: sysprobe-socket-dir
mountPath: /sysprobe/var/run
mountPath: /var/run/sysprobe
readOnly: true
- name: sysprobe-config
mountPath: /etc/datadog-agent/system-probe.yaml
subPath: system-probe.yaml
{{- end }}
- name: procdir
mountPath: /host/proc
@@ -54,7 +54,7 @@
readOnly: true
{{- if .Values.datadog.systemProbe.enabled }}
- name: sysprobe-socket-dir
mountPath: /opt/datadog-agent/run
mountPath: /var/run/sysprobe
readOnly: true
{{- end }}
{{- end }}
@@ -21,8 +21,14 @@
- name: sysprobe-config
mountPath: /etc/datadog-agent
- name: sysprobe-socket-dir
mountPath: /opt/datadog-agent/run
mountPath: /var/run/sysprobe
- name: procdir
mountPath: /host/proc
readOnly: true
- name: modules
mountPath: /lib/modules
readOnly: true
- name: src
mountPath: /usr/src
readOnly: true
{{- end -}}
@@ -35,6 +35,11 @@
- name: runtimesocketdir
mountPath: {{ print "/host/" (dir (include "datadog.dockerOrCriSocketPath" .)) | clean }}
readOnly: true
{{- if .Values.datadog.systemProbe.enabled }}
- name: sysprobe-config
mountPath: /etc/datadog-agent/system-probe.yaml
subPath: system-probe.yaml
{{- end }}
env:
{{- include "containers-common-env" . | nindent 4 }}
{{- if and (not .Values.clusterAgent.enabled) .Values.datadog.leaderElection }}
@@ -41,6 +41,12 @@
name: debugfs
- name: sysprobe-socket-dir
emptyDir: {}
- hostPath:
path: /lib/modules
name: modules
- hostPath:
path: /usr/src
name: src
{{- end }}
{{- if or .Values.datadog.processAgent.enabled .Values.datadog.systemProbe.enabled }}
- hostPath:
@@ -15,9 +15,11 @@ data:
system_probe_config:
enabled: {{ $.Values.datadog.systemProbe.enabled }}
debug_port: {{ $.Values.datadog.systemProbe.debugPort }}
sysprobe_socket: /opt/datadog-agent/run/sysprobe.sock
enable_conntrack : {{ $.Values.datadog.systemProbe.enableConntrack }}
sysprobe_socket: /var/run/sysprobe/sysprobe.sock
enable_conntrack: {{ $.Values.datadog.systemProbe.enableConntrack }}
bpf_debug: {{ $.Values.datadog.systemProbe.bpfDebug }}
enable_tcp_queue_length: {{ $.Values.datadog.systemProbe.enableTCPQueueLength }}
enable_oom_kill: {{ $.Values.datadog.systemProbe.enableOOMKill }}
{{- if eq .Values.datadog.systemProbe.seccomp "localhost/system-probe" }}
---
@@ -111,11 +113,13 @@ data:
"lseek",
"lstat",
"lstat64",
"madvise",
"mkdir",
"mkdirat",
"mmap",
"mmap2",
"mprotect",
"mremap",
"munmap",
"nanosleep",
"newfstatat",
@@ -128,6 +132,7 @@ data:
"poll",
"ppoll",
"prctl",
"pread64",
"prlimit64",
"pselect6",
"read",
+10
View File
@@ -361,6 +361,16 @@ datadog:
#
apparmor: unconfined
## @param enableTCPQueueLength - boolean - optional
## Enable the TCP queue length eBPF-based check
#
enableTCPQueueLength: false
## @param enableOOMKill - boolean - optional
## Enable the OOM kill eBPF-based check
#
enableOOMKill: false
## @param clusterAgent - object - required
## This is the Datadog Cluster Agent implementation that handles cluster-wide
## metrics more cleanly, separates concerns for better rbac, and implements