⚡ Sangsakala Proxy 🏠 Home
Skip to content

feat(staging): wire protected M5 service releases - #86

Merged
hxj04121-lab merged 10 commits into
mainfrom
codex/m5-staging-delivery-20261018
Oct 20, 2026
Merged

hxj04121-lab merged 10 commits into
mainfrom
codex/m5-staging-delivery-20261018

Conversation

@SHJ-SHJ0128

@SHJ-SHJ0128 SHJ-SHJ0128 commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds the protected, main-only Staging release workflow for specification, formulation, compliance, and label-workflow, pinned to the previously verified immutable GHCR digests.

  • Repairs the M2 NetworkPolicy request: all four business services and the optional shared Label Workflow overlay select Operator Pods with app: keycloak on TCP/8080. Render assertions cover all affected workloads; default-deny and existing isolation remain.
  • Fixes the Compliance reusable-workflow caller permissions so the exact-head job can start. The main-only publish/deploy guards remain unchanged.
  • Keeps Dependency-Check at CVSS 7, pins Netty 4.2.19.Final, and suppresses only the exact Testcontainers MySQL 2.0.5 / CVE-2017-15945 false CPE match. Testcontainers' required ZeroDep transport is retained; no module is skipped and no finding in the shaded docker-java HttpComponents is suppressed. The upstream docker-java remediation is tracked in PR #2669.

Exact-head validation

Current head: d905a7a42f525106ec1169aab52c85dce4d6f6a1.

Operational gates

No deployment, Terraform Plan/Apply, or Kubernetes write was run. No current S3-backed Plan or live cluster acceptance is claimed. M2 approved the code at the current head; independent M1, M3, and M4 reviews are still requested. Before any protected deployment, verify current M1 Environment approval, staging configuration/Secrets, and owner-approved cost/window. The protected Plan and Compliance publish/deploy jobs remain skipped, so this PR does not evidence staging acceptance. Do not merge automatically.

@rcncai

rcncai commented Oct 17, 2026

Copy link
Copy Markdown
Collaborator

The exact-head Compliance image and kind readiness check (run 39057023208) still fails at startup. The CI, budget regression, Terraform, M5 offline, and Helm checks pass, but this failure is the reusable-workflow caller-permissions issue being fixed in #77. Please rerun this check after #77 merges; keep #86 unmerged until it passes.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 review at exact head 72ce31b requests changes. This release deploys the four business charts, but their workload NetworkPolicy values still select Keycloak with app.kubernetes.io/name: keycloak (for example deploy/helm/values/label-workflow.yaml; the same peer appears in specification.yaml, formulation.yaml, and compliance.yaml). The Operator-managed Keycloak selector used in this PR is app: keycloak (render-server.py and the updated platform-policy assertions). With default-deny egress, the business pods cannot reach Keycloak JWKS, so Label JWT validation and authenticated business calls will fail. Please change the workload peers (and the optional staging-shared-label-workflow overlay) to the Operator label and add a Helm-rendered assertion covering Keycloak egress for all affected workloads. Also, PR #86 exact-head run 39057023208 previously failed at reusable-workflow startup; #77 now has the permissions fix but its exact-head checks are still running, so rerun #86 after that change is on main before merge. Terraform plan is skipped and the PR body says live Secrets/config and M1 staging approval are still missing; no live acceptance is evidenced.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 review at exact head 72ce31b requests changes. This release deploys the four business charts, but their workload NetworkPolicy values still select Keycloak with app.kubernetes.io/name: keycloak (for example deploy/helm/values/label-workflow.yaml; the same peer appears in specification.yaml, formulation.yaml, and compliance.yaml). The Operator-managed Keycloak selector used in this PR is app: keycloak (render-server.py and the updated platform-policy assertions). With default-deny egress, the business pods cannot reach Keycloak JWKS, so Label JWT validation and authenticated business calls will fail. Please change the workload peers (and the optional staging-shared-label-workflow overlay) to the Operator label and add a Helm-rendered assertion covering Keycloak egress for all affected workloads. Also, PR #86 exact-head run 39057023208 previously failed at reusable-workflow startup; #77 now has the permissions fix but its exact-head checks are still running, so rerun #86 after that change is on main before merge. Terraform plan is skipped and the PR body says live Secrets/config and M1 staging approval are still missing; no live acceptance is evidenced.

