Bake L1 Torah into container images, simplify K8s deployment

L1 (29MB, 5860 files) is read-only and immutable — it belongs
inside the image, not on a separate volume. The scroll is sealed
in the aron. It ships with the vessel.

- All 4 Dockerfiles: COPY l1/ /mnt/torah/ in runtime stage
- deployment.yaml: Removed L1 PVC volume and all L1 volumeMounts
- deployment.yaml: Added imagePullSecrets for registry auth
- deployment.yaml: Manna uses emptyDir (kohen writes via kubectl cp)
- No CSI driver needed — eliminates Exoscale block storage dependency

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott KarpandClaude Opus 4.6 committed 2026-04-01 13:16:31 -04:00
1 parent 50547ed0c5
commit 2f1205eef1
5 files changed
+26 -38

No files matched your search

+9 -34
View File
@@ -1,16 +1,13 @@
# Shorashim Deployment — the mishkan
#
# Shemot 40:33 — Vay'khal Mosheh et ham'lakhah.
#
# Architecture §5.1: All inter-component communication uses
# JSON over Unix domain sockets or Erlang distribution protocol.
# No HTTP between internal components.
#
# The vav_pipeline (BEAM) runs the Sanhedrin, Chatzotzrot,
# AreiMiklat, EglahArufah, Bikurim, MannaLedger, ShabbatTimer.
# The shoresh-engine runs as a sidecar (Erlang Port).
# The talmudic_engine runs as a sidecar (Unix socket).
# The korban_processor runs as a sidecar (invoked by pipeline).
#
# L1 is mounted read-only into all containers.
# L1 Torah is baked into each container image (~29MB).
# The scroll is sealed in the aron. It ships with the vessel.
---
apiVersion: apps/v1
kind: Deployment
@@ -32,18 +29,17 @@ spec:
spec:
# --- VOLUMES ---
volumes:
- name: l1-torah
persistentVolumeClaim:
claimName: l1-torah-pvc
readOnly: true
- name: manna
persistentVolumeClaim:
claimName: manna-pvc
emptyDir: {}
- name: talmudic-socket
emptyDir: {}
- name: tmp-shorashim
emptyDir: {}
# --- IMAGE PULL SECRET ---
imagePullSecrets:
- name: shorashim-registry
# --- INIT CONTAINER: Run L3 migrations ---
initContainers:
- name: migrate
@@ -54,10 +50,6 @@ spec:
name: shorashim-config
- secretRef:
name: shorashim-secrets
volumeMounts:
- name: l1-torah
mountPath: /mnt/torah
readOnly: true
# --- CONTAINERS ---
containers:
@@ -72,13 +64,7 @@ spec:
name: shorashim-config
- secretRef:
name: shorashim-secrets
env:
- name: SHORESH_ENGINE_BINARY
value: "/home/shorashim/shoresh-engine"
volumeMounts:
- name: l1-torah
mountPath: /mnt/torah
readOnly: true
- name: manna
mountPath: /var/lib/shorashim/manna
- name: talmudic-socket
@@ -108,10 +94,6 @@ spec:
# === SHORESH ENGINE (sidecar) ===
- name: shoresh-engine
image: exo.container-registry.com/the-recognition-protocol/shoresh-engine:latest
volumeMounts:
- name: l1-torah
mountPath: /mnt/torah
readOnly: true
resources:
requests:
memory: "128Mi"
@@ -124,9 +106,6 @@ spec:
- name: talmudic-engine
image: exo.container-registry.com/the-recognition-protocol/talmudic-engine:latest
volumeMounts:
- name: l1-torah
mountPath: /mnt/torah
readOnly: true
- name: talmudic-socket
mountPath: /tmp/shorashim
resources:
@@ -140,10 +119,6 @@ spec:
# === KORBAN PROCESSOR (sidecar) ===
- name: korban-processor
image: exo.container-registry.com/the-recognition-protocol/korban-processor:latest
volumeMounts:
- name: l1-torah
mountPath: /mnt/torah
readOnly: true
resources:
requests:
memory: "128Mi"