added files

This commit is contained in:
Your Name
2026-08-26 02:02:24 +05:30
parent 58ee8a276a
commit 3419cfba0c
200 changed files with 22132 additions and 0 deletions
@@ -0,0 +1,48 @@
# ADR-0006: Ringmaster as Mandatory Build Trigger Gate
**Status:** Accepted
**Category:** PATTERN
**Date decided:** Early on
**Date documented:** 2026-05-12
## Context
Jenkins is accessible to all engineers in the organisation. Without a trigger gate, any engineer can click "Build Now" in Jenkins and kick off a build — including a production deployment — without any audit trail, approval, or callback to downstream systems. Ringmaster is Meesho's internal deployment orchestration system that tracks every deployment: who triggered it, what tag was deployed, when, and whether it succeeded. Turbo-Turtle is the CI callback system that receives the build result and updates deployment state.
## Decision
`eksCICD.groovy` hard-rejects any build not triggered by `ringmaster-bot`, `turbo-turtle`, or a hardcoded DevOps allowedUsers list. The rejection is immediate and explicit — the build errors with a message directing the engineer to use Ringmaster instead. The string `"ringmaster-bot"` is the sole signal that routes CI callbacks correctly between Ringmaster and Turbo-Turtle.
## Alternatives Considered
- **Allow direct Jenkins triggers with a warning**: Rejected — a warning is easily ignored; the deployment would still bypass Ringmaster's tracking and the Turbo-Turtle callback would have no caller to report to.
- **Restrict Jenkins UI access via RBAC**: Considered but not implemented — coarse-grained Jenkins RBAC would still allow authorized engineers to trigger builds directly, and doesn't solve the callback problem.
- **Audit log only (no rejection)**: Rejected — audit-only does not prevent the problem; it only discovers it after the fact.
## Consequences
**Positive:**
- Every production deployment is tracked in Ringmaster — who triggered it, what tag, when — creating a full deployment ledger.
- Turbo-Turtle always receives the CI result callback because the trigger is always one of the known callers.
- Engineers cannot bypass deployment holds or approval flows by triggering Jenkins directly.
**Negative:**
- DevOps engineers must maintain the hardcoded `allowedUsers` list for emergency access (e.g., debugging a pipeline issue directly from Jenkins).
- The gate adds a hard dependency on Ringmaster being operational for any build to run.
**Neutral:**
- The string `"ringmaster-bot"` is load-bearing — changing it without coordinating with the Ringmaster team would break the callback routing between Ringmaster and Turbo-Turtle.
## Constraints
Meesho's deployment audit and compliance requirements necessitated a full deployment ledger. The Ringmaster/Turbo-Turtle architecture was already in place; the gate was added to enforce its use.
## Current Assessment
**Still appropriate** — no changes needed.
## Notes
- Key file: `vars/eksCICD.groovy:12-26` — allowedUsers list and trigger validation
- **Never change the string `"ringmaster-bot"`** without coordinating with the Ringmaster team — documented in CLAUDE.md under NEVER DO
- Ringmaster UI: `https://ringmaster.meeshogcp.in/applications/cicd/home`