From 54ed747e4ead850d4f53e2e83ea80147ee5ce683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Bavelier?= Date: Wed, 17 Jun 2026 12:11:30 +0200 Subject: [PATCH 1/2] Deprecate other controllers in favour of DDGR and add DDGR --- config/_default/menus/main.en.yaml | 9 +- config/_default/menus/main.es.yaml | 9 +- config/_default/menus/main.fr.yaml | 9 +- config/_default/menus/main.ja.yaml | 9 +- config/_default/menus/main.ko.yaml | 9 +- .../datadog_operator/crd_dashboard.md | 3 + .../containers/datadog_operator/crd_ddgr.md | 99 +++++++++++++++++++ .../datadog_operator/crd_monitor.md | 2 + .../en/containers/datadog_operator/crd_slo.md | 6 +- 9 files changed, 143 insertions(+), 12 deletions(-) create mode 100644 content/en/containers/datadog_operator/crd_ddgr.md diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index a835a18c00d..ecb18066266 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -3486,16 +3486,21 @@ menu: identifier: containers_datadog_operator_crd_dashboard parent: containers_datadog_operator weight: 807 + - name: DatadogGenericResource CRD + url: containers/datadog_operator/crd_ddgr + identifier: containers_datadog_operator_crd_ddgr + parent: containers_datadog_operator + weight: 808 - name: DatadogMonitor CRD url: containers/datadog_operator/crd_monitor identifier: containers_datadog_operator_crd_monitor parent: containers_datadog_operator - weight: 808 + weight: 809 - name: DatadogSLO CRD url: containers/datadog_operator/crd_slo identifier: containers_datadog_operator_crd_slo parent: containers_datadog_operator - weight: 809 + weight: 810 - name: Troubleshooting url: containers/troubleshooting/ parent: containers diff --git a/config/_default/menus/main.es.yaml b/config/_default/menus/main.es.yaml index f67138c8321..95a655143c0 100644 --- a/config/_default/menus/main.es.yaml +++ b/config/_default/menus/main.es.yaml @@ -3189,16 +3189,21 @@ menu: identifier: containers_datadog_operator_crd_dashboard parent: containers_datadog_operator weight: 707 + - name: DatadogGenericResource CRD + url: containers/datadog_operator/crd_ddgr + identifier: containers_datadog_operator_crd_ddgr + parent: containers_datadog_operator + weight: 708 - name: DatadogMonitor CRD url: containers/datadog_operator/crd_monitor identifier: containers_datadog_operator_crd_monitor parent: containers_datadog_operator - weight: 708 + weight: 709 - name: DatadogSLO CRD url: containers/datadog_operator/crd_slo identifier: containers_datadog_operator_crd_slo parent: containers_datadog_operator - weight: 709 + weight: 710 - name: Datadog CSI Driver url: containers/csi_driver parent: containers diff --git a/config/_default/menus/main.fr.yaml b/config/_default/menus/main.fr.yaml index ef3febcba36..c2c0522a026 100644 --- a/config/_default/menus/main.fr.yaml +++ b/config/_default/menus/main.fr.yaml @@ -3194,16 +3194,21 @@ menu: identifier: containers_datadog_operator_crd_dashboard parent: containers_datadog_operator weight: 707 + - name: DatadogGenericResource CRD + url: containers/datadog_operator/crd_ddgr + identifier: containers_datadog_operator_crd_ddgr + parent: containers_datadog_operator + weight: 708 - name: DatadogMonitor CRD url: containers/datadog_operator/crd_monitor identifier: containers_datadog_operator_crd_monitor parent: containers_datadog_operator - weight: 708 + weight: 709 - name: DatadogSLO CRD url: containers/datadog_operator/crd_slo identifier: containers_datadog_operator_crd_slo parent: containers_datadog_operator - weight: 709 + weight: 710 - name: Datadog CSI Driver url: containers/csi_driver parent: containers diff --git a/config/_default/menus/main.ja.yaml b/config/_default/menus/main.ja.yaml index 04f954e5982..edca0e5a2ac 100644 --- a/config/_default/menus/main.ja.yaml +++ b/config/_default/menus/main.ja.yaml @@ -3194,16 +3194,21 @@ menu: identifier: containers_datadog_operator_crd_dashboard parent: containers_datadog_operator weight: 707 + - name: DatadogGenericResource CRD + url: containers/datadog_operator/crd_ddgr + identifier: containers_datadog_operator_crd_ddgr + parent: containers_datadog_operator + weight: 708 - name: DatadogMonitor CRD url: containers/datadog_operator/crd_monitor identifier: containers_datadog_operator_crd_monitor parent: containers_datadog_operator - weight: 708 + weight: 709 - name: DatadogSLO CRD url: containers/datadog_operator/crd_slo identifier: containers_datadog_operator_crd_slo parent: containers_datadog_operator - weight: 709 + weight: 710 - name: Datadog CSI Driver url: containers/csi_driver parent: containers diff --git a/config/_default/menus/main.ko.yaml b/config/_default/menus/main.ko.yaml index 635b0d24fc2..40f30f587d4 100644 --- a/config/_default/menus/main.ko.yaml +++ b/config/_default/menus/main.ko.yaml @@ -3194,16 +3194,21 @@ menu: identifier: containers_datadog_operator_crd_dashboard parent: containers_datadog_operator weight: 707 + - name: DatadogGenericResource CRD + url: containers/datadog_operator/crd_ddgr + identifier: containers_datadog_operator_crd_ddgr + parent: containers_datadog_operator + weight: 708 - name: DatadogMonitor CRD url: containers/datadog_operator/crd_monitor identifier: containers_datadog_operator_crd_monitor parent: containers_datadog_operator - weight: 708 + weight: 709 - name: DatadogSLO CRD url: containers/datadog_operator/crd_slo identifier: containers_datadog_operator_crd_slo parent: containers_datadog_operator - weight: 709 + weight: 710 - name: Datadog CSI Driver url: containers/csi_driver parent: containers diff --git a/content/en/containers/datadog_operator/crd_dashboard.md b/content/en/containers/datadog_operator/crd_dashboard.md index 46cf54e9117..49a2da1ef0e 100644 --- a/content/en/containers/datadog_operator/crd_dashboard.md +++ b/content/en/containers/datadog_operator/crd_dashboard.md @@ -2,6 +2,9 @@ title: DatadogDashboard CRD description: Deploy and manage Datadog dashboards using the DatadogDashboard custom resource definition with the Datadog Operator --- + +
Soft deprecation notice: For new dashboard resources, prefer DatadogGenericResource with type: dashboard. DatadogDashboard remains supported for existing users, but DatadogGenericResource is the preferred path for new Datadog API capabilities.
+ To deploy a Datadog dashboard, you can use the Datadog Operator and `DatadogDashboard` custom resource definition (CRD). ### Prerequisites diff --git a/content/en/containers/datadog_operator/crd_ddgr.md b/content/en/containers/datadog_operator/crd_ddgr.md new file mode 100644 index 00000000000..7cc9f9de8eb --- /dev/null +++ b/content/en/containers/datadog_operator/crd_ddgr.md @@ -0,0 +1,99 @@ +--- +title: DatadogGenericResource CRD +description: Create and manage Datadog resources using the DatadogGenericResource custom resource definition with the Datadog Operator +further_reading: + - link: "/api/latest/monitors/#create-a-monitor" + tag: "Datadog API" + text: "API Reference: Create a Datadog monitor" + - link: "/api/latest/dashboards/#create-a-new-dashboard" + tag: "Datadog API" + text: "API Reference: Create a Datadog dashboard" + - link: "/api/latest/service-level-objectives/#create-an-slo-object" + tag: "Datadog API" + text: "API Reference: Create a Datadog SLO" + - link: "https://github.com/DataDog/helm-charts/blob/main/crds/datadoghq.com_datadoggenericresources.yaml" + tag: "GitHub" + text: "DatadogGenericResource CRD" +--- + +To create and manage Datadog resources with the Datadog Operator, use the `DatadogGenericResource` custom resource definition (CRD). `DatadogGenericResource` uses the Datadog API JSON payload for each supported resource type in `spec.jsonSpec`. + +`DatadogGenericResource` is the preferred CRD for Datadog resources that are supported by both `DatadogGenericResource` and older resource-specific CRDs, such as `DatadogMonitor`, `DatadogDashboard`, and `DatadogSLO`. + +## Prerequisites +- [Helm][1] +- [`kubectl` CLI][2] +- [Datadog Operator][3] v1.12+ +- Datadog API and application keys with permissions for the resources you create + +## Supported resources + +| Type | Operator version | API reference | +| ---- | ---------------- | ------------- | +| `notebook` | v1.12.0 | [Create a notebook][4] | +| `synthetics_api_test` | v1.12.0 | [Create an API test][5] | +| `synthetics_browser_test` | v1.12.0 | [Create a browser test][6] | +| `monitor` | v1.13.0 | [Create a monitor][7] | +| `downtime` | v1.22.0 | [Schedule a downtime][8] | +| `dashboard` | v1.27.0 | [Create a dashboard][9] | +| `slo` | v1.28.0 | [Create an SLO object][10] | + +## Setup + +1. Run the installation command, substituting your Datadog API and application keys: + + ```shell + helm install my-datadog-operator datadog/datadog-operator \ + --set apiKey= \ + --set appKey= \ + --set datadogCRDs.crds.datadogGenericResources=true \ + --set datadogGenericResource.enabled=true + ``` + +2. Create a file with the spec of your `DatadogGenericResource` configuration. + + **Example**: Monitor + + {{< code-block lang="yaml" filename="datadog-generic-resource-monitor.yaml" collapsible="true" >}} + apiVersion: datadoghq.com/v1alpha1 + kind: DatadogGenericResource + metadata: + name: example-monitor + namespace: datadog + spec: + type: monitor + jsonSpec: |- + { + "name": "Example Monitor", + "type": "metric alert", + "query": "avg(last_10m):avg:system.cpu.user{*} > 80", + "message": "CPU usage is high", + "tags": [ + "team:example" + ], + "options": { + "notify_no_data": false + } + } + {{< /code-block >}} + +3. Deploy your `DatadogGenericResource`: + + ```shell + kubectl apply -f /path/to/your/datadog-generic-resource-monitor.yaml + ``` + +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://helm.sh/ +[2]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ +[3]: /containers/kubernetes/installation?tab=datadogoperator#installation +[4]: /api/latest/notebooks/#create-a-notebook +[5]: /api/latest/synthetics/#create-an-api-test +[6]: /api/latest/synthetics/#create-a-browser-test +[7]: /api/latest/monitors/#create-a-monitor +[8]: /api/latest/downtimes/#schedule-a-downtime +[9]: /api/latest/dashboards/#create-a-new-dashboard +[10]: /api/latest/service-level-objectives/#create-an-slo-object diff --git a/content/en/containers/datadog_operator/crd_monitor.md b/content/en/containers/datadog_operator/crd_monitor.md index 9c10bfc3443..66cbce9b948 100644 --- a/content/en/containers/datadog_operator/crd_monitor.md +++ b/content/en/containers/datadog_operator/crd_monitor.md @@ -10,6 +10,8 @@ further_reading: text: "DatadogMonitor CRD" --- +
Soft deprecation notice: For new monitor resources, prefer DatadogGenericResource with type: monitor. DatadogMonitor remains supported for existing users, but DatadogGenericResource is the preferred path for new Datadog API capabilities.
+ To deploy a Datadog monitor, you can use the Datadog Operator and `DatadogMonitor` custom resource definition (CRD). ## Prerequisites diff --git a/content/en/containers/datadog_operator/crd_slo.md b/content/en/containers/datadog_operator/crd_slo.md index 08a2b9e677a..a0686d93edc 100644 --- a/content/en/containers/datadog_operator/crd_slo.md +++ b/content/en/containers/datadog_operator/crd_slo.md @@ -3,6 +3,8 @@ title: DatadogSLO CRD description: Create and manage Datadog Service Level Objectives (SLOs) using the DatadogSLO custom resource definition --- +
Soft deprecation notice: For new SLO resources, prefer DatadogGenericResource with type: slo. DatadogSLO remains supported for existing users, but DatadogGenericResource is the preferred path for new Datadog API capabilities.
+ To create a [Service Level Objective][1] (SLO), you can use the Datadog Operator and `DatadogSLO` custom resource definition (CRD). ### Prerequisites @@ -21,7 +23,7 @@ To create a [Service Level Objective][1] (SLO), you can use the Datadog Operator kind: DatadogSLO metadata: name: example-slo-monitor3 - namespace: system + namespace: system spec: name: example-slo-monitor3 description: "This is an example monitor SLO from datadog-operator" @@ -42,7 +44,7 @@ To create a [Service Level Objective][1] (SLO), you can use the Datadog Operator kind: DatadogSLO metadata: name: example-slo - namespace: system + namespace: system spec: name: example-slo description: "This is an example metric SLO from datadog-operator" From c2b62d1e7abb2fe1978b4651b3202fdfa490da06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Bavelier?= Date: Wed, 17 Jun 2026 14:42:37 +0200 Subject: [PATCH 2/2] nit: remove hardcoded namespace + change further reading links --- .../containers/datadog_operator/crd_ddgr.md | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/content/en/containers/datadog_operator/crd_ddgr.md b/content/en/containers/datadog_operator/crd_ddgr.md index 7cc9f9de8eb..2d8a6b428c2 100644 --- a/content/en/containers/datadog_operator/crd_ddgr.md +++ b/content/en/containers/datadog_operator/crd_ddgr.md @@ -2,18 +2,12 @@ title: DatadogGenericResource CRD description: Create and manage Datadog resources using the DatadogGenericResource custom resource definition with the Datadog Operator further_reading: - - link: "/api/latest/monitors/#create-a-monitor" - tag: "Datadog API" - text: "API Reference: Create a Datadog monitor" - - link: "/api/latest/dashboards/#create-a-new-dashboard" - tag: "Datadog API" - text: "API Reference: Create a Datadog dashboard" - - link: "/api/latest/service-level-objectives/#create-an-slo-object" - tag: "Datadog API" - text: "API Reference: Create a Datadog SLO" - - link: "https://github.com/DataDog/helm-charts/blob/main/crds/datadoghq.com_datadoggenericresources.yaml" + - link: "https://github.com/DataDog/datadog-operator/blob/main/docs/datadoggenericresource/datadog_generic_resource.md" tag: "GitHub" - text: "DatadogGenericResource CRD" + text: "DatadogGenericResource guide" + - link: "https://github.com/DataDog/datadog-operator/blob/main/docs/datadoggenericresource/datadog_generic_resource_migration.md" + tag: "GitHub" + text: "Migrating to DatadogGenericResource" --- To create and manage Datadog resources with the Datadog Operator, use the `DatadogGenericResource` custom resource definition (CRD). `DatadogGenericResource` uses the Datadog API JSON payload for each supported resource type in `spec.jsonSpec`. @@ -43,7 +37,7 @@ To create and manage Datadog resources with the Datadog Operator, use the `Datad 1. Run the installation command, substituting your Datadog API and application keys: ```shell - helm install my-datadog-operator datadog/datadog-operator \ + helm install datadog-operator datadog/datadog-operator \ --set apiKey= \ --set appKey= \ --set datadogCRDs.crds.datadogGenericResources=true \ @@ -59,7 +53,7 @@ To create and manage Datadog resources with the Datadog Operator, use the `Datad kind: DatadogGenericResource metadata: name: example-monitor - namespace: datadog + namespace: spec: type: monitor jsonSpec: |-