@SHJ-SHJ0128
SHJ-SHJ0128 requested a review from rcncai October 17, 2026 19:11
@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

M2: I addressed the requested Keycloak NetworkPolicy selector changes on exact head 513efc945f96c114bb953759b9377d771346a865. The four service policies and shared label-workflow overlay now select app: keycloak on TCP/8080, and the Helm-rendered assertions cover the affected workloads while retaining default-deny isolation. Exact-head Helm, Compliance checks, and the main CI jobs pass; compliance / security is still running and Terraform Plan is skipped. Please re-review this head when convenient. No live deployment is claimed.

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

M2: I fixed the requested Keycloak selectors and Helm-render assertions on 513efc9; I also fixed the newly surfaced Dependency-Check blocker on exact head 967f0f06963ecc5d1d58e82e5425386d4affa5dc without lowering the CVSS threshold. The exact-head checks have restarted and are pending. Please independently re-review this current head; Terraform Plan remains skipped and no live deployment is claimed.

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

M2 re-review request for exact head 288bc7bcb1c94b2efd9a3f3f5651ad81bd418571:

  • The four business-service NetworkPolicies and the shared Label Workflow overlay use the actual Operator Pod selector app: keycloak on TCP/8080; Helm render assertions cover all affected workloads while retaining default-deny.
  • I reverted the Testcontainers ZeroDep exclusion after exact-head CI showed that Testcontainers loads its builder directly. The dependency remains present; no real docker-java CVE is suppressed and no security module is skipped.
  • The Helm suite now asserts the env -u AVAILABLE_CREDIT_USD budget call still supplies approved spend and --require-gate.

Please review the NetworkPolicy changes at this head. Exact-head CI is still running, so this is not a merge request; any real Dependency-Check finding remains a blocker.

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

M2 update for exact head 288bc7bcb1c94b2efd9a3f3f5651ad81bd418571:

  • The four service NetworkPolicies and shared Label Workflow overlay use app: keycloak on TCP/8080; Helm render assertions cover the affected workloads and preserve default-deny.
  • Exact-head Helm (52), backend, platform, offline, budget, Terraform validation, and other checks passed. compliance / checks passed with no startup failure.
  • compliance / security failed after 36m32s on shaded HttpClient 5.5.1 / CVE-2026-71290 (9.1) and HttpCore 5.3.6 / CVE-2026-54399 and CVE-2026-54428 (7.5). Those findings were not suppressed or skipped and remain a merge blocker. Terraform Plan was skipped.

Please independently re-review the NetworkPolicy fix at this exact head. The review request remains open; this comment does not request merging or approval of the security findings.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 re-review on exact head 288bc7bcb1c94b2efd9a3f3f5651ad81bd418571 (CI run 39065731400): the app: keycloak NetworkPolicy selector fix and render assertions are present. The unresolved blocker is the enabled OWASP Dependency-Check gate: it fails at CVSS >= 7 for HttpClient 5.5.1 (CVE-2026-71290, CVSS 9.1) and HttpCore 5.3.6 (CVE-2026-54399, CVE-2026-54428, CVSS 7.5), bundled under docker-java-transport-zerodep:3.7.1. Please upgrade/replace the affected dependency path so the scan passes without lowering its threshold or skipping/suppressing these findings, then rerun the exact-head security workflow. compliance / kind was skipped as a consequence and must pass after security is green. Terraform Plan is also skipped; no state-backed plan or live staging validation is evidenced. I cannot approve this head yet.

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

Security gate evidence (exact head 82bee4e)

I merged the latest origin/main (644fbf9), retaining the PR #77 Compliance workflow permission/readiness/log-safety changes. The Compliance Docker-runner checks on this exact head passed, including the JVM integration-test job: run 39097297653.

The current Maven dependency tree confirms:
spring-boot-testcontainers:4.1.1 → testcontainers:2.0.5 → docker-java-transport-zerodep:3.7.1.
That zerodep JAR shades the flagged HttpClient/HttpCore classes. They are test scope and are absent from the built Compliance executable JAR, but OWASP Dependency-Check scans this test-support module, so the finding remains a real CI gate.

