From 9fabfd7ebf5a3f35d37d6158862d95773bbcf258 Mon Sep 17 00:00:00 2001 From: tegwick Date: Thu, 1 Oct 2026 21:31:46 +0200 Subject: [PATCH] TEN-IN-0005: declare audit-core egress, drain env and optional sender-token mount Manifest half only; credential projection and rollout remain open. Co-Authored-By: Claude Sonnet 5.5 Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 292700@bnt-lap001 Assistant-Session: 42de6b79-9019-4cfd-b49a-6db3bbfe9341 --- deploy/base/tenant-engine.yaml | 28 ++++++++++++++++++++++++++++ intakes/intakes.md | 16 ++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/deploy/base/tenant-engine.yaml b/deploy/base/tenant-engine.yaml index 9d05cbb..2a08608 100644 --- a/deploy/base/tenant-engine.yaml +++ b/deploy/base/tenant-engine.yaml @@ -38,6 +38,13 @@ spec: value: http://flex-auth-tenant-engine.flex-auth.svc.cluster.local:8080 - name: TENANT_ENGINE_FLEX_AUTH_TOKEN_FILE value: /var/run/secrets/flex-auth-caller/token + # TEN-IN-0005: outbox drain to audit-core. The token file is projected + # by the credential operator; until it exists the drain retries + # (token_unreadable) and mutations are unaffected. + - name: TENANT_ENGINE_AUDIT_CORE_URL + value: http://audit-core.audit-core.svc:8080 + - name: TENANT_ENGINE_AUDIT_CORE_TOKEN_FILE + value: /var/run/secrets/audit-core-sender/token image: forgejo.coulomb.social/coulomb/tenant-engine@sha256:a8e8086ffc5b772c1391b166f5e1884b90f7d327b152c205eceae129df555c24 livenessProbe: httpGet: @@ -72,6 +79,9 @@ spec: - mountPath: /var/run/secrets/flex-auth-caller name: flex-auth-caller readOnly: true + - mountPath: /var/run/secrets/audit-core-sender + name: audit-core-sender + readOnly: true securityContext: fsGroup: 10001 runAsNonRoot: true @@ -85,6 +95,14 @@ spec: items: - key: url path: url + - name: audit-core-sender + secret: + defaultMode: 0440 + optional: true + secretName: tenant-engine-audit-core-sender + items: + - key: token + path: token - name: flex-auth-caller projected: defaultMode: 0440 @@ -158,6 +176,16 @@ spec: podSelector: matchLabels: app.kubernetes.io/name: flex-auth-tenant-engine + - ports: + - port: 8080 + protocol: TCP + to: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: audit-core + podSelector: + matchLabels: + app.kubernetes.io/name: audit-core - ports: - port: 53 protocol: UDP diff --git a/intakes/intakes.md b/intakes/intakes.md index b932803..5adebc8 100644 --- a/intakes/intakes.md +++ b/intakes/intakes.md @@ -164,5 +164,21 @@ notes: hub message was marked read once this record existed. author: tenant-engine created: "2026-09-21" +- content: >- + 2026-10-01: manifest half done in deploy/base/tenant-engine.yaml: egress + NetworkPolicy rule to audit-core:8080 (namespace AND pod label), the two + TENANT_ENGINE_AUDIT_CORE_* env vars, and an optional Secret volume + (tenant-engine-audit-core-sender, key token) mounted at + /var/run/secrets/audit-core-sender. Optional on purpose: a missing token + file makes the drain return retry, so mutations are unaffected until the + credential exists. Still open: (1) the credential operator must project the + tenant-engine sender token (minted 2026-09-15 at + platform/workloads/audit-core/senders, AUDIT-WP-0010-T02) into that Secret + in namespace tenant-engine via ExternalSecret; route is + `warden route show audit-core-senders` (owner ops-mason). (2) Roll out via + staged promotion and confirm 202s. (3) Update layer.yaml note. Not applied + live from this session. + author: tenant-engine + created: "2026-10-01" state_hub_intake_id: "01a0c277-3408-7cdb-984d-c40f697966f0" ```