Repository navigation
feat: add native DPF Sentry deployment workflow - #382
Open
almaslennikov wants to merge 16 commits into
Open
almaslennikov wants to merge 16 commits into
almaslennikov wants to merge 16 commits into
Conversation
Consume DPF discovery inventory to resolve a pinned Sentry BF4 profile, render a validated immutable bundle, and deploy or validate explicitly bound management and tenant resources. Preserve ownership and external host maintenance boundaries, and document prerequisites and procedural workflows. Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
[High impact] The PR appears safe to merge within its documented experimental scope. SummaryAdds an experimental native
The earlier multi-device stopping issue is addressed by the per-device wait and transition checks. No new actionable issue was established. Diagram%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Discovery inventory and explicit site inputs] --> B[Generate and check immutable bundle]
B --> C[Check retained intent before cluster access]
C --> D[Check cluster identities and ownership]
D --> E[Verify cached software]
E --> F[Create one DPUSet]
F --> G[Wait for readiness and cleared host transitions]
G --> H{More devices?}
H -->|Yes| E
H -->|No| I[Check selected nodes and DNS]
I --> J[Submit coupled Sentry services]
J --> K[Check resources and workload coverage]
K --> L[Save separate run report]
L --> M[Run functional policy tests separately]
Reviews (6) · Last reviewed commit: "Merge branch 'dev/dpf-typed-inventory' i..." · Reviewed by Greptile |
Wait for each DPUSet and selected host transitions before submitting the next physical operation. Preserve global identity, ownership, BMC and artifact gates, keep service creation grouped, and retain projection validation. Cover separate and shared host domains, cancellation, late drift, and projected resource drift. Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com> # Conflicts: # openspec/workflows/dpf-discovery.json
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com> # Conflicts: # openspec/specs/artifact-handoff/spec.md # pkg/cmd/validate.go
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
…ntory Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com> # Conflicts: # openspec/workflows/dpf-discovery.json
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
…ntory Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
…ntory Signed-off-by: Alexander Maslennikov <amaslennikov@nvidia.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add an experimental native Go
sentry-bf4workflow after DPF discovery. Users can resolve explicit device and tenant bindings, generate a validated immutable bundle, and deploy or validate the selected provisioning and Sentry resources without invoking the Host Network Operator workflow.Selected devices now require completed administrator-privilege evidence from DPU BMC discovery. Firmware selection accepts a verified BF4 Redfish PSID or serial-bound SSH measurements, requires agreement, and revalidates retained measurements when loading a bundle. Invalid, conflicting, changed or incomplete Redfish verification cannot be hidden by SSH evidence.
Discovery v1alpha3 and legacy v1alpha1/v1alpha2 are decoded without promoting failed identity or missing authorization. New resolved metadata uses typed device fields in its own v1alpha2 envelope; the bundle index remains v1alpha1. Existing valid legacy resolved bundles retain their original bytes and digest during admission. Host-derived PSID measurements require a successfully observed host identity, including legacy input.
This PR is stacked on #348 and targets
dev/dpf-discovery. Merge the discovery PR first, then reconcile the base and retarget this PR tomain.The implementation adds release-pinned profiles, chart/schema verification, bundle ownership checks, management/tenant admission and readiness checks, and separate run reports. Physical provisioning is sequential: each DPUSet and host transition must finish before the next create; coupled Sentry services are still submitted together. It consumes existing Kubernetes/DPF infrastructure and enrollment; VM creation, cluster bootstrap, ownership migration, host power/IOMMU changes, and switch/DHCP configuration remain external prerequisites. Core policy enforcement defaults to LLM inspection disabled.
User documentation covers inputs, where each operation runs, prerequisites, deployment/recovery, and functional verification, with diagrams generated from the workflow definitions. CLI references, integration contracts, and phase skills are updated alongside it.
Validation:
The subsequent clean two-device run completed scoped teardown, fresh management/operator and tenant preparation, and successful administrator-verified Redfish discovery on both devices. One device exposes a stable PSID; the other reports PSID_NOT_EXPOSED and an older Redfish layout requiring a supported firmware transition before enrollment. This clean run has not deployed both Sentry workers or qualified policy enforcement. These operational steps do not add bootstrap or firmware-remediation support to the CLI.
Current local validation: full repository race tests passed before the final bounded firmware correction; final affected DPF/target race suites, build, pinned lint, documentation contracts, workflow generation/drift and strict MkDocs passed. Independent producer/consumer reviews found and corrected optional firmware publication, malformed conflict handling and legacy failed-host measurement acceptance. Reproductions and regression suites passed on the corrected revisions. This schema update was tested locally; it does not add new live Sentry qualification.
Discovery prerequisite gaps remain tracked separately in #379. Hosted checks are reported separately from local validation; previous run results do not establish the status of the updated head.