Replacing zerodep with docker-java's separate HttpClient5 artifact is not a drop-in fix: Testcontainers 2.0.5 bytecode constructs ZerodepDockerHttpClient$Builder for its httpclient5 transport path. The currently open upstream docker-java PR #2669 is not merged/released and changes only docker-java-transport-httpclient5/pom.xml; it does not rebuild the shaded zerodep artifact. Dependency management on external, unshaded HttpClient therefore cannot prove this finding is fixed.

The exact-head OWASP job is still running: compliance / security. No pass or CVE-clearance claim is being made while it is in progress. No threshold reduction, new suppression, or Dependency-Check skip was added.

M2/M1: please advise whether to hold this PR pending an upstream zerodep/Testcontainers release that rebuilds the shaded transport, or authorize a separately reviewed compatibility implementation/fork with Docker integration and Dependency-Check evidence. Until that exists, the security gate is unresolved and PR #86 should not be merged.

@SHJ-SHJ0128
SHJ-SHJ0128 requested a review from rcncai October 18, 2026 05:08
@rcncai

rcncai commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the exact-head evidence. M2 recommendation: hold #86; the exact-head Dependency-Check run failed, so the security gate is unresolved. I cannot authorize a local compatibility fork in this review. Please keep the PR blocked until a patched/rebuilt ZeroDep artifact is available, or submit a separately reviewed compatibility change with Docker integration tests and a passing exact-head Dependency-Check report. Do not merge or suppress these findings.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 re-review on exact head 82bee4e7771278b94c2ab2bbe060b48fd6f6c2ef (security run 39097297653): the dependency scan is still failing. It reports shaded HttpClient 5.5.1 (CVE-2026-71290, CVE-2026-64607) and HttpCore 5.3.6 (CVE-2026-54399, CVE-2026-54428) inside docker-java-transport-zerodep:3.7.1; the gate is configured to fail at CVSS >= 7. compliance / kind and the protected Terraform Plan are skipped as a result/configuration. I agree this should stay on hold until a patched/rebuilt ZeroDep/Testcontainers artifact is available or a separate compatibility implementation is independently reviewed with Docker integration and a passing exact-head scan. I do not authorize a local compatibility fork in this PR. Do not suppress the findings, skip the security module, or merge this head.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 review of exact head 82bee4e7771278b94c2ab2bbe060b48fd6f6c2ef (run 39097297653): still blocked. The current OWASP Dependency-Check job fails on the shaded Testcontainers docker-java ZeroDep dependency: HttpClient 5.5.1 reports CVE-2026-71290 and CVE-2026-64607; HttpCore 5.3.6 reports CVE-2026-54399 and CVE-2026-54428. The gate remains at CVSS >= 7 with no new suppression/skip, and compliance / kind plus Terraform plan are skipped. Please hold until a patched/rebuilt ZeroDep artifact is available, or submit the separately reviewed compatibility change with Docker integration and a passing exact-head scan that you proposed. This PR is not approved for merge or deployment.

@rcncai

rcncai commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

M2 synced this branch with latest main after #88 merged (ordinary merge, no history rewrite). The merge preserved #88's tested starter-test transport/POM and restored NVD-key/cache behavior in the OWASP workflow; the now-obsolete testcontainers-mysql false-positive suppression was removed. New exact-head CI is running at 5708d6c. Local Maven starter-test validation could not run here because the installed JDK rejects Java release 21; I will use the exact-head CI result for the review gate. No AWS Plan/Apply or staging action was performed.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review at exact head 5708d6c: the dependency scan and main CI now pass, but run 39128853263 fails in compliance / kind. Helm waited 5 minutes while Deployment/compliance/compliance-compliance stayed Available: 0/1, then timed out. Please identify and fix the pod-readiness cause, preserve safe pod-event/log evidence on failure, and rerun this exact-head check successfully. Terraform Plan and deployment remain skipped, so there is no staging acceptance yet.

@rcncai

rcncai commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

Fixed the failed compliance kind readiness check at 571b4d0. The pod was ImagePullBackOff because the service values pinned a GHCR digest, which overrode the local image that the kind job had built and loaded; the Helm invocation now clears image.digest so it uses the loaded local tag. This is CI-only verification; the exact new head is awaiting rerun.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review at exact head 571b4d0 (Compliance run 39142036306): the new --set-string image.digest= override is present, but compliance/kind still times out after five minutes with Deployment/compliance/compliance-compliance at Available: 0/1. The Capture safe kind readiness diagnostics step reports 0s and exposes no pod events, container logs, or artifact, so the readiness cause cannot be verified. Please capture sanitized pod status/events/logs on failure and rerun this exact head successfully. Main CI and Compliance security pass, but publish/deploy and Terraform Plan remain skipped; there is no deployment or staging acceptance.

