Skip to content

feat: drive all DPF mandatory services from per-service config with compile-time defaults#896

Open
abvarshney-nv wants to merge 2 commits intoNVIDIA:mainfrom
abvarshney-nv:version_handling_dpf
Open

feat: drive all DPF mandatory services from per-service config with compile-time defaults#896
abvarshney-nv wants to merge 2 commits intoNVIDIA:mainfrom
abvarshney-nv:version_handling_dpf

Conversation

@abvarshney-nv
Copy link
Copy Markdown
Contributor

@abvarshney-nv abvarshney-nv commented Apr 10, 2026

Description

  • Replaces the flat CarbideServiceRegistryConfig struct with DpfMandatoryServicesConfig, a typed config struct where each of the six mandatory DPF services (dts, doca_hbn, dpu_agent, dhcp_server, fmds, otel) has its own DpfServiceConfig carrying its helm repo/chart/version and docker repo/tag independently

  • Adds docker_repo_url and docker_image_tag fields to DpfServiceConfig so image coordinates are first-class alongside helm coordinates

  • Service builder functions (doca_hbn_service, dpu_agent_service, dhcp_server_service) now accept &DpfServiceConfig directly; new dts_service, fmds_service, and otel_service builders added with the same signature

  • Per-service defaults live in dpf_services.rs next to their constants; Carbide-owned services (dpu_agent, dhcp_server) seed helm_version and docker_image_tag from compile-time CI env vars (CARBIDE_BUILD_HELM_VERSION / CARBIDE_BUILD_GIT_TAG)

  • Removes the now-redundant carbide_helm_version and carbide_image_tag top-level config fields, and the CarbideServiceRegistryConfig::from_runtime fallback path

  • setup.rs v1 and v2 service lists are both built entirely from DpfMandatoryServicesConfig, removing the last direct call to carbide_dpf::services::dts_service

    On CI (main): VERSION env var → compile-time version baked in → correct
    helm chart and image pulled automatically.
    On PR/fork: compile-time version is empty; set carbide_helm_version /
    carbide_image_tag in config to test against a published version.

Type of Change

  • Add - New feature or capability
  • Change - Changes in existing functionality
  • Fix - Bug fixes
  • Remove - Removed features or deprecated functionality
  • Internal - Internal changes (refactoring, tests, docs, etc.)

Related Issues (Optional)

Breaking Changes

  • This PR contains breaking changes

Testing

  • Unit tests added/updated
  • Integration tests added/updated
  • Manual testing performed
  • No testing required (docs, internal refactor, etc.)

Additional Notes

@abvarshney-nv abvarshney-nv self-assigned this Apr 10, 2026
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented Apr 10, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

Comment thread crates/api/src/dpf_services.rs Outdated
@abvarshney-nv abvarshney-nv changed the title feat: auto-inject bluefield DPU service versions from CI build feat: drive all DPF mandatory services from per-service config with compile-time defaults Apr 21, 2026
@abvarshney-nv abvarshney-nv marked this pull request as ready for review April 21, 2026 11:11
@abvarshney-nv abvarshney-nv requested a review from a team as a code owner April 21, 2026 11:11
@github-actions
Copy link
Copy Markdown

🔐 TruffleHog Secret Scan

No secrets or credentials found!

Your code has been scanned for 700+ types of secrets and credentials. All clear! 🎉

🔗 View scan details

🕐 Last updated: 2026-04-21 11:13:39 UTC | Commit: 58895ac

@abvarshney-nv abvarshney-nv force-pushed the version_handling_dpf branch 2 times, most recently from f6d56b0 to 8e4ac59 Compare April 21, 2026 18:40
Signed-off-by: abhi <abvarshney@nvidia.com>
Introduces DpfMandatoryServiceConfig with named fields (dpu_agent,
dhcp_server, fmds, otel), each carrying its own helm/docker coordinates
and serde defaults seeded from compile-time constants. Update the
dpu_agent_service and dhcp_server_service to take &DpfServiceConfig
directly; adds fmds_service and otel_service. Removes
CarbideServiceRegistryConfig::from_runtime, the derived Default, and the
now-redundant carbide_helm_version/carbide_image_tag config fields.

setup.rs v2_services is rewired to consume DpfMandatoryServiceConfig
instead of the registry struct.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants