Skip to content

[CONTP-1895] Remove ExtendedDaemonSet runtime support - #3387

Merged
tbavelier merged 2 commits into
mainfrom
tbavelier/remove-eds
Aug 28, 2026
Merged

[CONTP-1895] Remove ExtendedDaemonSet runtime support#3387
tbavelier merged 2 commits into
mainfrom
tbavelier/remove-eds

Conversation

@tbavelier

@tbavelier tbavelier commented Aug 24, 2026

Copy link
Copy Markdown
Member

What does this PR do?

Removes ExtendedDaemonSet support from the Operator runtime:

  • removes EDS CLI flags, controller options, schemes, watches, and RBAC
  • removes EDS construction, reconciliation, migration, status, and cleanup paths
  • removes the EDS Go dependency, telemetry field, helpers, and tests
  • keeps DatadogAgentProfile create strategy behavior for native DaemonSets while removing its EDS fallback

Node Agents are now reconciled exclusively as native Kubernetes DaemonSets.

Motivation

Implements CONTP-1895. ExtendedDaemonSet is no longer supported by the Datadog Operator.

Additional Notes

This is the bottom PR of stack #3390. Generated API documentation and migration guidance are split into the two dependent PRs. Bundle and marketplace files are intentionally untouched because they are regenerated during the release process.

Minimum Agent Versions

  • Agent: none
  • Cluster Agent: none

Describe your test plan

  • go test ./internal/controller/datadogagent/... ./internal/controller/datadogagentinternal/... ./pkg/agentprofile/... ./pkg/condition/... ./pkg/controller/utils/metadata/... ./cmd/... -count=1
  • make golden-test
  • make lint
  • make integration-tests
  • build manager and renderer binaries

Checklist

  • PR has at least one valid label: refactoring
  • PR has a milestone or the qa/skip-qa label
  • All commits are signed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6c5738faa2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread internal/controller/datadogagentinternal/reconcile_agent.go
Comment thread cmd/main.go
@datadog-official

This comment has been minimized.

@tbavelier tbavelier changed the title Remove ExtendedDaemonSet runtime support [CONTP-1895] Remove ExtendedDaemonSet runtime support Aug 24, 2026
@tbavelier
tbavelier force-pushed the tbavelier/remove-eds branch from 6c5738f to cf35906 Compare August 24, 2026 13:45
gh-worker-dd-mergequeue-cf854d Bot pushed a commit to DataDog/datadog-agent that referenced this pull request Aug 25, 2026
### What does this PR do?

Adds an optional `Devel` setting to the shared e2e Helm installer and enables it for Datadog Operator installations.

This maps to Helm `--devel`, allowing Operator e2e environments to select prerelease chart versions. Other Helm installations remain unchanged because they leave the option unset.

### Motivation

