Skip to content

Commit

Permalink
[CONTINT-4406] add helm option to filter kubernetes events (#1517)
Browse files Browse the repository at this point in the history
* Add config option for datadog.kubernetesEvents.filteringEnabled

* Added CI test and updated documentation

* Allow filtering and unbundle to bet set to false
  • Loading branch information
ewoodthomas authored Sep 24, 2024
1 parent 928581c commit 0010864
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 5 deletions.
4 changes: 4 additions & 0 deletions charts/datadog/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Datadog changelog

## 3.72.1

* Add configuration option for `datadog.KubernetesEvents.filteringEnabled` to only include pre-defined allowed events. Disabled by default.

## 3.72.0

* Set default `Agent` and `Cluster-Agent` version to `7.57.2`.
Expand Down
2 changes: 1 addition & 1 deletion charts/datadog/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v1
name: datadog
version: 3.72.0
version: 3.72.1
appVersion: "7"
description: Datadog Agent
keywords:
Expand Down
3 changes: 2 additions & 1 deletion charts/datadog/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Datadog

![Version: 3.72.0](https://img.shields.io/badge/Version-3.72.0-informational?style=flat-square) ![AppVersion: 7](https://img.shields.io/badge/AppVersion-7-informational?style=flat-square)
![Version: 3.72.1](https://img.shields.io/badge/Version-3.72.1-informational?style=flat-square) ![AppVersion: 7](https://img.shields.io/badge/AppVersion-7-informational?style=flat-square)

[Datadog](https://www.datadoghq.com/) is a hosted infrastructure monitoring platform. This chart adds the Datadog Agent to all nodes in your cluster via a DaemonSet. It also optionally depends on the [kube-state-metrics chart](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics). For more information about monitoring Kubernetes with Datadog, please refer to the [Datadog documentation website](https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/).

Expand Down Expand Up @@ -749,6 +749,7 @@ helm install <RELEASE_NAME> \
| datadog.kubelet.podLogsPath | string | /var/log/pods on Linux, C:\var\log\pods on Windows | Path (on host) where the PODs logs are located |
| datadog.kubelet.tlsVerify | string | true | Toggle kubelet TLS verification |
| datadog.kubernetesEvents.collectedEventTypes | list | `[{"kind":"Pod","reasons":["Failed","BackOff","Unhealthy","FailedScheduling","FailedMount","FailedAttachVolume"]},{"kind":"Node","reasons":["TerminatingEvictedPod","NodeNotReady","Rebooted","HostPortConflict"]},{"kind":"CronJob","reasons":["SawCompletedJob"]}]` | Event types to be collected. This requires datadog.kubernetesEvents.unbundleEvents to be set to true. |
| datadog.kubernetesEvents.filteringEnabled | bool | `false` | Enable this to only include events that match the pre-defined allowed events. (Requires Cluster Agent 7.57.0+). |
| datadog.kubernetesEvents.unbundleEvents | bool | `false` | Allow unbundling kubernetes events, 1:1 mapping between Kubernetes and Datadog events. (Requires Cluster Agent 7.42.0+). |
| datadog.kubernetesResourcesAnnotationsAsTags | object | `{}` | Provide a mapping of Kubernetes Resources Annotations to Datadog Tags |
| datadog.kubernetesResourcesLabelsAsTags | object | `{}` | Provide a mapping of Kubernetes Resources Labels to Datadog Tags |
Expand Down
1 change: 1 addition & 0 deletions charts/datadog/ci/cluster-agent-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ datadog:
clusterChecks:
enabled: true
kubernetesEvents:
filteringEnabled: true
unbundleEvents: true
clusterTagger:
collectKubernetesTags: true
Expand Down
7 changes: 5 additions & 2 deletions charts/datadog/templates/_kubernetes_apiserver_config.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
{{- define "kubernetes_apiserver-config" -}}
{{- if and .Values.datadog.collectEvents .Values.datadog.kubernetesEvents.unbundleEvents -}}
{{- if .Values.datadog.collectEvents -}}
kubernetes_apiserver.yaml: |-
init_config:
instances:
- unbundle_events: {{ .Values.datadog.kubernetesEvents.unbundleEvents }}
- filtering_enabled: {{ .Values.datadog.kubernetesEvents.filteringEnabled }}
unbundle_events: {{ .Values.datadog.kubernetesEvents.unbundleEvents }}
{{- if .Values.datadog.kubernetesEvents.unbundleEvents }}
collected_event_types:
{{ .Values.datadog.kubernetesEvents.collectedEventTypes | toYaml | nindent 8 }}
{{- end -}}
{{- end -}}
{{- end -}}
2 changes: 1 addition & 1 deletion charts/datadog/templates/cluster-agent-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ spec:
- key: helm.yaml
path: helm.yaml
{{- end }}
{{- if and .Values.datadog.collectEvents .Values.datadog.kubernetesEvents.unbundleEvents }}
{{- if .Values.datadog.collectEvents }}
- key: kubernetes_apiserver.yaml
path: kubernetes_apiserver.yaml
{{- end }}
Expand Down
2 changes: 2 additions & 0 deletions charts/datadog/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,8 @@ datadog:

# Configure Kubernetes events collection
kubernetesEvents:
# datadog.kubernetesEvents.filteringEnabled -- Enable this to only include events that match the pre-defined allowed events. (Requires Cluster Agent 7.57.0+).
filteringEnabled: false
# datadog.kubernetesEvents.unbundleEvents -- Allow unbundling kubernetes events, 1:1 mapping between Kubernetes and Datadog events. (Requires Cluster Agent 7.42.0+).
unbundleEvents: false
# datadog.kubernetesEvents.collectedEventTypes -- Event types to be collected. This requires datadog.kubernetesEvents.unbundleEvents to be set to true.
Expand Down

0 comments on commit 0010864

Please sign in to comment.