---
id: w1/m3/t001
title: Tier → pod requests/limits
worker: worker1
status: done
estimate: —
depends_on: []
---

## Objective

Make the plan/tier drive a fixed per-pod resource allocation (requests==limits, Guaranteed QoS) so the scheduler can bin-pack. **Already shipped** (task 001, commit 1437b25, verified starter→500m/512Mi on a live pod).

## Context

- `Tier` on `AppSpec` (`operator/api/v1alpha1/app_types.go`), enum `free…pro-ultra`.
- `reconcileKubernetes` maps tier → container `resources.requests==limits` per the ladder in `docs/ADR003-control-plane.md`.
- Gotcha: `:latest` mutable tag → Argo doesn't roll the operator on code-only change (reinforces m7 image-pinning).

## Acceptance criteria

- [x] `App{tier: standard}` → pod `requests==limits == 2Gi/1`.

## Out of scope

- Scheduler packing (t002); autoscaling (t003).
