Files
bikoret/deploy/k8s/l1-volume.yaml
T
Scott KarpandClaude Opus 4.6 fe93c11d13 Phase 5 deployment: Dockerfiles, K8s manifests, halt monitor (Steps 33, 36)
Shemot 40:33 — Vay'khal Moshe et ham'lakhah.
The builder completes the work. The vessel is ready for transport.

Step 33 — Deployment configuration:
- Dockerfiles for all 4 components:
  - vav_pipeline: Elixir 1.16.1/OTP 26.2.1 release with Sanhedrin
  - shoresh_engine: GHC 9.6.4 binary
  - talmudic_engine: SWI-Prolog 9.2.2
  - korban_processor: Python 3.12.2 with pydantic
- Kubernetes manifests for Exoscale SKS (ch-gva-2):
  - Namespace, ConfigMap, Secrets template
  - L1 Torah PV/PVC (read-only mount)
  - Manna provision PVC (kohen writes, system reads)
  - Deployment: vav-pipeline + 3 sidecars, shared volumes
  - Service: ClusterIP + LoadBalancer with Exoscale NLB
  - Init container runs Ecto migrations (VavPipeline.Release)

Step 36 — Halt monitor (esh tamid):
- GenServer watches for three cardinal sins
- halt!/3 immediately halts system, sounds Chatzotzrot war signal
- Permanent audit log — halt events never deleted
- resolve/1 requires explicit operator action to resume
- alive?/0 for morning tamid verification
- 13 tests: alive check, 3 halt types, resolution, audit log,
  chatzotzrot war signal integration
- Added to supervision tree

All 219 Elixir + 19 L3 + 195 Prolog + 33 Haskell = 447+ tests, 0 failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:11:02 -04:00

44 lines
1.1 KiB
YAML

# L1 Torah Filesystem — Read-Only Volume
# Construction spec §1.2: SHA-256 verified, mounted read-only
#
# In production, L1 is a read-only filesystem (squashfs or similar)
# containing the Torah text. It is mounted into all pods that need it.
#
# For Exoscale SKS, this uses a PersistentVolume backed by
# Exoscale Block Storage. The L1 data is loaded once and never modified.
#
# Step 34: Mount L1 filesystem read-only
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: l1-torah-pv
labels:
app.kubernetes.io/name: l1-torah
spec:
capacity:
storage: 1Gi
accessModes:
- ReadOnlyMany
persistentVolumeReclaimPolicy: Retain
# For initial setup, use hostPath. In production, replace with
# Exoscale Block Storage CSI or pre-loaded ConfigMap/Secret.
hostPath:
path: /mnt/torah
type: DirectoryOrCreate
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: l1-torah-pvc
namespace: shorashim
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 1Gi
selector:
matchLabels:
app.kubernetes.io/name: l1-torah