@rcncai

rcncai commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

The rerun on 571b4d0 confirmed the local image fix: the pod now resolves local/compliance:, but readiness then exposed the next missing kind fixture, compliance-rabbitmq-user-credentials. Added a namespace-local dummy credential Secret to deploy/kind/compliance-dependencies.yaml at d905a7a; YAML parses and git diff --check passes. The new exact-head CI is running.

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 re-review at exact head d905a7a: the CI-only, namespace-scoped RabbitMQ Secret fixture uses dummy kind-only credentials and resolves the Compliance kind startup failure. The exact-head main CI, Compliance checks/security/kind, Terraform validation, budget regression, M5 offline validation, Compliance contracts, Helm template, staging-window estimate, and Sonar quality gate all pass. Terraform Plan and publish/deploy remain skipped by their gates; this approval covers the code only and is not staging deployment or acceptance. M1/code-owner approval is still required.

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

At exact head d905a7a42f525106ec1169aab52c85dce4d6f6a1, main CI, Compliance checks/security/kind, Terraform validation, M5 offline validation, Helm, contracts, and budget regression passed. Compliance publish/deploy and the protected Terraform Plan were skipped. M2 approved this exact head; M1/code-owner review remains outstanding. Please review the exact head and record any remaining code-owner concern. No live staging acceptance is claimed.

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

@hxj04121-lab M1 Code Owner review requested for the exact current head d905a7a42f525106ec1169aab52c85dce4d6f6a1.

M2 has approved this head. Current exact-head CI is green: main CI (including backend, frontend, containers, security, DB privileges, deployment evidence), Compliance checks/security/Kind, Terraform validation, budget regression, Helm, offline validation, and Sonar. Please review the protected M5 service-release workflow and its runtime/auth wiring, then record the Code Owner decision.

The protected Terraform Plan and Compliance publish/deploy jobs are skipped, so this is a code-review request only; no staging deployment or live acceptance is claimed.

@hxj04121-lab hxj04121-lab left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M1 Code Owner review @ d905a7a.

Overall the release path looks right and I'm happy with the design: main-only + staging environment + self-hosted VPC runner, the USD 150 cap/window/budget gates, digest verification against GHCR (the four digests match the images published by run 39050128320), helm-ownership adoption checks, server-side dry-run, --atomic, and post-deploy checks on digest/NetworkPolicy/RDS CIDR/CORS/OIDC. The IAM additions are tightly scoped (DescribeNodegroup on compliance/* only, the secret read limited to spectrace-staging/mysql/master-*), and the node-reader ClusterRole is read-only for nodes. Both have tftest assertions.

Blocking (1): port=18101 is set in the Validate step (L88), but it's only used in the Verify Pods… step. Each run: is a separate shell, so with set -u that step fails with port: unbound variable on the first kubectl port-forward. That happens after helm upgrade --atomic has already succeeded, so the releases would be live, the run red, and the verification evidence missing. I left a suggestion inline: move the assignment into the Verify step.

Non-blocking / for the release order:

  1. The CORS assertion requires the Gateway to be re-released with #72 first. The live staging preflight with Origin: https://staging.52zzx.top still returns 403, so the order has to be Gateway deploy → this workflow, otherwise it fails at the final step.
  2. The netty.version 4.2.19 bump in the poms is not in the pinned images, because those digests were built from 6de8d2b. That's fine if it's only for the fs/Testcontainers scan. If the runtime needs it, re-run publish-service-images after merge and update the digests.
  3. The restartCount==0 check is strict. A single restart while RDS/RabbitMQ warms up will fail the run even when the pod later becomes healthy. Acceptable, but worth knowing when you read a failure.

I'll approve once the port fix lands, and CI stays green.

--approved-spend-usd "$APPROVED_STAGING_SPEND_USD" --require-gate \
> "$RUNNER_TEMP/business-services-budget-gate.log"
python3 scripts/staging/verify_service_digests.py > "$RUNNER_TEMP/service-images.json"
port=18101

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assignment doesn't survive into the Verify step (separate shell). Remove it here:

