Add signed RKE2 infrastructure delivery and scoped credentials #102
No reviewers
Labels
No labels
app-migration
bug
ci-cd
cluster
Documentation
duplicate
enhancement
gpu
invalid
networking
question
security
Storage
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Homelab/workflows!102
Loading…
Reference in a new issue
No description provided.
Delete branch "kiyi/rke2-infrastructure-delivery"
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?
Platform RKE2 delivery needs cluster-scoped bootstrap resources and central UDS policy exemptions that the application adapter deliberately rejects. This adds the reusable implementation needed by platform PR #128, while Core 1.14.1 preparation remains in that same platform PR.
Changes:
rke2-delivery.yml; add actual platform source/caller/Core validation throughvalidate-rke2.yml. Both compile into frozenstable-v1adapters. Existing workflows, job IDs and required check names stay unchanged.Validation:
Review and release order: merge this library change after hosted checks, publish an unused numbered release, and promote
stable-v1with the existing protected channel workflow before merging/dispatching platform PR #128. Start fresh owning workflow runs after promotion. This PR does not release/promote the library, configure OpenBao, issue live credentials, build production bundles or upgrade the cluster. Hosted build/security scans, operator credential bootstrap and live acceptance remain pending.Reusable contract and remaining acceptance.
Source review of
27d84b9207: inspected the reusable delivery/validation workflows, complete RKE2 delivery and identity paths, scoped credential contracts, admission CEL and its allow/deny tests, signed-release/image-rescan flow, rollout/pause guards, and current platform #128 caller/manifests. The three-stage bootstrap/controller/Plans separation keeps cluster-scoped identity and central UDS exemption delivery out of the application adapter; source guards constrain named resources and require protected main, exact signed artifacts, current image decisions, explicit activation acceptance, and live postflight verification. The platform render uses the existing system-upgrade namespace and distinct central uds-policy-exemptions namespace, with no new gateway/route or ghost-bundle requirement. No source-blocking finding in the inspected head. This is source approval only: Workflow acceptance has passed, but Library checks and Repository security remain pending at this SHA. Release promotion, image/security decisions, live OpenBao/admission readiness, cluster acceptance, and platform #128's failed validation are separate gates; do not merge or deploy on this approval alone.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
kiyi referenced this pull request from Homelab/Documentation2026-10-14 20:33:43 -05:00
Exact-head CI follow-up for kiyi at
27d84b9207: Library checks run 694 (API 7254), job 9113, reached test execution and failed. The authenticated bounded diagnostics show a test/subtest associated withworkflow='rke2-delivery.yml'ending in FAIL and another ERROR, but truncate/redact their identities and assertions. Please inspect the full job log/traceback and reproduce the failing unit/contract tests in the pinned Linux environment; determine whether the new reusable adapter and its frozen-channel contract disagree before changing code. The ClamAV/Trivyfailed or interruptedlines are in test progress output and alone do not establish the job's cause. Separately, Repository security run 693 (API 7253), job 9112, failed with 0 blocking findings and 1 scanner error: fetched Semgrep rule bytes differ from the pinnedrules.lock.jsondigest. Review the changed upstream rule and update the pin only if its contents are acceptable; retain the scanner gate and require an error-free new exact-head security decision. Workflow acceptance run 692 passed. My APPROVED review #1187 already covers source at this same SHA; it does not clear either failed required check, authorize merge/release/cluster operations, or attest that the incomplete scan passed. No UDS gateway/route change is indicated by these CI diagnostics.New commits pushed, approval review dismissed automatically according to repository settings
Source follow-up at
7a2fac5e0d: re-read the authenticated PR, previous approval and failed-check follow-up, changed-file inventory and current reusable RKE2 workflow, scoped identity/admission and delivery source. The new revision retains the prior reviewed three-stage UDS boundary (bootstrap versus controller/Plans, central exemption ownership, no new gateway/route), protected owner/source guards, signed artifact and image-rescan path, and explicit activation checks. The revised contract tests include the new reusable workflow in the frozen-channel and static-runner cases; the Semgrep canonical rules lock changes its digest while preserving the rule count and existing scanner path. No source-blocking regression identified in this head. This is source approval, NOT a claim that the registry metadata comparison or hosted scanner passed: Workflow acceptance, Repository security and Library checks are pending at this SHA. Require their exact-head success, particularly error-free Semgrep rule verification and the previously failing RKE2 workflow tests, before merge/release. Live OpenBao/admission/UDS deployment acceptance and platform #128 remain separate gates. No merge or deployment authorized.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
Exact-head security follow-up for kiyi: Homelab/workflows run 699 (API 7266), job 9127, reached the scan gate and failed: 1 blocking finding, 4 mitigated, 0 scanner errors. This is different from the prior Semgrep checksum failure (run 693 had 0 blocking, 1 scanner error); the updated 225-rule canonical lock is present at this head, but this log excerpt alone does not identify the scanner, rule, file or severity of the new blocker. Please inspect the retained
decision.json,findings.csvand summary for run 699; report the exact blocking finding(s), determine whether they arise in this PR's source or elsewhere, and fix any real issue without skipping the scan or extending mitigations. If an evidence-backed false positive, document narrowly scoped review rather than waiving an unknown finding. Library checks run 700 remain pending; Workflow acceptance run 698 passed. My existing APPROVED review #1193 at this SHA is a source-only review, not a security decision; the failed required gate blocks merge/release. No UDS gateway/route/packaging conclusion changes from this diagnostic, and no deployment or merge is authorized.New commits pushed, approval review dismissed automatically according to repository settings
Source review of
20fd2a2662: re-read authenticated live head, earlier human reviews and security follow-up, all changed-file paths, the reusable delivery/validation workflows, RKE2 delivery/identity/admission/source contracts, library-owned credential probes, CEL allow/deny tests, and signed-release/rollout tests. The bootstrap, controller and Plans authorities remain separated; central UDS Exemptions are explicitly scoped to uds-policy-exemptions while release storage uses system-upgrade, without introducing a gateway, route, or duplicate controller. The reviewed source requires protected owner/main, verifies exact signed receipts before archive use, rescans images before credential issuance, checks admission and scoped credentials, and requires explicit activation and postflight checks. I identified no source-blocking defect in this head. This is a SOURCE approval only, not a security finding disposition or proof of live deployment behavior. The preceding head's security run 699 failed with one unidentified blocking finding; its retained decision/finding details were not available in this review, so do not consider that finding resolved without investigating it and a successful, error-free decision at this exact SHA. Workflow acceptance, Repository security, and Library checks are currently waiting/pending at this SHA; required checks must pass before merge/release. Pinned UDS runtime admission, actual OpenBao/cluster readiness, and platform #128 delivery acceptance remain separate gates. No merge, publication, policy waiver, or deployment authorized.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
New commits pushed, approval review dismissed automatically according to repository settings
Source review of the authenticated head
3cdde10703: inspected the changed-file inventory (Forgejo supplied no patch hunks), current RKE2 reusable delivery/validation workflows, complete delivery paths, identity/RBAC and CEL admission, caller/source contracts, signed-receipt and rescan gates, rollout/pause behavior and relevant tests. The privileged bootstrap, controller and Plan accounts remain separate; the generated policy component targets the existing central uds-policy-exemptions namespace while Helm release storage remains in system-upgrade. No new gateway, route, controller or ghost bundle is requested. Protected-main and exact-source guards, signed-file verification before archive use, image rescan before credential issuance, explicit activation confirmations, and postflight checks remain present. I did not identify a source-blocking defect in the inspected RKE2 paths. This is SOURCE approval only. At submission the exact-head Workflow acceptance (719), Repository security (720), Security image compatibility (721), and Library checks (722) are pending/waiting, not passed. The older run 699 reported one blocking security finding without an accessible finding identity; do not treat that prior finding as resolved until its decision is identified and a clean, error-free security decision passes at this exact SHA. The pinned UDS runtime/admission behavior, actual rendered platform #128 resources, OpenBao and live cluster acceptance are not established by these source reads and remain separate release/deployment gates. Do not merge, release/promote or deploy on this approval alone.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
Exact-head CI follow-up for kiyi: Library checks UI run 722 (API run 7301), executing
testsjob 9180, failed after checkout while emitting unit/contract-test progress. The authenticated bounded log diagnostics truncate before the first failing assertion/traceback or final failing step, so the specific cause remains unverified. Thefailed or interruptedClamAV/Trivy/manifest lines in this excerpt are expected-looking test-progress/negative-path output, not evidence of an actual malware or image scan failure; please inspect the complete job log for the first FAIL/ERROR and reproduce the implicated step/test on the owning Linux runner before proposing the narrow correction. The test-library workflow subsequently includes UDS packaging, YAML/shell, CEL, Kubernetes, source-scan and real Node setup/cache checks; this excerpt cannot establish which gate failed. Workflow acceptance 719, Repository security 720, and image compatibility 721 report success at this SHA, but Library checks remain red and block merge. My existing APPROVED review #1206 already covers this exact source SHA and is not CI acceptance; preserve required gates, do not merge/release/promote/deploy on this failed check. Live UDS admission/platform acceptance remains separate.Review follow-through for the runner/token/report contracts and the prior run 699 finding:
f36288dfixes the exact two-pool RKE2 runner contract, includes step-level token bindings in the consumer inventory, and retains findings.csv in both RKE2 report artifacts. Existing workflow/job/status names are unchanged.20fd2a2replaces redirect-capable fetching with an explicit TLS-verifying HTTPS-only opener and the official dl.google.com Go artifact URL; the pinned checksum is unchanged. Tests reject redirects and checksum failures. No mitigation or scanner bypass was added.3cdde107integrates the release batch, retaining both RKE2 and package-image report inventories, Node cache acceptance and the isolated Seaweed bootstrap. The final combined source completed 113 focused tests with eight Windows symlink skips; staged Gitleaks and diff checks passed. Exact-head hosted checks remain required; source validation does not establish live admission or deployment acceptance.Merge #103 → #101 → #99 → #100 → #102 after approvals/checks, then publish one numbered release and promote stable-v1 once. Owner priority confirmed 2026-10-15: RKE2 and UDS Core first; finish SeaweedFS integration before Harbor; other apps afterward. Nothing has been merged, released or deployed by this work.
New commits pushed, approval review dismissed automatically according to repository settings
Follow-through for review #6560: I inspected the complete run 722 unit-step log. Its four failures and one error all originate in tests/test_payload_source_gate.py because pipeline/container.py rejected ComfyUI’s generated context before the source gate. Commit
35f595fmoves selected-folder confinement to the command-line boundary; the internal fixed-recipe payload builder still scans its original complete checkout/history and binds that decision in the signed receipt. The new negative CLI test rejects unrelated contexts before any output/build.5299688includes this fix in the combined RKE2 release branch. All 127 focused local cases completed successfully with eight Windows symlink skips, including the three native-Gitleaks payload regressions and the selected-context test. No local Docker build, real credential request or deployment occurred. The full Linux Library checks, actual CEL compilation, real Node setup and exact-head security remain hosted gates; the prior failed run is superseded, not green. Existing status names and security policy are preserved.Source review of live head
529968874b: inspected authenticated changed-file inventory, earlier reviews and kiyi's follow-up, current RKE2 delivery/validation workflow and source/identity/admission contracts, signed receipt and image rescan, Node cache/validation and package-image scan gates, plus the new container build-context CLI boundary and its negative test. The CLI now rejects a context outside its scanned checkout before building; the builder still scans the complete selected checkout and binds the source decision in the image evidence. Scoped bootstrap/controller/Plan accounts, central uds-policy-exemptions resources and distinct system-upgrade workloads remain separated; no new gateway/route or duplicate controller is requested. I found no source-blocking regression in these inspected paths. This is source approval only: the preceding head's Library checks run 722 failed in payload-source-gate tests; kiyi attributes those failures to the corrected context boundary, but that correction is NOT established by hosted checks yet. At review the current-head Workflow acceptance (API 7321), Repository security (7322), image compatibility (7323) and Library checks (7324) are waiting/pending. Require exact-head successful checks and error-free security decisions before merge/release. Pinned UDS 1.14.1 live admission, rendered platform #128 resources, OpenBao credential issuance and cluster acceptance are not proven by these source reads and remain separate deployment gates. No merge, promotion, policy waiver or deployment authorized.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
New commits pushed, approval review dismissed automatically according to repository settings
Source review of live head
b955d25b59: re-read authenticated changed-file inventory and current reusable RKE2 delivery/validation, scoped identity and admission CEL, signed-receipt verification, image rescan, rollout/pause guards and tests, plus the integrated Semgrep download recovery and Node/package-image gates. The new download path retries only bounded transient transport/HTTP failures, verifies the complete locked rules before execution, rejects certificate/content drift, and retains scanner errors as blocking decisions; regression tests cover resets, transient HTTP, exhausted retries and rejected rule changes. Protected-main checks, separate bootstrap/controller/Plans accounts, scoped central uds-policy-exemptions ownership and system-upgrade release storage remain in place. No new gateway/route or duplicate controller; no ghost bundle requested. I identified no source-blocking finding in the inspected head. This is SOURCE approval only: Workflow acceptance run 7335, Repository security 7336 and Library checks 7337 are pending/waiting at this SHA, NOT scan or test acceptance. Require exact-head success, including error-free security decision and actual Linux library/admission tests, before merge/release. Pinned UDS 1.14.1 live admission, actual platform #128 render/credentials and cluster acceptance remain separate deployment gates; no merge, promotion, policy waiver or deployment authorized.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
Run 697 batch recovery is included in
b955d25, the latest combined batch head. See the diagnosis and fix in #101: a passing clean source scan was followed by a reset Semgrep download. The shared downloader now uses at most three attempts with one/two-second backoff for temporary transport failures, while TLS, rule checksums and fail-closed scanner reports remain enforced.Validation on
b955d25completed 177 local cases with eight Windows symlink skips, covering the new recovery/failure cases, native Gitleaks payload regressions, RKE2 admission transport guards, Terraform, Node, bundle, base-image and channel contracts. Staged Gitleaks and diff checks passed, and merge simulations remain clean. Hosted current-head Linux/full source-scan checks and approvals remain required; no scan/status names changed. Merge #101 → #99 → #100 → #102 and make one release for the remaining batch. Cluster upgrades still precede SeaweedFS integration, which must finish before Harbor.Source review of the authenticated live head
817697f291: re-read the open PR and prior human reviews, all changed-file paths (Forgejo omitted patch hunks), current reusable RKE2 delivery and validation workflows, signed receipt/fetch and image-rescan paths, scoped identity/RBAC and admission CEL with allow/deny tests, Plan activation/postflight and pause guards, plus the combined Node and package-image security adapters. The source retains protected owner/main and exact-source checks, verifies signatures before archive download, separates privileged bootstrap from routine controller/Plan credentials, and targets central uds-policy-exemptions separately from system-upgrade release storage. No new gateway/route or duplicate controller is introduced; no ghost routing bundle is needed. I found no source-blocking issue in the inspected paths. This is source approval only. Exact-head Workflow acceptance (API 7356) and Repository security (7357) are running; Library checks (7358) are waiting. No scan, CEL execution, package build, rendered platform #128 resources, live UDS 1.14.1 admission, OpenBao issuance, or cluster acceptance is established by this approval. Require successful error-free exact-head checks and separate pinned UDS/render and operational acceptance before merge/release/deploy. No merge, promotion, waiver or deployment authorized.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.
Resolved the test_reporting.py and test_workflow_channel.py merge conflicts against current main in
7b296f9520. The merge retains both RKE2/package-image reporting inventories and the dynamic reusable-workflow inventory with explicit RKE2 assertions. Owner branch updates and the merged #100 work are preserved.Validation: the full resulting Git tree is identical to the previously passing
817697fhead. All 20 focused reporting, Forgejo-contract and frozen-channel checks passed; no unmerged files remain, diff checks passed and native Gitleaks 8.30.1 passed. No workflow/job/status names or source behavior changed. Forgejo now shows no conflict banner. Fresh checks 780–782 are queued and must pass before merge.Source follow-up for exact head
7b296f9520after the main-branch merge: inspected the live changed-file inventory, previously submitted human reviews and current RKE2 reusable delivery/validation workflows, delivery, identity, admission, source/caller contracts, and reporting/channel/Forgejo contract tests at this SHA. The conflict-resolution tests retain both RKE2 and package-image report inventory and frozen-channel assertions; the delivery source still requires protected owner/main, exact signed release verification before archive use, image rescans before scoped credential issuance, dedicated bootstrap/controller/Plans authority, explicit activation acceptance, and postflight checks. UDS policy Exemptions target the central uds-policy-exemptions namespace while release storage/workloads remain in system-upgrade; no new gateway, route, or duplicate controller is introduced. I find no source-blocking regression in the inspected head. Forgejo supplied no patch hunks, and I did not independently prove the author's claim that this merge tree is byte-identical to817697f. This is SOURCE approval only: current-head Workflow acceptance (780), Repository security (781), and Library checks (782) remain pending, not passing. Require exact-head successful/error-free checks and separate platform #128 render, pinned UDS admission, OpenBao and live cluster acceptance before merge/release/deployment. No merge, publication, gate waiver or deployment authorized.CI at submission: pending. This is a source-review approval, not a scan verdict; required checks still block merge.