Plan: Platform Hardening
Vision
Harden the pal-e platform from a working dev cluster into a production-grade, seven-pillar validated system. Three tiers — Foundation (observability + SLO governance), Hardening (policy-as-code + security deepening + progressive delivery), and Advanced Validation (load testing + chaos engineering) — prove platform reliability through structured, tiered validation. Every tool feeds the same Prometheus/Grafana layer. The platform that proves one human + AI agents can operate at enterprise grade.
Projects & Repos Touched
| Project/Repo | Platform | Role |
|---|---|---|
| pal-e-platform | Forgejo | OpenTofu IaC + SaltStack — core platform infrastructure |
| pal-e-services | Forgejo | Service onboarding (ArgoCD, var.services for_each) |
| pal-e-deployments | Forgejo | Kustomize bases + overlays (ArgoCD syncs from here) |
Context
The platform is stable and operational — k3s, Tailscale, Forgejo, Woodpecker, Harbor, MinIO, monitoring stack, CNPG Postgres all deployed. But it's operating at ~21% maturity (per
platform-maturity-matrix). This plan is the DORA enablement engine: every phase directly improves one or more DORA metrics. Observability (Phases 1-5) reduces MTTR and Change Failure Rate. CI hardening (Phase 6) increases Deployment Frequency. Kustomize patterns (Phase 7) reduce Lead Time. Security and isolation (Phases 8-9) reduce blast radius. Stubs 10-13 cover the long tail — vulnerability scanning, dependency management, incident SOPs, backup verification. The through-line: you can't achieve DORA Elite without a platform that makes production smooth enough that teams push to it from the beginning.Previous Plan
Consolidates
plan-2026-02-25-platform-observability (active, 5 phases reparented) plus 4 deferred plans and 4 plan stubs that were never promoted. See completed plans table on project-pal-e-platform.Depends On
Nothing — this is foundation work. Other projects depend on this.
Decisions Made
| Decision | Rationale |
|---|---|
| One plan per project | 13 separate plans/stubs caused fragmentation. One living plan with phases that get worked in priority order. |
| Observability phases first | Can't harden what you can't see. Alerting and dashboards are prerequisite for everything else. |
| Deferred plans become phases | Content is preserved, just re-homed. Former inline phases become the phase's scope section. |
| Stubs become phases | Stubs were proto-phases waiting for promotion. Now they're in the plan with a position. |
| DORA is the through-line | Every phase maps to a DORA metric. Platform hardening isn't an ops checkbox — it's the engine that drives Deployment Frequency, Lead Time, Change Failure Rate, and MTTR across the entire agency. DORA = Observability (production health) + Kanban (value throughput). |
| Tier 1.5: Operational Excellence gates Tier 2 (2026-03-17) | Discovered during session: 8 open TODOs (CI state locks, Harbor drift, onboarding gaps) are more dangerous than missing capabilities (Sloth, Kyverno). Deploying new tools on unreliable CI/CD compounds failures. Fix the foundation before extending it. TODOs stay as board items (per convention: too small for phase notes). Phase 17b is the only exception — it's architectural. |
Phases
See child phase notes:
list_notes(parent_slug="plan-pal-e-platform")Summary: 27 phases (+ subphases) organized in a seven-pillar, three-tier platform validation framework. Phases 1-8, 10, 12-16(alert tuning), 17a, 24, 26 COMPLETED (19/27 main phases). Phase 9 DEFERRED. Phase 11 DEFERRED (absorbed into 20a). Phase 17b (Terraform State Governance) IN PROGRESS — 17b.1 CI Lock Recovery COMPLETED (PR #100), 17b.2 State Hygiene SOP COMPLETED, 17b.3 future. kube-router bug RESOLVED (NetworkPolicies re-enabled 2026-03-17).
Tier 1 — Foundation (Observability + SLO Governance): Phases 1-5, 14, 15, 16(alert) COMPLETED. Phase 16 (SLO/Sloth), Phase 17 (OTel/Tempo), Phase 18 (Ops Dashboard) NOT STARTED.
Tier 1.5 — Operational Excellence (Fix What We Have): Phase 17b IN PROGRESS (17b.1+17b.2 done). CI Pipeline FIXED (2026-03-21): PR #139 merged (OAuth override removed). PR #134 merged (alpine/git clone + SA token auth + internal MinIO + sysctl IPv6 disable + CoreDNS fix). Pipeline fully green: clone → validate → plan all pass on PR events. Root causes fixed: CoreDNS MagicDNS forwarder removed, Woodpecker trusted repo + clone plugin configured, kubeconfig moved to SA token auth. This tier gates Tier 2.
Tier 2 — Hardening (Policy + Security + Progressive Delivery): Phase 8 (Network) COMPLETED. Phase 19 (Kyverno), Phase 20 (Security), Phase 21 (Argo Rollouts) NOT STARTED.
Tier 3 — Advanced Validation (Load + Chaos): Phase 22 (k6), Phase 23 (LitmusChaos — capstone) NOT STARTED.
Tier 4 — MinIO Mobile Interface: Phase 24 (SDK) COMPLETED. Phase 25 (API) NOT STARTED (depends on 24). Phase 26 (Playground) COMPLETED. Phase 27 (SvelteKit) NOT STARTED (depends on 24+25+26).
Tier 1 — Foundation (Observability + SLO Governance): Phases 1-5, 14, 15, 16(alert) COMPLETED. Phase 16 (SLO/Sloth), Phase 17 (OTel/Tempo), Phase 18 (Ops Dashboard) NOT STARTED.
Tier 1.5 — Operational Excellence (Fix What We Have): Phase 17b IN PROGRESS (17b.1+17b.2 done). CI Pipeline FIXED (2026-03-21): PR #139 merged (OAuth override removed). PR #134 merged (alpine/git clone + SA token auth + internal MinIO + sysctl IPv6 disable + CoreDNS fix). Pipeline fully green: clone → validate → plan all pass on PR events. Root causes fixed: CoreDNS MagicDNS forwarder removed, Woodpecker trusted repo + clone plugin configured, kubeconfig moved to SA token auth. This tier gates Tier 2.
Tier 2 — Hardening (Policy + Security + Progressive Delivery): Phase 8 (Network) COMPLETED. Phase 19 (Kyverno), Phase 20 (Security), Phase 21 (Argo Rollouts) NOT STARTED.
Tier 3 — Advanced Validation (Load + Chaos): Phase 22 (k6), Phase 23 (LitmusChaos — capstone) NOT STARTED.
Tier 4 — MinIO Mobile Interface: Phase 24 (SDK) COMPLETED. Phase 25 (API) NOT STARTED (depends on 24). Phase 26 (Playground) COMPLETED. Phase 27 (SvelteKit) NOT STARTED (depends on 24+25+26).
Key Files
terraform/— cluster-level IaCsalt/— host-level configurationMakefile— unified CLI
Verification
- Platform maturity score increases from 21% baseline
- Alerting fires on real incidents
- CI catches TF errors before apply
- New services deploy via Kustomize base inheritance
Next Plan Seeds
- Multi-node cluster (Hetzner expansion)
- GitOps for Salt (Salt states in separate repo, ArgoCD-like for host config)
Related
project-pal-e-platform— project pageplatform-maturity-matrix— capability scorecardservice-onboarding-sop— how services consume the platform