NK-WP-0056-T10: examples re-pinned at 1cdc18f; gaps fixed, what is left
All checks were successful
Build and Publish bounded-executor / build-and-push (push) Successful in 6s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Identity provider journey acceptance / provider (push) Successful in 38s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5502@bnt-lap001
Assistant-Session: 68b3b02f-5d0f-4e71-8421-796f62e50196
This commit is contained in:
tegwick 2026-10-31 19:02:09 +01:00
parent 1cdc18f75f
commit 4815c58dce
6 changed files with 38 additions and 16 deletions

View file

@ -49,12 +49,12 @@ spec:
plan:
source:
repo: net-kingdom
commit: fe18096aa398
commit: 1cdc18f75f7e
files:
- path: bounded-executor/executor.py
sha256: d724f4f831640c92b8b542dd2adab2e77f40d87d88f46d9482bff9fdcc4f6c70
- path: bounded-executor/operations.py
sha256: f6deabb65ee308b70b9adaa07f0449cd880534ef8c603c6e278c999bdb4106c8
sha256: fbabed4f051978b8202d390455e07d374d171d02197d87fcefd9394982934f13
- path: sso-mfa/k8s/synthetic-journey/journey.py
sha256: c639054597be7647a3ae88ac7da53490a43b38d9f4f95e24cf4e9f54b18f997c
steps:
@ -151,30 +151,30 @@ spec:
scope: k8s/sso/deployment/authelia
checks_after:
- synthetic-journey
plan_digest: sha256:7e5a93a864110dcde76df56bbb890b5642306fd506940323eedd62155dcab364
plan_digest: sha256:4d9dee9c88fe49fee1b93f462ccf00bdfa9fa3c197ac0400998792b91992843f
checks:
- id: kv-advanced
description: KV svc-authelia has exactly one new version, CAS on the previous one
ref: bounded-executor/operations.py
sha256: f6deabb65ee308b70b9adaa07f0449cd880534ef8c603c6e278c999bdb4106c8
sha256: fbabed4f051978b8202d390455e07d374d171d02197d87fcefd9394982934f13
timeout_seconds: 30
expect: pass
- id: bind-signs-in
description: the new KV value signs in to LLDAP as svc-authelia
ref: bounded-executor/operations.py
sha256: f6deabb65ee308b70b9adaa07f0449cd880534ef8c603c6e278c999bdb4106c8
sha256: fbabed4f051978b8202d390455e07d374d171d02197d87fcefd9394982934f13
timeout_seconds: 30
expect: pass
- id: eso-synced
description: the ExternalSecret is Ready with a refresh after the step started; the executor never reads the Secret
ref: bounded-executor/operations.py
sha256: f6deabb65ee308b70b9adaa07f0449cd880534ef8c603c6e278c999bdb4106c8
sha256: fbabed4f051978b8202d390455e07d374d171d02197d87fcefd9394982934f13
timeout_seconds: 120
expect: pass
- id: synthetic-journey
description: syn-journey signs in through KeyCape, Authelia and privacyIDEA at aal2
ref: bounded-executor/operations.py
sha256: f6deabb65ee308b70b9adaa07f0449cd880534ef8c603c6e278c999bdb4106c8
sha256: fbabed4f051978b8202d390455e07d374d171d02197d87fcefd9394982934f13
timeout_seconds: 90
expect: pass
stop_and_revert:

View file

@ -43,7 +43,7 @@ spec:
plan:
source:
repo: net-kingdom
commit: fe18096aa398
commit: 1cdc18f75f7e
files:
- path: sso-mfa/k8s/lldap/bind-split.py
sha256: 4decc3bbe65120ff6c4cef5613b9a41a60168ae64ecd4c1380f61a2fcd37b6b3
@ -97,7 +97,7 @@ spec:
scope: openbao/platform/workloads/net-kingdom/directory-binds
checks_after:
- accounts-sign-in
plan_digest: sha256:ad9f23b9ba366b9749e17b290e9583973463afcec021aa6ed9c2ce7bf9706bac
plan_digest: sha256:775ea5a7f0bdef09112c9646bd473931551be0911b70901ab607c424587595a5
checks:
- id: accounts-read-only
description: each account exists in lldap_strict_readonly only and cannot write

View file

