b4bd508170
Validate Flux manifests / kustomize-build (pull_request) Failing after 25s
Closes leeworks-agents/api-company#108 - Current date header: 2026-05-30 (sprint planning cycle) - Critical path summary with ordered operator steps (#47, #90, #76, #77, #4, other secrets) - New issues #100-#108 summary with completion status - Backlog size: 28 open issues, all blocked on Phase 0 operator actions - Docs-site build verification result: npm run build passes, all 9 routes confirmed - 3 PRs merged this cycle: #103 (pricing), #104 (research log), #105 (publish-openapi CI)
144 lines
11 KiB
Markdown
144 lines
11 KiB
Markdown
# Company Status
|
||
|
||
_Last updated: 2026-05-30 (sprint planning cycle)_
|
||
|
||
## APIs
|
||
| API | Spec | Code | Deployed | Listed on RapidAPI | Paying Users | MRR |
|
||
|----------------|------|------|----------|--------------------|--------------|-----|
|
||
| ZIP Enrichment | [~] | [~] | [ ] | [ ] | 0 | $0 |
|
||
| Holidays | [~] | [~] | [ ] | [ ] | 0 | $0 |
|
||
| Air Quality | [ ] | [ ] | [ ] | [ ] | 0 | $0 |
|
||
|
||
Legend: [x]=done, [~]=in-progress, [ ]=not started
|
||
|
||
## Infrastructure
|
||
- Cluster nodes: 3 control plane (10.0.1.3, .4, .5) + workers (testing1)
|
||
- **Flux wiring (api-company):** Manifests staged at `flux/api-company-source/` — PENDING Talos merge (issue #2)
|
||
- **Gitea Actions runner:** Flux manifest committed at `flux/gitea-runner/` — PENDING runner token secret + Talos wiring (issue #3)
|
||
- **Container registry:** Gitea built-in registry selected; docs/registry.md committed — PENDING Gitea packages enabled (issue #4)
|
||
- **Prometheus + Grafana:** Flux HelmRelease at `flux/monitoring/` — PENDING Flux wiring + Grafana secret (issue #7)
|
||
- **Gatus status page:** Flux HelmRelease at `flux/monitoring/gatus-helmrelease.yaml` — PENDING Flux wiring (issue #8)
|
||
- **API service manifests:** `flux/zip-enrichment/`, `flux/holidays/`, `flux/air-quality/` scaffolded (PR #48, closes #46)
|
||
- **Image automation:** `flux/image-automation/` — ImageRepository + ImagePolicy + ImageUpdateAutomation for all three APIs
|
||
|
||
## Completed This Cycle (2026-05-30 — Sprint Cycle)
|
||
- **#108** — STATUS.md updated with 2026-05-30 sprint plan and critical path.
|
||
- **#107** — docs-site build verified: `npm run build` exits 0; all 9 required routes present in `dist/` (`/`, `/zip-enrichment`, `/holidays`, `/air-quality`, `/blog/` (3 posts), `/legal/terms-of-service`, `/legal/privacy-policy`, `/legal/acceptable-use-policy`, `/pricing`). Unblocks #30.
|
||
- **PR #105 MERGED** — `scripts/publish-openapi.js` + `.gitea/workflows/publish-openapi.yaml` (closes #100).
|
||
- **PR #103 MERGED** — `docs-site/src/pages/pricing.astro` + nav link (closes #101).
|
||
- **PR #104 MERGED** — `research/RESEARCH_LOG.md` first session: VIN Decoder next candidate (closes #102).
|
||
- **New issues triaged** — #100–#108 (sprint planning cycle issues reviewed).
|
||
- **`0xWheatyz/api-company`** — still does not exist; fork sync skipped (blocker #47).
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Critical Path (operator must complete in order)
|
||
1. **Create `0xWheatyz/api-company` repo** (#47) — **highest priority, unblocks everything**
|
||
2. **Add api-company Flux source to Talos** (#90) — needs Talos PR, reference manifests at `flux/api-company-source/`
|
||
3. **Create `gitea-leeworks-agents-token` secret** in `flux-system` (#76)
|
||
4. **Create `gitea-runner-token` secret** in `gitea-runner` (#77)
|
||
5. **Enable Gitea packages + DNS for `registry.leeworks.dev`** (#4)
|
||
6. **All other secrets** (#70, #73, #74, #79, #80, #81, #83) follow in order
|
||
|
||
## New Issues This Sprint (2026-05-29, #100–#108)
|
||
- **#100** — `scripts/publish-openapi.js` + CI workflow — **DONE (PR #105 merged)**
|
||
- **#101** — Pricing page at `docs.leeworks.dev/pricing/` — **DONE (PR #103 merged)**
|
||
- **#102** — Seed `research/RESEARCH_LOG.md` — **DONE (PR #104 merged)**
|
||
- **#106** — Add `grafana.leeworks.dev` as 7th subdomain to DNS task (#33) — tracker only; docs already updated (#67)
|
||
- **#107** — docs-site build verification — **DONE (build passes, all 9 routes confirmed)**
|
||
- **#108** — STATUS.md update — **DONE (this update)**
|
||
|
||
## Backlog
|
||
- **28 open issues total**; all remaining blocked on operator Phase 0 actions above.
|
||
- **Agent work that can proceed without operator:** all completed this cycle.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Cycle-2 Triage)
|
||
- **#83** — Triaged: `GITEA_TOKEN` Actions secrets needed in `zip-enrichment`, `holidays`, `air-quality` repos. Manual operator task; reuse token from #74 if it has `write:package` scope. Step-by-step instructions posted.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
- **Upstream `0xWheatyz/api-company`** — still does not exist; fork sync skipped (blocker #47).
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Late-Night Triage)
|
||
- **#79** — Triaged: `gitea-registry` imagePullSecret needed in 4 namespaces. Manual operator task; kubectl docker-registry secret instructions posted.
|
||
- **#80** — Triaged: `gitea-image-automation-token` secret needed in `flux-system`. Manual operator task; write-scoped PAT required, kubectl instructions posted.
|
||
- **#81** — Triaged: `rapidapi-proxy-secret` needed in `zip-enrichment`, `holidays`, `air-quality`. Manual operator task; placeholder + real-secret commands posted.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Night Triage)
|
||
- **#76** — Triaged: `gitea-leeworks-agents-token` secret required in `flux-system` to unblock Flux GitRepository auth. Manual operator task; kubectl instructions + reconcile steps posted in issue comment.
|
||
- **#77** — Triaged: `gitea-runner-token` secret required in `gitea-runner` namespace to register Act Runner. Manual operator task; full step-by-step instructions posted in issue comment.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Evening Triage)
|
||
- **#74** — Triaged: `GITEA_TOKEN` Actions secret required in leeworks-agents/api-company for docs-site CI. Manual operator task; instructions posted.
|
||
- **#73** — Triaged: `gatus-slack-webhook` secret required in `monitoring` namespace. Manual operator task; kubectl instructions posted.
|
||
- **#67** — Confirmed already resolved: `docs/operator-runbook.md` and `docs/dns.md` both list all 7 subdomains incl. `grafana.leeworks.dev` (PR #63). No code change needed.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Morning Triage)
|
||
- **#69 → PR #71 MERGED** — Added `.gitea/workflows/validate-flux.yaml` CI workflow: runs `kustomize build flux/` on every PR and push to `main`. CI gate enforced once Act Runner (#3) is online.
|
||
- **#70** — Triaged: `grafana-admin` secret needed in `monitoring` namespace. Manual operator task; kubectl instructions posted in issue comment.
|
||
- **#67** — Confirmed `docs/operator-runbook.md` Phase 4 DNS table already lists all 7 subdomains including grafana.leeworks.dev. No code change needed.
|
||
- **#66** — Blocked on Phase 0 operator actions (#47, #2, #3, #4). Status comment posted.
|
||
- **#47, #2, #3, #4, #7, #8, #16, #17, #18, #19, #27, #30, #33, #44** — Status comments posted confirming blocked/awaiting-operator state.
|
||
- **No open PRs to review** — queue empty after PR #71 merged.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-27 — Evening Triage)
|
||
- **Triage pass** — all 15 open agent-ready issues reviewed; status comments posted on each.
|
||
- **No open PRs** — nothing to merge or review.
|
||
- **No new feature work** — all issues remain blocked on operator actions or cross-repo prerequisites.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-27 — Ship/Afternoon)
|
||
- **PRs reviewed** — 0 open PRs on fork; nothing to merge.
|
||
- **Upstream sync** — `0xWheatyz/api-company` does not yet exist (blocker #41/#47); `git fetch upstream` failed as expected. Fork `origin/main` is current (SHA `9a1639f`).
|
||
- **`kustomize build flux/` = PASS** — all sub-trees validate cleanly; no regressions.
|
||
- **Deployment PR** — skipped; upstream repo must be created by operator first (#41, #47).
|
||
- **No new feature work** — all 15 open agent-ready issues remain blocked on operator actions.
|
||
|
||
## Completed Previous Cycle (2026-05-27 — Morning)
|
||
- **Triage pass** — all 15 open agent-ready issues reviewed; status comments posted/confirmed on each.
|
||
- **#19** — First triage comment posted: RapidAPI/PayPal operator task fully documented; all agent-side prerequisites (OpenAPI specs, listing copy, proxy-secret placeholders) confirmed ready.
|
||
- **No PRs to review** — fork had no open PRs.
|
||
- **No new feature work** — all open issues blocked on operator actions.
|
||
|
||
## Completed Previous Cycle (2026-05-26 Evening)
|
||
- **#50** — `docs/operator-runbook.md` added: ordered phase-by-phase manual for operator. PR #52 merged.
|
||
- **#51** — Flux image automation: `ImageRepository` + `ImagePolicy` + `ImageUpdateAutomation` for all three API services; setter markers added to HelmReleases. PR #52 merged. `kustomize build flux/ = PASS`.
|
||
|
||
## Completed Previous Cycle (2026-05-26 PM)
|
||
- **#46** — Scaffolded Flux deployment manifests for all three API services (zip-enrichment, holidays, air-quality). PR #48 merged.
|
||
|
||
## Completed Previous Cycle (2026-05-26 AM)
|
||
- **#43** — secrets-checklist.md added (closed, PR #45)
|
||
- **#36** — Cluster audit committed to `docs/cluster-audit.md` (closed)
|
||
- **#40** — Legal docs (ToS, Privacy Policy, AUP) under `docs/legal/` (closed)
|
||
- **#37** — docs-site Astro skeleton with Redoc pages; `npm run build` passes (closed)
|
||
- **#39** — SEO blog posts (ZIP, Holidays, Air Quality) in `docs-site/src/pages/blog/` (closed)
|
||
- **#38** — Gitea Actions CI workflow (`.gitea/workflows/build-docs.yaml`) + Dockerfile (closed)
|
||
- **#34** — Cluster audit PR merged
|
||
|
||
## Flux Manifests (kustomize build flux/ = PASS)
|
||
All flux manifests validate successfully. Committed components pending Flux activation:
|
||
- `gitea-runner` namespace + HelmRelease (gitea-act-runner chart)
|
||
- `monitoring` namespace + kube-prometheus-stack HelmRelease
|
||
- `monitoring` Gatus HelmRelease (status.leeworks.dev, 90-day retention)
|
||
- `docs-site` HelmRelease (docs.leeworks.dev)
|
||
- `zip-enrichment` namespace + HelmRelease (zip.leeworks.dev) + rapidapi-proxy-secret placeholder
|
||
- `holidays` namespace + HelmRelease (holidays.leeworks.dev) + rapidapi-proxy-secret placeholder
|
||
- `air-quality` namespace + HelmRelease (aqi.leeworks.dev) + rapidapi-proxy-secret placeholder
|
||
- `image-automation` ImageRepository + ImagePolicy + ImageUpdateAutomation for all three APIs
|
||
|
||
## Blockers (human operator action required)
|
||
1. **Create `0xWheatyz/api-company` repo on Gitea** — every ship cycle fails until this exists (#41, #47) **<-- DO THIS FIRST**
|
||
2. **Add api-company GitRepository+Kustomization to 0xWheatyz/Talos** at `testing1/first-cluster/cluster/flux/` — reference manifests ready in `flux/api-company-source/` (#2)
|
||
3. **Create `gitea-leeworks-agents-token` secret** in `flux-system` namespace (HTTPS token for Gitea)
|
||
4. **Create `gitea-runner-token` secret** in `gitea-runner` namespace (Gitea Admin -> Actions -> Runners -> New Runner) (#3)
|
||
5. **Enable Gitea packages** (for container registry at `registry.leeworks.dev`) (#4)
|
||
6. **RapidAPI + PayPal setup** — manual, gated on operator turning 18 (#19, #44)
|
||
|
||
> Full ordered runbook with copy-paste commands: `docs/operator-runbook.md`
|