Evaluate and finalize environment management approach for MR-level contract runs
## Overview
This issue covers Task 1.2 from the
[Performance contracts for Modular Features](https://gitlab.com/groups/gitlab-org/quality/-/work_items/387)
epic — deciding the environment substrate for MR-level contract validation before
Milestone 2 build work begins.
## Goal
Evaluate CPT as the primary candidate for providing transitory MR-level test
environments, and produce a documented decision with rationale that Milestone 2
can be built against with confidence.
## Background
The performance contract system defines *what* to measure and *what thresholds
to enforce* — but it does not own the environment those tests run in. The
environment substrate is a hard dependency: Milestone 2 cannot begin until this
decision is made.
CPT is the leading candidate. The POC ran against Caproni (local k8s), so the
key question is whether CPT's stand-up/test/tear-down pattern can serve the
same role in CI.
## Tasks
- [x] Review CPT's current stand-up/test/tear-down pattern for MR-level environments
- [ ] Assess whether the POC flow (definition → validation → k6 enforcement → CI
gating) can be ported to CPT without significant rework
- [ ] Identify any gaps or blockers in CPT that would prevent it serving this role
- [ ] If CPT is not viable, identify and evaluate alternatives
- [ ] Document the decision with rationale
## Output / Definition of Done
- A documented decision: CPT (or alternative) confirmed as the environment substrate
- Rationale recorded — including any gaps identified and how they will be addressed
or deferred
- Decision is sufficient for Milestone 2 build work (Task 2.1) to begin
## Open Questions
- **CPT gap assessment**: does CPT's current pattern support the contract
validation + k6 enforcement flow without modification, or does it require
changes on the CPT side?
- **Ownership**: if CPT requires changes to support this use case, who owns
that work and on what timeline?
- **Fallback**: if CPT is not viable, what is the alternative and how does that
affect the Milestone 2 timeline?
## References
- Epic: https://gitlab.com/groups/gitlab-org/quality/-/work_items/387
- POC repo: https://gitlab.com/gl-dx/performance-enablement/demos/perf-contract-poc
- CPT project: https://gitlab.com/gitlab-org/quality/component-performance-testing
issue