@ -46,7 +46,7 @@ spec:
plan:
source:
repo: net-kingdom
commit: fe18096aa398
commit: 1cdc18f75f7e
files:
- path: sso-mfa/k8s/lldap/bind-split.py
sha256: 4decc3bbe65120ff6c4cef5613b9a41a60168ae64ecd4c1380f61a2fcd37b6b3
@ -73,7 +73,7 @@ spec:
scope: k8s/sso
checks_after:
- split-shape
plan_digest: sha256:fe39d7f0eb2d04369e505dbd6a4ed8e028ec4263ef6bff10a3d1d41db9ddb6da
plan_digest: sha256:2e31c9dfdccd4e3d6320dd0616ae778df94438ea4a64e602a12781da9ad9dcc3
checks:
- id: split-shape
description: every consumer binds as its own svc- account; no service binds as admin

View file

@ -43,7 +43,7 @@ spec:
plan:
source:
repo: net-kingdom
commit: fe18096aa398
commit: 1cdc18f75f7e
files:
- path: sso-mfa/k8s/lldap/bind-split.py
sha256: 4decc3bbe65120ff6c4cef5613b9a41a60168ae64ecd4c1380f61a2fcd37b6b3
@ -97,7 +97,7 @@ spec:
scope: k8s/sso/deployment/lldap
checks_after:
- synthetic-journey
plan_digest: sha256:f9ff4e81d9e998e709a2aa41b938d595cf671a1bbd0a43e157de572889b07218
plan_digest: sha256:fb8c00c3cd580b365cd9ce49fb952c861e92fb6bcf0102b37c2bc7620da3899d
checks:
- id: ld-admin-administers
description: ld-admin signs in and administers; admin keeps lldap_admin membership

View file

@ -42,7 +42,7 @@ spec:
plan:
source:
repo: net-kingdom
commit: fe18096aa398
commit: 1cdc18f75f7e
files:
- path: sso-mfa/k8s/lldap/bind-split.py
sha256: 4decc3bbe65120ff6c4cef5613b9a41a60168ae64ecd4c1380f61a2fcd37b6b3
@ -108,7 +108,7 @@ spec:
scope: k8s/sso/deployment/lldap
checks_after:
- synthetic-journey
plan_digest: sha256:dd7e679008345e0d36d09c065b3fdf92dab5c4c5d5bd48eb048844df24a0de13
plan_digest: sha256:20b40b06bae8386877f24eb2450e9582c041e198802bd0356b12113d4b5c9660
checks:
- id: ld-admin-administers
description: ld-admin signs in and administers; admin keeps lldap_admin membership

View file

@ -412,7 +412,7 @@ against a deliberately broken bind on a synthetic directory (T08).
- Done: the `sso` ingress rules for executor pods were applied by the founder and read back live.
- Done: railiance-platform CCR-2026-0059 drafted (`c9b68ea`, `proposed`). It is the journey read with its own role,
`net-kingdom-bind-executor-syn-journey-read`. It widens CCR-2026-0057 and proposes a standing reader.
`net-kingdom-bind-executor-syn-journey-read`. It widens CCR-2026-0057; standing reader (founder decision).
- Two executor gaps found while drafting it:
1. **Two roles.** The executor logs in to OpenBao once (`openbao.k8s_role`) and reads the bind and the journey with
that token. railiance-platform keeps one role per lane and never combines policies, so the executor needs a
@ -422,6 +422,28 @@ against a deliberately broken bind on a synthetic directory (T08).
to it.
- Both need an executor change, a new image and a new pin.
**2026-10-31, gaps fixed** ([evidence](../docs/evidence/2026-10-31-nk56-t10-openbao-lanes/README.md)):
- `1cdc18f`: one OpenBao client per lane, and one role for both lanes is refused.
- Every login is revoked at exit, also when setup fails.
- A third gap was found and fixed: the 15m token is shorter than the 20m budget, so clients now log in again before
the lease ends, re-reading the rotating JWT.
- Synthetic pilot with per-lane tokens: completed and reverted, `all_met`. Examples re-pinned.
- rapp `368fee4`:
- a second projected token with audience `openbao`;
- the config names both CCR roles;
- the renderer refuses other roles and the API token;
- tests tie the roles to the platform CCRs.
- The founder chose a standing journey reader. CCR-2026-0059 records it (railiance-platform `98a8b08`).
Left:
- the image for the new commit, and its pin in the rapp;
- founder approval of CCR-2026-0059;
- `make deploy` of the standing objects, then `confirm-binding`;
- applying the policy and roles (platform-admin);
- the approval-engine and audit-core replies and the token Secret.
## Executor runtime: core runner
```task