HYPERFLEET-1295 - feat: Conditional resource creation#182
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Warning Review limit reached
Next review available in: 44 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| - [Adapter Metrics](./adapter-metrics.md) - Required metrics for observability and monitoring | ||
| - [Adapter Design Decisions](./adapter-design-decisions.md) - Architecture decisions and trade-offs | ||
| - [Adapter Deployment Guide](./adapter-deployment.md) - Deployment and operations guide | ||
| - [Adapter Lifecycle: Deletion](./lifecycle/adapter-lifecycle-delete-design.md) - Per-resource conditional deletion |
There was a problem hiding this comment.
nit (Improvement) — Confidence: High
The description "Per-resource conditional deletion" mischaracterizes this document's scope. The deletion flow design doc covers the entire deletion workflow — soft deletion, pending deletion, hard-delete signal, adapter cleanup, status reporting, edge cases, observability, subresource deletion, and more. The lifecycle.delete.when conditional gate is just one section.
A reader scanning this index for "how does adapter deletion work?" might skip the entry thinking it only covers the conditional gate. The creation doc description is accurate (it IS specifically about the conditional gate), which makes the asymmetry misleading.
| - [Adapter Lifecycle: Deletion](./lifecycle/adapter-lifecycle-delete-design.md) - Per-resource conditional deletion | |
| - [Adapter Lifecycle: Deletion](./lifecycle/adapter-lifecycle-delete-design.md) - Deletion workflow, cleanup, status reporting, and conditional deletion |
Summary
Documents the new
lifecycle.create.whenadapter DSL feature (conditional per-resource creation) added in [hyperfleet-adapter#HYPERFLEET-1295](https://issues.redhat.com/browse/HYPERFLEET-1295), and reorganizes the per-resource lifecycle docs under a sharedlifecycle/directory so the create and delete designs sit side by side as a matched pair.HYPERFLEET-1295
Changes
adapter-lifecycle-create-design.mddescribinglifecycle.create.when: DSL shape, required fields, skip/ignore/fail-closed semantics, and how it composes with pre-discovery andadapter.resourcesSkippedadapter-deletion-flow-design.md→lifecycle/adapter-lifecycle-delete-design.md, establishinglifecycle/as the home for per-resourcelifecycle.<operation>.whendesigns, and updated all relative links inside the moved file for its new depthadapter-frame-design.md,adapter-flow-diagrams.md,condition-mapping-design.md,hard-delete-design.md,force-deletion-design.md) to point at the new pathlifecycle.create.whenreuses the same purpose-builtlifecycle.<operation>.whenshape rather than reintroducing the genericwhen+actiondispatcher that was rejected for deletionadapter-frame-design.md's document indexNotes
Verified all relative markdown links resolve correctly after the file move (both within the moved/renamed file and in every external referencer) — no dangling references to the old
adapter-deletion-flow-design.mdpath remain anywhere in the repo.The create-design doc's semantics were checked line-by-line against the corresponding
hyperfleet-adapterimplementation (internal/executor/resource_executor.go,internal/configloader/validator.go): skip-vs-ignore behavior, fail-closed CEL error handling, discovery requirement, and the INFO-level skip log all match the shipped code.Test Plan
adapter-deletion-flow-design.mdpathhyperfleet-adapterimplementation