Suggested change
port=18101

env:
GATEWAY_ISSUER: ${{ vars.GATEWAY_ISSUER }}
run: |
set -euo pipefail

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

…and set it where it's used (otherwise set -u aborts at "$port:8080"):

Suggested change
set -euo pipefail
set -euo pipefail
port=18101

@hxj04121-lab

Copy link
Copy Markdown
Owner

M1 upstream release readiness (Specification / Formulation / Label Workflow) for this release

Images: ready. The digests pinned in deploy/helm/values/*.yaml are the exact outputs of publish run 39050128320 (main 6de8d2bf): Trivy HIGH/CRITICAL clean, linux/amd64, anonymously pullable.

  • specification sha256:66237bde…, formulation sha256:bcc315aa…, label-workflow sha256:3683bf92….
  • Since 6de8d2bf, main has changed only test code (f82d709) and the compliance Dockerfile (36a14bd, libexpat) for these services. Specification, Formulation and Label need no republish. Compliance's pinned 94295979… predates the libexpat fix. @codingbychatgpt, please decide whether Compliance should be republished and its digest bumped before release.

Business data for a real Impact event: ready in the images. Accounts are the gap.

  • The Flyway V2__baseline_seed.sql migrations in Specification/Formulation load the soy-lecithin baseline on first start against the fresh RDS schemas:

    • spec_chocolate_v1 / mat_chocolate_base (Supplier Beta, sup_chocolate_demo);
    • prod_usda_1118468 / formula_1118468_v1 (Manufacturer North);
    • ing_soy_lecithin, rules_us_v1.

    Compliance V2 carries the matching rules. No manual data load is needed.

  • The real event comes from perf/demo/run_demo.py against the Gateway. In step 1, supplier.beta.maker releases Chocolate Base V2, which adds Soy lecithin. That produces SpecificationPublished and then expects 10 REVIEW_REQUIRED POTENTIAL findings for each of north and south (docs/swe5001/data/demo-soy-lecithin-expected.json). Steps 4–6 adopt V2, release the formula, and then run the label maker → checker → publisher steps (M4).

  • Needed before the run: the staging realm must not use the LocalDevOnly! demo passwords (see the Keycloak README). The Keycloak owner needs to set staging-only passwords for supplier.beta.maker, manufacturer.north.maker and manufacturer.north.checker, and share them privately, never in a PR or the group chat. Tokens come from PKCE sign-in, and tokens.json is never committed.

  • Replay: step 1 consumes the seed (V2 becomes the current version). A second full run needs fresh service schemas, either by re-running the protected DB bootstrap or by starting the next window. So plan one clean recorded run, after one dry run on kind.

@rcncai
rcncai requested a review from hxj04121-lab October 20, 2026 09:40
@rcncai

rcncai commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

M1's blocking shell-scope finding is fixed on exact head a68e6c404121b7a306f7ad70d846f8c9a14a0f83: port=18101 initializes inside the Verify step that uses it. The Helm regression test asserts the assignment is absent from Validate and present before $port:8080. Local Helm v4.3.0 suite passed (53 checks); git diff --check passed. Exact-head checks last refreshed: 17 successful, 3 in progress (CI/containers, CI/platform-services, Compliance/kind), and 3 skipped (publish, deploy, Terraform Plan). I re-requested M1 review; M3/M4 reviews remain pending. No Plan, Apply, deployment, or live staging acceptance was run. Release order remains Gateway #72 before live CORS verification; M1 is deciding whether to republish the Compliance image for its Dockerfile fix.

@hxj04121-lab

Copy link
Copy Markdown
Owner

Correction to my readiness note above. CVE-2026-77214 (libexpat 2.8.5-r0, HIGH) was published after run 39050128320. Publish run 39403988220 failed the Trivy image gate for specification, formulation and label-workflow on it, so the three digests pinned here (66237bde…, bcc315aa…, 3683bf92…) are not release-ready anymore.

The plan:

  1. fix(M3): refresh Compliance image after libexpat patch #92: Compliance 73aac3f0… (approved). Merge it first, then keep its compliance.yaml image block when syncing.
  2. fix(security): patch libexpat in Specification, Formulation and Label Workflow images #93: the same libexpat patch for the other three Dockerfiles. After it merges, re-run Publish service images from main and pin the three new digests here.
  3. Then also the port=18101 fix from my review. After that, I'll approve this PR.

@hxj04121-lab

Copy link
Copy Markdown
Owner

@SHJ-SHJ0128 The port fix at a68e6c4 is confirmed, thanks. The libexpat chain is done: #92 and #93 are merged, and publish run 39409889122 from main e9af8e20 passed the HIGH/CRITICAL Trivy gate for all four services.

Please merge main into this branch and pin:

service digest
specification sha256:83b705f05cb07806b039c6740e7421ddaddd512d2aad000b4369f0f5545964a8
formulation sha256:658757b26ae8e3b0a43f494b1af5eda8016bc172c61d39f3e51c5c5567ef567c
label-workflow sha256:768c1f7ee6659db7138d48d468eaa7b974d84ca1aa53dd074a8fb74b98695311
compliance keep main's sha256:73aac3f0… from #92. main's test-templates.mjs checks it against M3's evidence receipt. The run also produced 87a4d72e… from the same source; ignore it.

Merging main conflicts in service-cicd-reusable.yml and test-templates.mjs (both PRs clear image.digest for kind, so keep one copy), plus values/compliance.yaml (take #92's image: block, then re-add this PR's env/envFrom and the other keys).

After the exact-head CI is green, I'll approve. Deployment still waits on #89 → Plan → Apply → Gateway.

@sonarqubecloud

Copy link
Copy Markdown

@SHJ-SHJ0128

Copy link
Copy Markdown
Collaborator Author

@hxj04121-lab @rcncai Re-review requested for exact head c12b0b52dad186e4eb07ae26a22412e6dc9abba6.

Merged current main e9af8e206b553ea9db3a11dd4091b8b91fb74f4d with a merge commit. Resolved the three conflicts by keeping one image.digest="" override in the kind workflow, retaining both the digest/Compliance receipt tests and #86 deployment/port=18101 checks, and using main's #92 Compliance image block plus #86 runtime and scheduling configuration.

Final image digests:

  • Specification: sha256:83b705f05cb07806b039c6740e7421ddaddd512d2aad000b4369f0f5545964a8
  • Formulation: sha256:658757b26ae8e3b0a43f494b1af5eda8016bc172c61d39f3e51c5c5567ef567c
  • Label Workflow: sha256:768c1f7ee6659db7138d48d468eaa7b974d84ca1aa53dd074a8fb74b98695311
  • Compliance: sha256:73aac3f0c86c8b3381d3a58734379eeb771e9202ed4dc657b22c3f628f8f34c6 (main/fix(M3): refresh Compliance image after libexpat patch #92 receipt; not 87a4d72e…).

Local YAML parsing, all 54 Helm checks, service-digest/RDS/release-inventory/window/budget/Keycloak tests, runtime-secret and MySQL workflow checks passed. Exact-head Actions passed: CI, Terraform validation, Helm, M5 offline, and Compliance checks/security/kind.

Terraform Plan and publish/deploy remain skipped. No cloud or staging write was performed. M1/M2, please review this exact head; no automatic merge was performed.

@SHJ-SHJ0128
SHJ-SHJ0128 requested a review from rcncai October 20, 2026 11:37

@rcncai rcncai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M2 re-review at c12b0b5. No blocking source findings. The main merge and three refreshed service digests match the successful release receipts and unchanged image-security gates from e9af8e2. Compliance correctly retains the accepted 73aac3f0 digest and its original provenance. The Verify-step port initialization, kind-only digest override, and rendering regressions remain intact. All eight current-head workflows pass. This is source approval only; protected Plan and deployment remain separate gated steps, and no staging acceptance is established.

@hxj04121-lab hxj04121-lab left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M1 Code Owner approval @ c12b0b5. The port is initialised in the Verify step. The four digests match publish run 39409889122 (spec 83b705f0…, formulation 658757b2…, label-workflow 768c1f7e…) and #92 (compliance 73aac3f0…). The main merge resolved cleanly and the exact-head CI is green. Release order is unchanged: #89 → Plan → Apply → Gateway → this workflow.

@hxj04121-lab
hxj04121-lab merged commit a7663fe into main Oct 20, 2026
24 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.

3 participants