chore: add reproducible GitLab Runner VM setup with OCI CA hook - #5951
Conversation
PR Summary by QodoAdd reproducible GitLab Runner VM provisioning with OCI CA injection hook
AI Description
Diagram
High-Level Assessment
Files changed (7)
|
|
🤖 Finished Review · ✅ Success · Started 7:37 PM UTC · Completed 7:53 PM UTC |
Code Review by Qodo
1.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ReviewFindingsLow
Previous runReviewFindingsMedium
Low
Next steps:
Previous run (2)ReviewFindingsCritical
Low
Next steps:
Previous run (3)ReviewFindingsMedium
Low
Previous run (4)ReviewFindingsMedium
Low
Previous run (5)ReviewFindingsMedium
Low
Previous run (6)ReviewFindingsMedium
Low
Previous run (7)ReviewFindingsMedium
Low
Previous run (8)ReviewFindingsMedium
Low
Previous run (9)ReviewFindingsMedium
Low
Previous run (10)ReviewFindingsMedium
Low
|
waynesun09
left a comment
There was a problem hiding this comment.
Additional review findings (security-focused, deduplicated against existing bot review comments on this PR).
e7dbc31 to
ec18b60
Compare
|
🤖 Finished Review · ✅ Success · Started 9:20 PM UTC · Completed 9:36 PM UTC |
ec18b60 to
37c08ad
Compare
|
🤖 Finished Review · ✅ Success · Started 9:43 PM UTC · Completed 10:00 PM UTC |
37c08ad to
665a8b1
Compare
|
🤖 Finished Review · ✅ Success · Started 10:18 PM UTC · Completed 10:36 PM UTC |
665a8b1 to
d723c2d
Compare
|
🤖 Finished Review · ❌ Failure · Started 10:39 PM UTC · Completed 10:57 PM UTC |
d723c2d to
ca5f6e6
Compare
left a comment
There was a problem hiding this comment.
Review-only pass focused on two issues in the GitLab Runner VM setup: a KubeVirt networking gap that exposes the OpenShell gateway wider than the accepted mitigation assumed, and a CA-bundle path-selection bug that silently no-ops on RHEL/UBI-family images.
One additional finding (the install_ca_hook() comment still referencing rustls-native-certs) was already raised on this exact line in an existing thread, so it was skipped here as a duplicate.
|
🤖 Finished Review · ✅ Success · Started 9:56 PM UTC · Completed 10:17 PM UTC Commit: |
|
🤖 Finished Review · ✅ Success · Started 10:21 PM UTC · Completed 10:36 PM UTC Commit: |
left a comment
There was a problem hiding this comment.
Review sweep: 5 findings verified against the current head commit (370e584) and deduplicated against the extensive existing review history on this PR (800+ prior review comments across bot and human reviewers). These are distinct, unaddressed issues not previously raised.
|
🤖 Finished Review · ❌ Failure · Started 5:14 PM UTC · Completed 5:31 PM UTC Commit: |
commented
Aug 17, 2026
|
🤖 Finished Review · ✅ Success · Started 5:39 PM UTC · Completed 5:59 PM UTC Commit: |
commented
Aug 17, 2026
|
🤖 Finished Review · ✅ Success · Started 6:39 PM UTC · Completed 6:56 PM UTC Commit: |
|
🤖 Finished Review · ✅ Success · Started 7:00 PM UTC · Completed 7:19 PM UTC Commit: |
|
🤖 Review · Commit: |
|
🤖 Finished Review · ✅ Success · Started 8:18 PM UTC · Completed 8:36 PM UTC Commit: |
left a comment
There was a problem hiding this comment.
Approving at 07ce1766.
Verified the head is byte-identical to the tree I tested locally (shellcheck clean, full pre-commit + gitlint, prepare_validation_test.sh 21/21, merge-tree clean against main), and CI is fully green — test exercises the new fixture via script-test, plus e2e, behaviour, functional-tests, test-sandbox-darwin, commit-lint, DCO.
Composite state reads coherently: your PRE_COMMIT_HOME/GOCACHE envs and the chmod 700 on /etc/gitlab-runner sit cleanly alongside the round-11–13 fixes (job identity from JOB_RESPONSE_FILE, canonicalised bind-mount validation, --env NAME forwarding, single-session .env + terminating signal traps, not_protected default with RUNNER_ACCESS_LEVEL/VM_USER overrides, seeded gateway.toml, non-fail-open gateway registration).
Two follow-ups worth a note, neither blocking:
resolve_job_idis duplicated in all three executor stages; a sharedexecutor/job_id.shwould keep future tightening from drifting (needs the copy list / manifest / preflight updated).- VM sizing (4c/14Gi) still has no measured baseline — a
podman stats/free -msample during one real agent job would settle it and whether per-container caps are needed.
Squash the two commits into one whenever you like — nothing here depends on the split.
|
🤖 Finished Review · ✅ Success · Started 8:50 PM UTC · Completed 9:09 PM UTC Commit: |
|
🤖 Review · Commit: |
|
🤖 Finished Review · ✅ Success · Started 9:17 PM UTC · Completed 9:34 PM UTC Commit: |
Adds hack/gitlab-runner-vm/ with scripts to create, configure, and delete GitLab Runner VMs on OpenShift Virtualization with Podman custom executor and OpenShell gateway integration. Includes hardened executor path handling, SHA256 verification of transferred files, preflight checks, and a validation test suite. Signed-off-by: Greg Allen <gallen@redhat.com> Signed-off-by: Claude <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 9:40 PM UTC · Completed 9:57 PM UTC Commit: |
|
🤖 Finished Retro · ✅ Success · Started 12:06 AM UTC · Completed 12:22 AM UTC Commit: |
commented
Aug 18, 2026
Retro: PR #5951 — GitLab Runner VM setup with OCI CA hookPR: #5951 — Workflow summaryThis PR added infrastructure provisioning scripts under Key finding: significant review quality gapThe review agent and human reviewer had starkly different outcomes:
The human reviewer's most impactful findings came from three capabilities the review agent lacks:
Failed runsTwo review.yml failures (runs 32049382924, 32050298888) were caused by a GitHub API 503 outage during post-review.sh. The review agent itself completed successfully in both cases. Evidence for existing issues (not filed as new proposals)
Proposals filedThree new proposals target the agents repo ( Proposals filed
|
Summary
hack/gitlab-runner-vm/with scripts to provision GitLab Runner VMs on OpenShift Virtualization:vm.yamlmanifest,setup.shfor end-to-end configuration,create-vm.sh/delete-vm.shlifecycle helpers, and Podman custom executor scripts (prepare.sh,run.sh,cleanup.sh).createRuntimehook that injects the VM's host CA trust bundle into every container's/etc/ssl/certs/ca-certificates.crtbefore PID 1 starts, so the OpenShell supervisor trusts internal CAs (e.g. corporate GitLab) without requiring a custom sandbox image.oc apply -f vm.yaml, thenREGISTRATION_TOKEN=glrt-xxx ./setup.sh— two steps to a fully working runner.Test plan
fullsend--runtime-intnamespacecurl https://gitlab.cee.redhat.com/api/v4/projectsreturns HTTP 200 from inside sandboxes on both runners🤖 Generated with Claude Code