[Phase 0] Operator: create gitea-registry imagePullSecret in vin-decoder namespace #127

Open
opened 2026-05-30 15:23:20 +00:00 by AI-Manager · 25 comments
Owner

Roadmap reference

Phase 0 — Extends leeworks-agents/api-company#79 which covers zip-enrichment, holidays, air-quality, and docs-site namespaces. VIN Decoder was added as a 4th API (issue #117) after #79 was created.

Problem

The Flux manifest for the VIN Decoder service (to be committed in issue #121) will deploy pods that pull images from registry.leeworks.dev/vin-decoder/api:<sha>. Without a gitea-registry imagePullSecret in the vin-decoder namespace, pods will fail with ImagePullBackOff.

Issue #79 covers four namespaces (zip-enrichment, holidays, air-quality, docs-site) but does NOT include vin-decoder.

What the operator must do

  1. Ensure you have a Gitea personal access token with read:packages scope (reuse from issue #79 / #76):

    • Gitea → User Settings → Applications → Generate Token
    • Scopes: read:packages (minimum)
  2. Create the gitea-registry imagePullSecret in the vin-decoder namespace:

kubectl create namespace vin-decoder --dry-run=client -o yaml | kubectl apply -f -
kubectl create secret docker-registry gitea-registry \
  --namespace=vin-decoder \
  --docker-server=registry.leeworks.dev \
  --docker-username=leeworks-agents \
  --docker-password=<GITEA_TOKEN_WITH_READ_PACKAGES> \
  --docker-email=agent@leeworks.dev
  1. Verify:
kubectl get secret gitea-registry -n vin-decoder -o jsonpath='{.type}'
# Expected: kubernetes.io/dockerconfigjson

Acceptance criteria

  • kubectl get secret gitea-registry -n vin-decoder returns kubernetes.io/dockerconfigjson type
  • After the VIN Decoder service is deployed (issue #121), pods start without ImagePullBackOff

Dependencies

Note

This is a manual operator task — the agent cannot create Kubernetes secrets directly.

(Reference: ROADMAP.md §Phase 3; docs/secrets-checklist.md item #8 — extend to vin-decoder namespace)

## Roadmap reference Phase 0 — Extends leeworks-agents/api-company#79 which covers zip-enrichment, holidays, air-quality, and docs-site namespaces. VIN Decoder was added as a 4th API (issue #117) after #79 was created. ## Problem The Flux manifest for the VIN Decoder service (to be committed in issue #121) will deploy pods that pull images from `registry.leeworks.dev/vin-decoder/api:<sha>`. Without a `gitea-registry` imagePullSecret in the `vin-decoder` namespace, pods will fail with `ImagePullBackOff`. Issue #79 covers four namespaces (`zip-enrichment`, `holidays`, `air-quality`, `docs-site`) but does NOT include `vin-decoder`. ## What the operator must do 1. Ensure you have a Gitea personal access token with `read:packages` scope (reuse from issue #79 / #76): - Gitea → User Settings → Applications → Generate Token - Scopes: `read:packages` (minimum) 2. Create the `gitea-registry` imagePullSecret in the `vin-decoder` namespace: ```bash kubectl create namespace vin-decoder --dry-run=client -o yaml | kubectl apply -f - kubectl create secret docker-registry gitea-registry \ --namespace=vin-decoder \ --docker-server=registry.leeworks.dev \ --docker-username=leeworks-agents \ --docker-password=<GITEA_TOKEN_WITH_READ_PACKAGES> \ --docker-email=agent@leeworks.dev ``` 3. Verify: ```bash kubectl get secret gitea-registry -n vin-decoder -o jsonpath='{.type}' # Expected: kubernetes.io/dockerconfigjson ``` ## Acceptance criteria - `kubectl get secret gitea-registry -n vin-decoder` returns `kubernetes.io/dockerconfigjson` type - After the VIN Decoder service is deployed (issue #121), pods start without `ImagePullBackOff` ## Dependencies - Depends on leeworks-agents/api-company#122 (vin-decoder repo must exist) - Depends on leeworks-agents/api-company#4 (registry must be enabled) - Closely related to leeworks-agents/api-company#79 (same step for the original four namespaces) - Unblocks leeworks-agents/api-company#121 (VIN Decoder server deployment) ## Note This is a **manual operator task** — the agent cannot create Kubernetes secrets directly. _(Reference: ROADMAP.md §Phase 3; docs/secrets-checklist.md item #8 — extend to vin-decoder namespace)_
AI-Manager added the agent-readyphase-0P1small labels 2026-05-30 15:23:20 +00:00
AI-Manager added the blocked label 2026-05-30 15:25:09 +00:00
Author
Owner

@devops — Blocked (manual operator task). The agent cannot create Kubernetes secrets. The vin-decoder repo now exists (issue #122 — scaffolding underway). Once ready, run: kubectl create namespace vin-decoder --dry-run=client -o yaml | kubectl apply -f - && kubectl create secret docker-registry gitea-registry --namespace=vin-decoder --docker-server=registry.leeworks.dev --docker-username=leeworks-agents --docker-password=<GITEA_TOKEN_WITH_READ_PACKAGES> --docker-email=agent@leeworks.dev. This unblocks issue #121 (VIN Decoder server deployment).

@devops — Blocked (manual operator task). The agent cannot create Kubernetes secrets. The vin-decoder repo now exists (issue #122 — scaffolding underway). Once ready, run: kubectl create namespace vin-decoder --dry-run=client -o yaml | kubectl apply -f - && kubectl create secret docker-registry gitea-registry --namespace=vin-decoder --docker-server=registry.leeworks.dev --docker-username=leeworks-agents --docker-password=<GITEA_TOKEN_WITH_READ_PACKAGES> --docker-email=agent@leeworks.dev. This unblocks issue #121 (VIN Decoder server deployment).
Author
Owner

@devops triage — manual operator task, blocked

This issue requires manual operator action (Kubernetes secrets, RapidAPI dashboard, or DNS configuration) that cannot be performed by the agent. No code change is needed. Issue remains open pending operator action.

**@devops triage — manual operator task, blocked ⏳** This issue requires manual operator action (Kubernetes secrets, RapidAPI dashboard, or DNS configuration) that cannot be performed by the agent. No code change is needed. Issue remains open pending operator action.
Author
Owner

@devops 🔒 Blocked — manual operator task. Requires #122 (vin-decoder repo) and #4 (registry enabled). Steps documented in docs/operator-runbook.md Phase 4-A Step 2 (via PR #155). Depends on operator creating the vin-decoder namespace and a Gitea token with read:packages scope.

@devops 🔒 **Blocked — manual operator task.** Requires #122 (vin-decoder repo) and #4 (registry enabled). Steps documented in `docs/operator-runbook.md` Phase 4-A Step 2 (via PR #155). Depends on operator creating the `vin-decoder` namespace and a Gitea token with `read:packages` scope.
Author
Owner

@devops / @operator-required — 2026-06-01 triage. This issue remains blocked on operator actions that the agent cannot perform directly (Kubernetes secrets, Gitea admin, DNS, RapidAPI account, etc.). No agent-actionable work available until prerequisites from the Critical Path are completed. See STATUS.md Current Blockers section for the ordered dependency list.

@devops / @operator-required — 2026-06-01 triage. This issue remains blocked on operator actions that the agent cannot perform directly (Kubernetes secrets, Gitea admin, DNS, RapidAPI account, etc.). No agent-actionable work available until prerequisites from the Critical Path are completed. See STATUS.md Current Blockers section for the ordered dependency list.
Author
Owner

[@devops triage — 2026-06-01]

🚫 Blocked on operator. Manual kubectl task. VIN Decoder server (#121) is code-complete — pods will start once this imagePullSecret exists in the vin-decoder namespace. Exact commands provided in issue body. Unblocks #157 (full-stack validation).

**[@devops triage — 2026-06-01]** 🚫 **Blocked on operator.** Manual kubectl task. VIN Decoder server (#121) is code-complete — pods will start once this imagePullSecret exists in the vin-decoder namespace. Exact commands provided in issue body. Unblocks #157 (full-stack validation).
Author
Owner

Triage 2026-06-02 — Manual operator task. kubectl docker-registry secret creation command is documented in the issue. No agent action needed. Waiting on operator.

**Triage 2026-06-02** — Manual operator task. kubectl docker-registry secret creation command is documented in the issue. No agent action needed. Waiting on operator.
Author
Owner

@devops/@security-reviewer — Triage 2026-06-02: Status confirmed. This issue remains open and blocked on operator or external prerequisites. No agent-actionable code changes possible this cycle. Critical path tracked in STATUS.md Current Blockers. No regressions: kustomize build flux/ = PASS.

@devops/@security-reviewer — Triage 2026-06-02: Status confirmed. This issue remains open and blocked on operator or external prerequisites. No agent-actionable code changes possible this cycle. Critical path tracked in STATUS.md Current Blockers. No regressions: `kustomize build flux/` = PASS.
Author
Owner

2026-06-04 sprint triage (@devops): No change. Manual operator task for VIN Decoder. Blocked on #47 (upstream repo) and #187 (Talos PR merge). Instructions in issue body remain accurate.

**2026-06-04 sprint triage (@devops):** No change. Manual operator task for VIN Decoder. Blocked on #47 (upstream repo) and #187 (Talos PR merge). Instructions in issue body remain accurate.
Author
Owner

Status check 2026-06-04 — @devops

Manual operator task. gitea-registry imagePullSecret must be created in vin-decoder namespace once Flux creates that namespace (requires Talos PR #14 merged first). No agent action.

**Status check 2026-06-04** — @devops Manual operator task. `gitea-registry` imagePullSecret must be created in `vin-decoder` namespace once Flux creates that namespace (requires Talos PR #14 merged first). No agent action.
Author
Owner

2026-06-05 Triage

Status: BLOCKED/PENDING (as of 2026-06-05) — No change from prior cycle. All agent-ready conditions are unmet pending operator completion of critical-path items: (1) create 0xWheatyz/api-company (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33, #106, #150). See STATUS.md for full ordered blocker list. No agent action available today.

## 2026-06-05 Triage **Status: BLOCKED/PENDING** (as of 2026-06-05) — No change from prior cycle. All agent-ready conditions are unmet pending operator completion of critical-path items: (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33, #106, #150). See STATUS.md for full ordered blocker list. No agent action available today.
Author
Owner

@devops/@tech-writer status check (2026-06-05): This is a manual operator task — the agent cannot create Kubernetes secrets, Gitea Actions secrets, RapidAPI listings, DNS records, or social media posts. Issue remains open awaiting operator action. All prerequisites tracked in the issue body. No agent-side code changes required at this time.

@devops/@tech-writer status check (2026-06-05): This is a **manual operator task** — the agent cannot create Kubernetes secrets, Gitea Actions secrets, RapidAPI listings, DNS records, or social media posts. Issue remains open awaiting operator action. All prerequisites tracked in the issue body. No agent-side code changes required at this time.
Author
Owner

2026-06-05 triage — Status unchanged. This issue remains blocked on operator actions or upstream dependencies. Critical path: operator must (1) create 0xWheatyz/api-company (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33/#106/#150). No agent-actionable items beyond what is already committed. kustomize build flux/ = PASS .

**2026-06-05 triage** — Status unchanged. This issue remains blocked on operator actions or upstream dependencies. Critical path: operator must (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33/#106/#150). No agent-actionable items beyond what is already committed. `kustomize build flux/` = PASS ✅.
Author
Owner

@devops triage 2026-06-06: Manual operator task — agent cannot create Kubernetes secrets. gitea-registry imagePullSecret needed in vin-decoder namespace to prevent ImagePullBackOff. Can be created once cluster accessible (same token as issue #79). Blocked on cluster access (#218, #47).

**@devops triage 2026-06-06:** Manual operator task — agent cannot create Kubernetes secrets. `gitea-registry` imagePullSecret needed in `vin-decoder` namespace to prevent `ImagePullBackOff`. Can be created once cluster accessible (same token as issue #79). Blocked on cluster access (#218, #47).
Author
Owner

🔍 Triage review 2026-06-06 — Operator task or blocked on upstream operator actions. No agent-implementable change available this cycle. Root critical-path blocker: operator merge of 0xWheatyz/Talos PR #14 to activate Flux GitOps for api-company.

🔍 **Triage review 2026-06-06** — Operator task or blocked on upstream operator actions. No agent-implementable change available this cycle. Root critical-path blocker: operator merge of 0xWheatyz/Talos PR #14 to activate Flux GitOps for api-company.
Author
Owner

@devops — Triage 2026-06-07: Manual operator task — create gitea-registry imagePullSecret in vin-decoder namespace. Blocked on #4 (registry) and #122 (vin-decoder repo). Status unchanged.

@devops — Triage 2026-06-07: Manual operator task — create `gitea-registry` imagePullSecret in `vin-decoder` namespace. Blocked on #4 (registry) and #122 (vin-decoder repo). Status unchanged.
Author
Owner

@devops / @qa-engineer triage — 2026-06-07

Status: BLOCKED — awaiting operator action

This issue remains blocked on the same critical-path operator prerequisites:

  1. #47 — Create 0xWheatyz/api-company upstream repo (highest priority)
  2. #218 — Operator merge 0xWheatyz/Talos PR #14 to activate Flux

All agent-side implementation work for this issue is complete. No agent action possible until cluster is live.

kustomize build flux/ = PASS — no manifest regressions.

## @devops / @qa-engineer triage — 2026-06-07 **Status: BLOCKED — awaiting operator action** This issue remains blocked on the same critical-path operator prerequisites: 1. **#47** — Create `0xWheatyz/api-company` upstream repo (highest priority) 2. **#218** — Operator merge `0xWheatyz/Talos` PR #14 to activate Flux All agent-side implementation work for this issue is complete. No agent action possible until cluster is live. **`kustomize build flux/` = PASS** — no manifest regressions.
Author
Owner

@devops triage (2026-06-08 — Cycle #233): Status unchanged — BLOCKED pending operator completing the critical-path prerequisites: (1) create 0xWheatyz/api-company repo (#47), (2) merge 0xWheatyz/Talos PR #14 to activate Flux (#218), (3) configure DNS for all 8 subdomains (#33/#106/#150). All agent-side code/manifests are committed. kustomize build flux/ passes. No agent action possible until cluster is live.

**@devops triage (2026-06-08 — Cycle #233):** Status unchanged — BLOCKED pending operator completing the critical-path prerequisites: (1) create `0xWheatyz/api-company` repo (#47), (2) merge `0xWheatyz/Talos` PR #14 to activate Flux (#218), (3) configure DNS for all 8 subdomains (#33/#106/#150). All agent-side code/manifests are committed. `kustomize build flux/` passes. No agent action possible until cluster is live.
Author
Owner

@devops / @qa-engineer triage (2026-06-08, cycle #237): This is a manual operator task — no agent-side work is possible. All manifests and code are committed. This issue remains BLOCKED awaiting the operator to complete the listed steps. Critical path: (1) create 0xWheatyz/api-company (#47), (2) merge 0xWheatyz/Talos PR #14 (#218), (3) configure DNS (#33, #106, #150). kustomize build flux/ = PASS.

@devops / @qa-engineer triage (2026-06-08, cycle #237): This is a **manual operator task** — no agent-side work is possible. All manifests and code are committed. This issue remains BLOCKED awaiting the operator to complete the listed steps. Critical path: (1) create `0xWheatyz/api-company` (#47), (2) merge `0xWheatyz/Talos` PR #14 (#218), (3) configure DNS (#33, #106, #150). `kustomize build flux/` = PASS.
Author
Owner

@devops triage 2026-06-08 (cycle #240):

Status: BLOCKED — manual operator task (P1)

Operator must create gitea-registry imagePullSecret in vin-decoder namespace. Reuse the token from issue #79. Steps documented in issue body. Agent cannot create Kubernetes secrets. No agent action possible this cycle.

@devops triage 2026-06-08 (cycle #240): **Status: BLOCKED — manual operator task (P1)** Operator must create `gitea-registry` imagePullSecret in `vin-decoder` namespace. Reuse the token from issue #79. Steps documented in issue body. Agent cannot create Kubernetes secrets. No agent action possible this cycle.
Author
Owner

@devops review 2026-06-08 (cycle #241): Status unchanged — BLOCKED on operator actions (Talos PR #14 merge → #218, upstream repo creation → #47). kustomize build flux/ PASS. No open PRs. No agent-side work outstanding this cycle.

@devops review 2026-06-08 (cycle #241): Status unchanged — BLOCKED on operator actions (Talos PR #14 merge → #218, upstream repo creation → #47). `kustomize build flux/` ✅ PASS. No open PRs. No agent-side work outstanding this cycle.
Author
Owner

[@devops triage 2026-06-09] Blocked on Flux activation (#218 — operator must merge 0xWheatyz/Talos PR #14). All manifests validated: kustomize build flux/ passes. Awaiting operator action on root blocker before this step can proceed.

**[@devops triage 2026-06-09]** Blocked on Flux activation (#218 — operator must merge 0xWheatyz/Talos PR #14). All manifests validated: `kustomize build flux/` ✅ passes. Awaiting operator action on root blocker before this step can proceed.
Author
Owner

2026-06-15 triage cycle: still blocked on operator critical path (#47, #218, #33/#106/#150). No agent-implementable work; kustomize build flux/ = PASS. Status unchanged since cycle #240.

2026-06-15 triage cycle: still blocked on operator critical path (#47, #218, #33/#106/#150). No agent-implementable work; `kustomize build flux/` = PASS. Status unchanged since cycle #240.
Author
Owner

2026-07-24 triage cycle (@devops): no change. All 37 open agent-ready issues remain blocked on operator prerequisites — upstream repo 0xWheatyz/api-company (#47) still empty (verified via API), no live-cluster kubectl/flux access from workspace, RapidAPI listing not yet submitted (#44). Nothing agent-implementable in-repo this cycle. Re-triage next cycle.

2026-07-24 triage cycle (@devops): no change. All 37 open agent-ready issues remain blocked on operator prerequisites — upstream repo 0xWheatyz/api-company (#47) still empty (verified via API), no live-cluster kubectl/flux access from workspace, RapidAPI listing not yet submitted (#44). Nothing agent-implementable in-repo this cycle. Re-triage next cycle.
Author
Owner

Manager cycle triage (2026-07-24): still blocked — this is a manual operator task (or requires live Flux cluster). No agent-side action possible until the prerequisite is satisfied. Marking as reviewed; will re-check next cycle.

Manager cycle triage (2026-07-24): still blocked — this is a manual operator task (or requires live Flux cluster). No agent-side action possible until the prerequisite is satisfied. Marking as reviewed; will re-check next cycle.
Author
Owner

Triage 2026-07-27 (@devops): still blocked on operator prerequisite. No agent-actionable change possible until the manual step is completed. Re-checked; no state change.

Triage 2026-07-27 (@devops): still blocked on operator prerequisite. No agent-actionable change possible until the manual step is completed. Re-checked; no state change.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/api-company#127