Operator e2e tests deploy a PR-built Operator image while resolving the Operator chart from `helm.datadoghq.com`. The latest stable chart can lag behind the development Operator interface, as seen while removing ExtendedDaemonSet support in [DataDog/datadog-operator#3387](DataDog/datadog-operator#3387).

Using development chart versions keeps the chart arguments aligned with the Operator image under test. The related chart compatibility update is [DataDog/helm-charts#2875](DataDog/helm-charts#2875).

### Describe how you validated your changes

- `dda inv test --module=test/e2e-framework --targets=./resources/helm,./components/datadog/operator` — passed; these packages currently contain no unit-test files.
- `dda inv linter.go --module=test/e2e-framework --targets=./resources/helm,./components/datadog/operator` — passed with zero issues.
- Repository commit and pre-push hooks passed, including formatting, copyright, module tidiness, Go tests, and Go linting.

The full e2e suite was intentionally not run for this draft.

### Additional Notes

- The Operator repository will need to bump its `test/e2e-framework` dependency before its e2e tests consume this change.
- No Reno note is included because this only changes e2e/developer tooling and does not affect the Agent binary.

Co-authored-by: timothee.bavelier <timothee.bavelier@datadoghq.com>
github-actions Bot pushed a commit to DataDog/datadog-agent that referenced this pull request Aug 25, 2026
### What does this PR do?

Adds an optional `Devel` setting to the shared e2e Helm installer and enables it for Datadog Operator installations.

This maps to Helm `--devel`, allowing Operator e2e environments to select prerelease chart versions. Other Helm installations remain unchanged because they leave the option unset.

### Motivation

Operator e2e tests deploy a PR-built Operator image while resolving the Operator chart from `helm.datadoghq.com`. The latest stable chart can lag behind the development Operator interface, as seen while removing ExtendedDaemonSet support in [DataDog/datadog-operator#3387](DataDog/datadog-operator#3387).

Using development chart versions keeps the chart arguments aligned with the Operator image under test. The related chart compatibility update is [DataDog/helm-charts#2875](DataDog/helm-charts#2875).

### Describe how you validated your changes

- `dda inv test --module=test/e2e-framework --targets=./resources/helm,./components/datadog/operator` — passed; these packages currently contain no unit-test files.
- `dda inv linter.go --module=test/e2e-framework --targets=./resources/helm,./components/datadog/operator` — passed with zero issues.
- Repository commit and pre-push hooks passed, including formatting, copyright, module tidiness, Go tests, and Go linting.

The full e2e suite was intentionally not run for this draft.

### Additional Notes

- The Operator repository will need to bump its `test/e2e-framework` dependency before its e2e tests consume this change.
- No Reno note is included because this only changes e2e/developer tooling and does not affect the Agent binary.

Co-authored-by: timothee.bavelier <timothee.bavelier@datadoghq.com> 689caf9
github-actions Bot pushed a commit to nothingtosurprise/datadog-agent that referenced this pull request Aug 26, 2026
### What does this PR do?

Adds an optional `Devel` setting to the shared e2e Helm installer and enables it for Datadog Operator installations.

This maps to Helm `--devel`, allowing Operator e2e environments to select prerelease chart versions. Other Helm installations remain unchanged because they leave the option unset.

### Motivation

Operator e2e tests deploy a PR-built Operator image while resolving the Operator chart from `helm.datadoghq.com`. The latest stable chart can lag behind the development Operator interface, as seen while removing ExtendedDaemonSet support in [DataDog/datadog-operator#3387](DataDog/datadog-operator#3387).

Using development chart versions keeps the chart arguments aligned with the Operator image under test. The related chart compatibility update is [DataDog/helm-charts#2875](DataDog/helm-charts#2875).

### Describe how you validated your changes

- `dda inv test --module=test/e2e-framework --targets=./resources/helm,./components/datadog/operator` — passed; these packages currently contain no unit-test files.
- `dda inv linter.go --module=test/e2e-framework --targets=./resources/helm,./components/datadog/operator` — passed with zero issues.
- Repository commit and pre-push hooks passed, including formatting, copyright, module tidiness, Go tests, and Go linting.

The full e2e suite was intentionally not run for this draft.

### Additional Notes

- The Operator repository will need to bump its `test/e2e-framework` dependency before its e2e tests consume this change.
- No Reno note is included because this only changes e2e/developer tooling and does not affect the Agent binary.

Co-authored-by: timothee.bavelier <timothee.bavelier@datadoghq.com> 689caf9
@tbavelier
tbavelier force-pushed the tbavelier/remove-eds branch from cf35906 to d9172e3 Compare August 26, 2026 07:12
@tbavelier
tbavelier force-pushed the tbavelier/remove-eds branch from 6812b34 to b15800e Compare August 26, 2026 10:04
gh-worker-dd-mergequeue-cf854d Bot pushed a commit to DataDog/datadog-agent that referenced this pull request Aug 26, 2026
### What does this PR do?

Gives the Datadog Operator e2e component its own `operator-datadog-credentials` Secret and configures the Operator Helm release to use it.

The DDA component continues to own `dda-datadog-credentials`, so the two Pulumi components no longer target the same Kubernetes object.

### Motivation

The Operator and DDA components coexist in the same namespace during Operator e2e tests. Both previously registered distinct Pulumi resources backed by the same `dda-datadog-credentials` Secret.

Pulumi Kubernetes v4.29 and later use client-side create for new resources and return `AlreadyExists` instead of silently upserting an object owned by another resource. After updating the Operator e2e framework dependency for [DataDog/datadog-operator#3387](DataDog/datadog-operator#3387), every Kubernetes matrix job failed on its first DDA environment update.

Using separate names keeps lifecycle ownership explicit without enabling the global `upsertExistingObjects` compatibility behavior or coupling the two components through a shared resource.

### Describe how you validated your changes

- `dda inv test --module=test/e2e-framework --targets=./components/datadog/operator` — passed; the package currently contains no unit-test files.
- `dda inv linter.go --module=test/e2e-framework --targets=./components/datadog/operator` — passed with zero issues.
- Repository commit and pre-push hooks passed, including formatting, module tidiness, Go tests, and Go linting.

The full e2e suite was not run locally.

### Additional Notes

No Reno note is included because this only changes internal e2e infrastructure and does not affect the Agent binary.

Co-authored-by: timothee.bavelier <timothee.bavelier@datadoghq.com>
@tbavelier
tbavelier force-pushed the tbavelier/remove-eds branch from b15800e to 8b324f3 Compare August 27, 2026 07:24
Stop creating, watching, and migrating ExtendedDaemonSets. Remove the EDS flags, rollout settings, status handling, RBAC, dependency, and tests so node Agents reconcile only native DaemonSets.\n\nCONTP-1895
@tbavelier
tbavelier force-pushed the tbavelier/remove-eds branch 2 times, most recently from 838a492 to 46ef5b5 Compare August 27, 2026 09:24
Pin the e2e framework and fake intake modules to the Agent commit that enables development Helm charts for operator deployments.

Signed-off-by: Timothée Bavelier <timothee.bavelier@datadoghq.com>
@tbavelier
tbavelier force-pushed the tbavelier/remove-eds branch from 46ef5b5 to c97a079 Compare August 28, 2026 07:29
@tbavelier
tbavelier merged commit 0161979 into main Aug 28, 2026
39 of 40 checks passed
@tbavelier
tbavelier deleted the tbavelier/remove-eds branch August 28, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants