refactor(operator): move Grove reconciliation into its workload program - #12261
Closed
julienmancuso wants to merge 1 commit into
Closed
refactor(operator): move Grove reconciliation into its workload program#12261julienmancuso wants to merge 1 commit into
julienmancuso wants to merge 1 commit into
Conversation
Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
julienmancuso
force-pushed
the
jsm/12035-4
branch
from
July 31, 2026 17:00
52b791f to
bfff4f8
Compare
julienmancuso
force-pushed
the
jsm/12035-3
branch
from
July 31, 2026 17:00
7bfdae6 to
34b2418
Compare
|
🔄 Datadog auto-retried 3 jobs - 2 passed on retry 🔗 Commit SHA: bfff4f8 | Docs | Datadog PR Page | Give us feedback! |
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.
Summary
This MR makes
groveProgramdirectly own the complete Grove workload reconciliation sequence.The Grove program now composes:
The temporary
groveReconcileFuncadapter andDynamoGraphDeploymentReconciler.reconcileGroveResourcesentry point have been removed.This MR is stacked on the preceding workload-program request/result contract MR.
Motivation
Although the outer controller already selected a complete
groveProgram, the program still delegated its entire workload phase back to an injectedDynamoGraphDeploymentReconciler.reconcileGroveResourcesmethod.That left Grove control-flow ownership indirect:
After this change, the selected program visibly owns the complete sequence:
This removes the temporary adapter without introducing provider lifecycle callbacks or a generic reconciliation framework.
Design
Direct GroveProgram ownership
groveProgram.Reconcilecontinues to own the graph-level Grove composition, including shared inputs, restart resolution, workload reconciliation, and result processing.Its
reconcileWorkloadsmethod now contains the provider-specific Grove sequence directly rather than invoking an injected function.Dedicated program file
The Grove program implementation now lives in
dynamographdeployment_grove_program.go, keeping provider-specific orchestration and readiness logic separate from the common workload-program contract and the component program.Temporary low-level dependencies
Low-level Grove rendering, scaling, Kubernetes persistence, and compatibility helpers remain on
DynamoGraphDeploymentReconcilertemporarily.This MR moves control-flow ownership only. Narrowing those dependencies, extracting the Grove renderer, and localizing watches can happen as focused follow-up changes without combining package movement or renderer redesign with this ownership change.
Status ownership
Status behavior is unchanged:
Ready,ObservedGeneration, common condition projection, and the finalStatus().Update().Behavior and compatibility
This is intended to be a behavior-preserving refactor:
There are no CRD, rendered-resource, watch-registration, owner-reference, or persisted-state changes.