Phase 7 verified: - GITOPS-01: ArgoCD server running ✓ - GITOPS-02: Auto-sync verified (137s response time) ✓ - GITOPS-03: Self-heal verified (pod restored) ✓ - GITOPS-04: ArgoCD UI accessible ✓ All 5/5 must-haves passed.
102 lines
3.4 KiB
Markdown
102 lines
3.4 KiB
Markdown
# Requirements: TaskPlanner v2.0
|
|
|
|
**Defined:** 2026-02-03
|
|
**Core Value:** Production-grade operations — reliable deployments and visibility into system health
|
|
|
|
## v2.0 Requirements
|
|
|
|
Requirements for milestone v2.0 Production Operations. Each maps to roadmap phases.
|
|
|
|
### GitOps
|
|
|
|
- [x] **GITOPS-01**: ArgoCD server installed and running in cluster
|
|
- [x] **GITOPS-02**: ArgoCD syncs TaskPlanner deployment from Git automatically
|
|
- [x] **GITOPS-03**: ArgoCD self-heals manual changes to match Git state
|
|
- [x] **GITOPS-04**: ArgoCD UI accessible via Traefik ingress with TLS
|
|
|
|
### Observability
|
|
|
|
- [ ] **OBS-01**: Prometheus collects metrics from cluster and applications
|
|
- [ ] **OBS-02**: Grafana displays dashboards with cluster metrics
|
|
- [ ] **OBS-03**: Loki aggregates logs from all pods
|
|
- [ ] **OBS-04**: Alloy DaemonSet collects pod logs and forwards to Loki
|
|
- [ ] **OBS-05**: Grafana can query logs via Loki datasource
|
|
- [ ] **OBS-06**: Critical alerts configured (pod crashes, disk full, app down)
|
|
- [ ] **OBS-07**: Grafana UI accessible via Traefik ingress with TLS
|
|
- [ ] **OBS-08**: TaskPlanner exposes /metrics endpoint for Prometheus
|
|
|
|
### CI Testing
|
|
|
|
- [ ] **CI-01**: Vitest installed and configured for unit tests
|
|
- [ ] **CI-02**: Unit tests run in Gitea Actions pipeline before build
|
|
- [ ] **CI-03**: Type checking (svelte-check) runs in pipeline
|
|
- [ ] **CI-04**: E2E tests (Playwright) run in pipeline
|
|
- [ ] **CI-05**: Pipeline fails fast on test/type errors before build
|
|
|
|
## Future Requirements
|
|
|
|
Deferred to later milestones.
|
|
|
|
### Observability Enhancements
|
|
|
|
- **OBS-F01**: k3s control plane metrics (scheduler, controller-manager)
|
|
- **OBS-F02**: Traefik ingress metrics integration
|
|
- **OBS-F03**: SLO/SLI dashboards with error budgets
|
|
- **OBS-F04**: Distributed tracing
|
|
|
|
### CI Enhancements
|
|
|
|
- **CI-F01**: Vulnerability scanning (Trivy, npm audit)
|
|
- **CI-F02**: DORA metrics tracking
|
|
- **CI-F03**: Smoke tests on deploy
|
|
|
|
### GitOps Enhancements
|
|
|
|
- **GITOPS-F01**: Gitea webhook integration (faster sync)
|
|
|
|
## Out of Scope
|
|
|
|
Explicitly excluded — overkill for single-user personal project.
|
|
|
|
| Feature | Reason |
|
|
|---------|--------|
|
|
| Multi-environment promotion | Single user, single environment; deploy directly to prod |
|
|
| Blue-green/canary deployments | Complex rollout unnecessary for personal app |
|
|
| ArgoCD high availability | HA for multi-team, not personal projects |
|
|
| ELK stack | Resource-heavy; Loki is lightweight alternative |
|
|
| Vault secrets management | Kubernetes secrets sufficient for personal app |
|
|
| OPA policy enforcement | Single user has no policy conflicts |
|
|
|
|
## Traceability
|
|
|
|
Which phases cover which requirements. Updated during roadmap creation.
|
|
|
|
| Requirement | Phase | Status |
|
|
|-------------|-------|--------|
|
|
| GITOPS-01 | Phase 7 | Complete |
|
|
| GITOPS-02 | Phase 7 | Complete |
|
|
| GITOPS-03 | Phase 7 | Complete |
|
|
| GITOPS-04 | Phase 7 | Complete |
|
|
| OBS-01 | Phase 8 | Pending |
|
|
| OBS-02 | Phase 8 | Pending |
|
|
| OBS-03 | Phase 8 | Pending |
|
|
| OBS-04 | Phase 8 | Pending |
|
|
| OBS-05 | Phase 8 | Pending |
|
|
| OBS-06 | Phase 8 | Pending |
|
|
| OBS-07 | Phase 8 | Pending |
|
|
| OBS-08 | Phase 8 | Pending |
|
|
| CI-01 | Phase 9 | Pending |
|
|
| CI-02 | Phase 9 | Pending |
|
|
| CI-03 | Phase 9 | Pending |
|
|
| CI-04 | Phase 9 | Pending |
|
|
| CI-05 | Phase 9 | Pending |
|
|
|
|
**Coverage:**
|
|
- v2.0 requirements: 17 total
|
|
- Mapped to phases: 17
|
|
- Unmapped: 0
|
|
|
|
---
|
|
*Requirements defined: 2026-02-03*
|
|
*Last updated: 2026-02-03 — Phase 7 requirements complete*
|