fix: replace plugin-git clone with alpine/git internal URL #134
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-platform!134
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "133-fix-ci-clone-alpine-git"
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
alpine/git+ rawcommands:using internal Forgejo service URL — matches working westside-app patternsleep 2before clone for kube-router ipset sync (NetworkPolicy race condition)-lock=falseto both apply paths (initial + retry) for consistency with plan stepChanges
.woodpecker.yaml: Addclone:block withalpine/git, internal URL (forgejo-http.forgejo.svc.cluster.local), andsleep 2.woodpecker.yaml: Add-lock=falseto initialtofu apply(line 145).woodpecker.yaml: Add-lock=falseto retrytofu apply(line 154)No Terraform changes —
tofu fmtandtofu validateare unaffected.Test Plan
tofu fmt -check+tofu validate)-lock=falseReview Checklist
Related
plan-pal-e-platform— Platform Hardening, CI reliabilitysleep 2workaround)PR #134 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI pipeline configuration (YAML), OpenTofu/Terraform IaC, Kubernetes networking.
Clone block (lines 1-9):
The
alpine/gitclone pattern is identical to the proven westside-app reference -- same image, same internal service URL (forgejo-http.forgejo.svc.cluster.local:80), samesleep 2workaround, same shallow clone via--depth 1. This replaces the default plugin-git clone that used the external TLS URL with a 66% failure rate. The internal HTTP URL avoids the TLS/DNS instability entirely.The
sleep 2for kube-router ipset sync is a documented workaround for issue #127. It is the correct mitigation until the underlying kube-router issue is resolved.-lock=falseadditions (lines 145, 154):Both
tofu applyinvocations now include-lock=false, making the apply step consistent with the plan step (line 76) which already had this flag. This follows thefeedback_tofu_lock_false.mdbehavioral rule: agent prompts with tofu plan/apply MUST include-lock=falsebecause state locks block CI.Observation on force-unlock logic: With
-lock=falseon the initial apply (line 145), OpenTofu bypasses lock acquisition entirely. This means the "state is already locked" error should never trigger from the initial apply attempt -- making the force-unlock + retry block (lines 148-161) effectively dead code. The logic is harmless and defensive, but logically unreachable when-lock=falseis active. See nit below.BLOCKERS
None.
from_secret:references).NITS
-lock=falseon the initial apply, OpenTofu will not report "the state is already locked" -- it simply ignores locks. The entireif/grep/force-unlock/retryblock is now unreachable. Consider either (a) removing the dead code for clarity, or (b) removing-lock=falsefrom the initial apply and keeping the defensive logic as the fallback mechanism. Option (b) is arguably better: try with locking first, fall back to force-unlock if stale. Either way, this is non-blocking -- the current state is safe and functional.SOP COMPLIANCE
133-fix-ci-clone-alpine-gitreferences #133)plan-pal-e-platform)from_secret:)PROCESS OBSERVATIONS
-lock=falseflag is already used in the plan step.sleep 2workaround from #127. It also supersedes the approaches from PRs #118 and #128, consolidating CI clone reliability into a single proven pattern.VERDICT: APPROVED