Skip to content

fluxcd: add container-based config discovery support - #24510

Draft
vitkyrka wants to merge 4 commits into
vwhitchurch/argo_workflows-discoveryfrom
vwhitchurch/fluxcd-discovery
Draft

fluxcd: add container-based config discovery support#24510
vitkyrka wants to merge 4 commits into
vwhitchurch/argo_workflows-discoveryfrom
vwhitchurch/fluxcd-discovery

Conversation

@vitkyrka

@vitkyrka vitkyrka commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds container-based config discovery support to fluxcd.

Discovery finds the FluxCD controller metrics endpoints using the named Kubernetes port http-prom instead of a numeric port hint.

The ad_identifiers targets somewhat generic short image names (source-controller, helm-controller, etc.) so we use a CEL selector to narrow those to FluxCD images.

The E2E coverage validates that Kubernetes Autodiscovery finds the four FluxCD controller instances and that generated discovery candidates can probe a FluxCD controller without destabilizing it.

image-automation-controller was deployed by the kind fixture, but wasn't being scraped by the non-discovery e2e tests (due to missing forwarded ports) but it's included now, and it's also included as part of the ad_identifiers for discovery.

Motivation

https://datadoghq.atlassian.net/browse/DSCVR-529

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Add qa/required if this PR needs QA validation, or qa/skip-qa if it does not. Exactly one of the two is required.
  • If you need to backport this PR to another branch, you can add the backport/<branch-name> label to the PR and it will automatically open a backport PR once this one is merged

@vitkyrka vitkyrka added the qa/skip-qa Automatically skip this PR for the next QA label Jul 10, 2026
vitkyrka added a commit that referenced this pull request Jul 10, 2026
Also renames the two changelog entries inherited from the unmerged
vwhitchurch/keda-discovery base branch (keda/changelog.d/24459.added,
datadog_checks_dev/changelog.d/24459.added) to this PR's number, since
the PR-changelog CI check flags them as belonging to the wrong PR when
diffed against master.

Environment: Datadog workspace

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@datadog-prod-us1-3

datadog-prod-us1-3 Bot commented Jul 10, 2026

Copy link
Copy Markdown

Tests  Code Coverage

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 50.00%
Overall Coverage: 90.10% (+20.21%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: e20786c | Docs | Datadog PR Page | Give us feedback!

@vitkyrka
vitkyrka changed the base branch from master to vwhitchurch/keda-discovery July 10, 2026 22:07
@vitkyrka
vitkyrka changed the base branch from vwhitchurch/keda-discovery to graphite-base/24510 July 15, 2026 14:17
@vitkyrka
vitkyrka force-pushed the graphite-base/24510 branch from 2c0dc75 to 9f91003 Compare July 15, 2026 14:17
@vitkyrka
vitkyrka force-pushed the vwhitchurch/fluxcd-discovery branch from 518ac33 to e761168 Compare July 15, 2026 14:17
@vitkyrka
vitkyrka changed the base branch from graphite-base/24510 to vwhitchurch/argo_workflows-discovery July 15, 2026 14:17

vitkyrka commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

vitkyrka and others added 4 commits July 16, 2026 08:07
Adds a from_ports discovery strategy on port 8080 (the shared Prometheus
metrics port across all Flux controllers) and an auto_conf.yaml matching
the four flux-system controller images (helm-controller, kustomize-controller,
notification-controller, source-controller) already exercised by the
integration's kind-based E2E test. Wires the new kind-based E2E discovery
helpers (setup_discovery_agent/save_kube_discovery_state/
run_discovery_check_kubernetes/assert_all_discovery_candidates_stable_kubernetes)
into conftest.py and test_e2e.py.

Environment: Datadog workspace

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vitkyrka
vitkyrka changed the base branch from vwhitchurch/argo_workflows-discovery to graphite-base/24510 July 16, 2026 08:51
@vitkyrka
vitkyrka force-pushed the vwhitchurch/fluxcd-discovery branch from 5f1a24a to e20786c Compare July 16, 2026 09:01
@vitkyrka
vitkyrka force-pushed the graphite-base/24510 branch from 9f91003 to e5340cc Compare July 16, 2026 09:01
@vitkyrka
vitkyrka changed the base branch from graphite-base/24510 to vwhitchurch/argo_workflows-discovery July 16, 2026 09:01
@dd-octo-sts

dd-octo-sts Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Validation Report

All 21 validations passed.

Show details
Validation Description Status
agent-reqs Verify check versions match the Agent requirements file
ci Validate CI configuration and code coverage settings
codeowners Validate every integration has a CODEOWNERS entry
config Validate default configuration files against spec.yaml
dep Verify dependency pins are consistent and Agent-compatible
http Validate integrations use the HTTP wrapper correctly
imports Validate check imports do not use deprecated modules
integration-style Validate check code style conventions
jmx-metrics Validate JMX metrics definition files and config
labeler Validate PR labeler config matches integration directories
legacy-signature Validate no integration uses the legacy Agent check signature
license-headers Validate Python files have proper license headers
licenses Validate third-party license attribution list
metadata Validate metadata.csv metric definitions
models Validate configuration data models match spec.yaml
openmetrics Validate OpenMetrics integrations disable the metric limit
package Validate Python package metadata and naming
qa-label Validate the pull request declares whether it needs QA for the next Agent release
readmes Validate README files have required sections
saved-views Validate saved view JSON file structure and fields
version Validate version consistency between package and changelog

View full run

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.

1 participant