Remove build_args regression so Kaniko pulls via Tailscale FQDN #91
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/remove-build-args-regression"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
build_args: "REGISTRY=harbor.harbor.svc.cluster.local"accidentally re-introduced by PR #79's conflict resolution--insecure-pullflag (no longer needed — pulls now use Tailscale FQDN with proper HTTPS)Changes
.woodpecker.yaml: removedbuild_argsline and--insecure-pullfromextra_optsTest Plan
landscaping-assistant/app:{sha}Review Checklist
Related Notes
ldraney/landscaping-assistant #77— original build-arg regressionInvestigation
6 consecutive pipeline failures all fail at
build-and-push:Standalone connectivity from the woodpecker namespace works fine (verified with test pods using both alpine and the Kaniko image). The issue is Kaniko's HTTPS-first→HTTP-fallback behavior with
--insecure-pull— the HTTPS timeout on port 443 (~30s) corrupts the subsequent HTTP attempt.Fix: let Kaniko pull base images via Tailscale FQDN (proper HTTPS, no fallback needed). Push remains cluster-internal with
insecure: true(forces HTTP directly).PR #91 Review
DOMAIN REVIEW
Domain: CI/CD -- Woodpecker pipeline config, Kaniko image build/push.
Change analysis (2 deletions, 1 addition in
.woodpecker.yaml):Removed
build_args: "REGISTRY=harbor.harbor.svc.cluster.local"-- This was overriding the Dockerfile's defaultARG REGISTRY=harbor.tail5b443a.ts.net(line 4 ofDockerfile), forcing Kaniko to pull base images via the cluster-internal address. That address has no HTTPS listener on :443, and Kaniko's HTTPS-first fallback behavior caused i/o timeouts. Removing the override lets the Dockerfile default (Tailscale FQDN with proper HTTPS) take effect. Correct fix.Removed
--insecure-pullfromextra_opts-- No longer needed since pulls now go through Tailscale FQDN with valid HTTPS certificates. Consistent with thebuild_argsremoval.Push path unchanged --
registry: harbor.harbor.svc.cluster.local,insecure: true, andinsecure-registry: harbor.harbor.svc.cluster.localall remain, correctly keeping pushes cluster-internal via HTTP.Verified against Dockerfile: Both
FROMstages use${REGISTRY}/library/ruby-rails-build:latestand${REGISTRY}/library/ruby-rails-runtime:latest. The defaultREGISTRY=harbor.tail5b443a.ts.netis declared viaARGat lines 4 and 19. The fix is mechanically sound.Historical context confirmed: PR #78 originally removed this
build_argsline. PR #79 re-introduced it during conflict resolution. This PR reverts to the #78 state, which is the correct one. The investigation in the PR body (6 consecutive pipeline failures, all atbuild-and-push) corroborates the diagnosis.BLOCKERS
None.
from_secret).NITS
Branch naming: Branch is
fix/remove-build-args-regressionbut SOP convention is{issue-number}-{kebab-case-purpose}(e.g.,82-remove-build-args-regression). Non-blocking since the branch is already pushed.No plan slug in Related: The Related section references
#82and#77but does not reference a pal-e-docs plan slug. Minor process gap if a plan exists for this work.insecure-registrysetting: Theinsecure-registry: harbor.harbor.svc.cluster.localline remains. This is correct for push, but worth noting that this setting is only meaningful for push operations now that pulls go through a different path entirely. No action needed -- just a clarity observation.SOP COMPLIANCE
fix/remove-build-args-regressionvs expected82-*)from_secret)PROCESS OBSERVATIONS
build_args, #78 removed it, #79 re-introduced it, now #91 removes it again). The root cause is conflict resolution during merge of #79. Consider squash-merging or at minimum reviewing conflict resolutions more carefully to prevent this oscillation pattern.VERDICT: APPROVED
Clean, minimal, well-investigated fix. The change is mechanically correct: removing the
build_argsoverride restores the Dockerfile default (Tailscale FQDN with HTTPS), and removing--insecure-pullis the consistent follow-through. Branch naming is a nit, not a blocker. Ship it to unblock the pipeline.