Review: T3: Arch Linux Ruby base image in Harbor
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type -- present (Infra)
- [x] Lineage -- present
- [x] Repo -- present (ldraney/pal-e-platform)
- [x] User Story -- present
- [x] Context -- present, thorough
- [x] File Targets -- present (2 creates, 1 conditional modify)
- [x] Acceptance Criteria -- present (7 items)
- [x] Test Expectations -- present (4 items)
- [x] Constraints -- present
- [x] Related -- present
- [x] Dockerfile Shape -- present (bonus: inline code reference)
- [x] Pipeline Shape -- present (bonus: inline description)
- [ ] Checklist -- missing (PR opened, tests pass, no unrelated changes)
Traceability
- [x] story:infra-overhaul label -- present on board item
- [ ] story note MISSING -- [SCOPE] The
infra-overhaulstory is not listed in theproject-pal-enterprisesuser-stories table. Current stories: landing-page, sso-gateway, tool-dashboard, client-portal. Add infra-overhaul row. - [x] arch:harbor label -- present on board item
- [ ] arch note MISSING -- [SCOPE] No
arch-harbornote found in pal-e-docs. Create architecture note for the Harbor component. - [x] Forgejo issue -- https://forgejo.tail5b443a.ts.net/ldraney/pal-e-platform/issues/360, state: open
File Targets
- [x]
docker/ruby-arch/Dockerfile-- to be CREATED in pal-e-platform. Directory does not exist yet (expected for new file). Dockerfile shape provided inline. - [x]
docker/ruby-arch/.woodpecker.yaml-- to be CREATED in pal-e-platform. Pipeline shape described inline. - [x]
terraform/modules/harbor/main.tf-- VERIFIED EXISTS in pal-e-platform. Currently defines Harbor Helm release, OIDC config, and portal proxy. No Harbor project resource exists yet -- the issue correctly notes "add pal-e Harbor project (if not exists)".
Repo Placement
OK. Issue is filed on
ldraney/pal-e-platform and all file targets (docker/, terraform/) are pal-e-platform paths. The board item is on board-pal-enterprises which is correct since this infra work supports the pal-enterprises app. No cross-repo issues.Dependencies
The issue is Ticket 3 of a 5-ticket infra overhaul sequence (T1-T5). Dependencies found but NOT documented in the issue body:
- T4 (Dockerfile migration to Arch base, #1198) -- directly depends on T3. Cannot migrate app Dockerfiles to Arch base until the base image exists in Harbor.
- T2 (Dev overlay with Arch base, #1197) -- depends on T3. Dev overlay references "Arch base" which is this image.
- T1 (Keycloak dev redirect, #1200) -- independent, no dependency on T3.
- T5 (Woodpecker CI with test gates, #1199) -- loosely related. CI pipeline conventions from T5 may affect T3's pipeline yaml, but T3 should be done first.
[BODY] Add a Dependencies section listing T4 and T2 as downstream dependents.
Acceptance Criteria
7 AC items are specific and testable. 4 test expectations are concrete with runnable commands. However:
- The Constraints section flags a potential Kaniko compatibility issue with
pacman -Syubut this is not reflected in the AC. If Kaniko cannot run pacman, the entire approach changes (buildah or docker-in-docker). This should be validated first or added as AC. - No AC for Harbor project creation via Terraform (the
pal-eproject in Harbor).
Blast Radius
Low immediate blast radius -- this creates new files only. The existing pal-enterprises Dockerfile (
ruby:3.4.8-slim Debian base) is untouched by this ticket. Future consumers listed in the issue (pal-enterprises, westside-ror, pal-e-ror, westside-docs) will be migrated by T4 separately. No existing pipelines are modified.The existing
.woodpecker.yaml in pal-enterprises uses Kaniko for builds (plugin-kaniko:2.3.0). The pal-e-platform .woodpecker.yaml uses OpenTofu, not container builds. The new pipeline in docker/ruby-arch/.woodpecker.yaml would be a new Woodpecker pipeline definition -- verify whether Woodpecker auto-discovers yaml files in subdirectories or if this needs explicit registration.Decomposition Assessment
3 file targets in 1 repo. 7 AC + 4 test expectations. Estimated agent work is within 5 minutes -- the Dockerfile and pipeline yaml are straightforward with shapes provided. No decomposition needed.
Recommendations
- [SCOPE] Add
infra-overhauluser story entry toproject-pal-enterprisesuser-stories table. - [SCOPE] Create architecture note
arch-harborfor the Harbor component in pal-e-docs. - [BODY] Add Checklist section (PR opened, tests pass, no unrelated changes).
- [BODY] Add Dependencies section documenting T4 and T2 as downstream dependents.
- [BODY] Add AC for Harbor project creation: "[ ] Harbor project
pal-eexists (created via Terraform if needed)." - [BODY] Add AC or spike note for Kaniko + pacman compatibility: "[ ] Verify
pacman -Syuworks inside Kaniko build (or document alternative build tool)."