Review: Kaniko HTTPS probe timeout — insecure-registry fix
Verdict: READY
Final re-review 2026-03-27 after issue body rewrite and reopen. All three prior NEEDS_REFINEMENT actions have been addressed.
Template Completeness
- [x] Type — Bug
- [x] Lineage — traces to incident #184, identifies this as fix 2 (agent routing was fix 1)
- [x] Repo — cross-repo, primary pal-e-platform (convention owner)
- [x] What Broke — documents both Kaniko code paths: push permission check (HTTPS 443 probe, ignores insecure-registry) and actual push (defaults to HTTPS without insecure-registry). Explains why insecure-registry alone is insufficient.
- [x] Validated Fix — new section documenting real Kaniko pod test (skip-push-permission-check + insecure + insecure-registry = immediate HTTP push, exit 0)
- [x] Repro Steps — clear 3-step repro with 90s timeout observation
- [x] Expected Behavior — present
- [x] Environment — cluster, Kaniko version 2.3.0, Harbor service URL, alerts
- [x] Acceptance Criteria — 4 items including extra_opts requirement and SOP update
- [x] File Targets — all 6 internal repos listed with before/after diff; 3 external repos explicitly excluded
- [x] Change per repo — correct 4-line config (registry + insecure + insecure-registry + extra_opts)
- [x] Related — links #184, #191, project page
Traceability
- [x] story:superuser-deploy — present on board item #428
- [x] arch:ci-pipeline — present on board item #428
- [x] arch:harbor — present on board item #428
- [x] Forgejo issue — #193, open (reopened after premature auto-close)
File Targets
All 6 repos verified in filesystem. Each has
insecure-registry already merged but no extra_opts:- [x]
basketball-api/.woodpecker.yaml— verified: has insecure-registry, missing extra_opts. Before/after diff matches. - [x]
pal-e-docs/.woodpecker.yaml— verified: has insecure-registry, missing extra_opts. Before/after diff matches. - [x]
pal-e-app/.woodpecker.yaml— verified: has insecure-registry, missing extra_opts. Before/after diff matches. - [x]
westside-app/.woodpecker.yaml— verified: has insecure-registry, missing extra_opts. Before/after diff matches. - [x]
westside-contracts/.woodpecker.yaml— verified: has insecure-registry, missing extra_opts. Before/after diff matches. - [x]
pal-e-mail/.woodpecker.yaml— verified: has insecure-registry, missing extra_opts. Before/after diff matches.
External repos verified safe (no change needed):
- [x]
mcd-tracker-api/.woodpecker.yaml— usesharbor.tail5b443a.ts.net(TLS via funnel), no insecure settings - [x]
mcd-tracker-app/.woodpecker.yaml— usesharbor.tail5b443a.ts.net(TLS via funnel), no insecure settings - [x]
minio-api/.woodpecker.yaml— usesharbor.tail5b443a.ts.net(TLS via funnel), no insecure settings
Repo Placement
Issue filed on
forgejo_admin/pal-e-platform as convention owner for cross-repo CI concerns — correct. Actual changes are .woodpecker.yaml edits across 6 consumer repos, each requiring its own PR.Dependencies
- #184 (parent incident) —
in_progresson board. This is fix 2. - #191 (fix 1: agent routing) — merged. No blocker.
- #194 (bump agent parallel workflows) —
in_progress. Independent, not blocking. - No undocumented dependencies found.
Acceptance Criteria Assessment
All 4 criteria are testable by an agent:
- [x] "All 6 internal-registry repos have
extra_opts" — grep-verifiable in .woodpecker.yaml - [x] "build-and-push step completes without HTTPS probe" — verifiable from Woodpecker pipeline logs
- [x] "No regression on 3 external-registry repos" — they don't change, verifiable by diff
- [x] "service-onboarding-sop CI registry section updated" — verifiable via pal-e-docs API
Blast Radius
- All 6 internal repos confirmed affected (all use
harbor.harbor.svc.cluster.localwithinsecure: true) - All 3 external repos confirmed unaffected (use
harbor.tail5b443a.ts.netwith TLS) service-onboarding-sopCI registry row currently saysharbor-core.harbor.svc.cluster.localbut repos useharbor.harbor.svc.cluster.local— pre-existing hostname mismatch, not in scope for this ticket but should be tracked separately
Prior Review Actions (all resolved)
- Reopen issue #193 — DONE (issue state = open)
- Update issue body with validated fix — DONE (body now documents both code paths, validated fix, correct before/after diff, extra_opts in AC)
- Add SOP update AC — DONE (AC item #4)
Recommendation
No action needed. Ticket is READY for execution. The SOP hostname mismatch (
harbor-core vs harbor) is out of scope — track as discovered scope if desired.