Skip to content

Iter-6 E-03 + E-04: pin image to NAS, add PSA-restricted security context (with documented s6 exception)#1

Merged
kamir merged 4 commits into
mainfrom
iter-6/E-03-E-04-combined
May 23, 2026
Merged

Iter-6 E-03 + E-04: pin image to NAS, add PSA-restricted security context (with documented s6 exception)#1
kamir merged 4 commits into
mainfrom
iter-6/E-03-E-04-combined

Conversation

@kamir

@kamir kamir commented May 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • E-03 (audit F-1): image.tag was latest. Pin to 2026.05-rc1 (only existing NAS tag) and repath repository from ghcr.io/kafclaw/gitclaw to 192.168.0.131:5100/scalytics/gitclaw. Public ghcr.io publishing happens in Iter-8.
  • E-04 (audit F-4): Add podSecurityContext + containerSecurityContext keys with a documented exception: the upstream Gitea image's s6-svscan needs UID 0 to open /etc/s6/.s6-svscan/lock before dropping privileges via s6-setuidgid. This blocks PSA-restricted admission. Operators needing PSA-restricted must (a) deploy GitClaw to a separate namespace at baseline level, (b) replace the Gitea image, or (c) disable the chart. The constraint is named in the values.yaml comment with the relevant past incident (PLAN-01 P27).

Tracking

Test plan

  • helm template gitclaw charts/gitclaw renders the new securityContext block on the main container (block is empty by default — values comment explains why)
  • helm template gitclaw charts/gitclaw renders the new image.repository: 192.168.0.131:5100/scalytics/gitclaw and image.tag: 2026.05-rc1
  • CodeQL gate clears (CI handles)

🤖 Generated with Claude Code

kamir and others added 4 commits May 20, 2026 18:06
Audit F-1: image.tag was `latest`. Pin to 2026.05-rc1 (only NAS
tag; no v-semver alias yet) and repath to NAS. Iter-8 flips back
to ghcr.io.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The Gitea image GitClaw wraps uses s6-svscan, which requires
UID 0 at start to open /etc/s6/.s6-svscan/lock; it drops to UID 1000
via s6-setuidgid before running gitea. This blocks PSA-restricted
admission for this chart.

Documented as the chart's canonical exception (PLAN-06 E-04
/ audit F-4): values.yaml comment names the constraint and lists
the three operator options (separate baseline namespace / swap
image / disable chart). The container-level 'containerSecurityContext'
key is added (empty default) so consumers can layer in overrides
without changing the template.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ing)

The SAO umbrella's bp-001 Chart.yaml depends on gitclaw 0.1.2 (the
prior vendored version). Bumping to 0.1.3 so the SAO bundle can pin
to the version that carries the iter-6 fixes (NAS-pinned image,
PSA security-context block with documented s6 exception). SAO will
update its dependency line to 0.1.3 in the same PR cycle.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…0.1.3->0.1.4

The chart's deployment.yaml mounts /data via persistentVolumeClaim when
.Values.persistence.enabled is true, but the chart shipped no PVC
manifest of its own. helm install + helm upgrade then fail with
'persistentvolumeclaim not found' on the gitclaw Pod. Re-add the PVC
template (originally landed as PLAN-01 P27 but apparently lost in a
rebase / squash somewhere) so the chart is self-contained again.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@kamir kamir merged commit 7d648b7 into main May 23, 2026
22 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant