WIP: Add kargo skills to onboard new components and documentation#463
WIP: Add kargo skills to onboard new components and documentation#463flacatus wants to merge 2 commits into
Conversation
Move promotiontasks from base/ into kargo/promotiontasks/ so each component owns its warehouse and promotion logic. Add if condition using ctx.targetFreight.origin.name to guard step execution per component origin.
Rename promotion task files to follow <component>-promote-ring-N convention and add comprehensive README with onboarding guide for new components. Include Claude Code skill for interactive scaffolding.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: flacatus 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 |
Code Review by Qodo
Context used✅ Compliance rules (platform):
5 rules 1. stage-ring-1-staging.yaml misnamed
|
|
FYI @PSzabo |
PR Summary by Qodo
Add Kargo component onboarding docs and per-component promotion tasks
✨ Enhancement📝 Documentation⚙️ Configuration changes🕐 20-40 MinutesWalkthroughs
Description
Diagram
graph TD WH[("Warehouse")] --> ST1["Stage: ring-1 (staging)"] --> PT1[["PromotionTask: kargo ring-1"]] --> CFG["GitOps config files"] ST1 -->|"soak"| ST2["Stage: ring-2 (production)"] --> PT2[["PromotionTask: kargo ring-2"]] --> CFG DOC["Onboarding README"] --> ST1 SKILL["Claude skill: kargo-onboard"] --> DOC subgraph Legend direction LR _wh[("Warehouse")] ~~~ _st["Stage"] ~~~ _pt[["PromotionTask"]] ~~~ _cfg["Config"] endHigh-Level Assessment
The following are alternative approaches to this PR:
1. Keep shared promotion tasks under base/
2. Single parameterized PromotionTask (per ring) for all components
Recommendation: The PR’s approach (component-owned warehouse + promotiontasks, with standardized naming and a freight-origin guard) is the best fit for onboarding many components while keeping promotion logic localized. The freight-origin guard using ctx.targetFreight.origin.name is also a safer execution model than passing a component var through stages/tasks.
File Changes
Refactor (2)
Documentation (2)
Other (5)