diff --git a/README.md b/README.md index c4a959f..6825f33 100644 --- a/README.md +++ b/README.md @@ -36,26 +36,37 @@ man hätte stellen sollen. | Verzeichnis | Inhalt | |---|---| | `image/` | Das Container-Image: API, Ablage, MCP-Endpunkt, prüfende Schreibfunktion | -| `deploy/` | **Heute:** LXC mit podman-compose, wie jeder andere Dienst im Haus (`oci`) | -| `chart/` | **Später:** Helm-Chart, damit hive denselben Dienst fahren kann | +| `deploy/` | Die lauffähige Referenz: LXC mit podman-compose über `oci` | | `docs/` | Konzept, Entscheidungen, Betriebswissen | -Die Aufteilung ist Absicht und folgt dem, was beim Teamspace funktioniert hat: -Compose und Chart beschreiben **denselben** Dienst mit denselben Bildern und -Einstellungen. Wer eines ändert, ändert das andere mit — sonst driften sie, und -der Umzug nach k8s wird ein Neubau statt eines Wechsels. +**Ein Chart liegt hier nicht.** Charts und ihre Orchestrierung sind hive — siehe +den Schnitt unten. Das Compose ist deshalb kein Notbehelf für die Zeit bis +dahin, sondern die **Vorführung des Dienstes**: Wer ein Chart dafür baut, sieht +hier, welche Images, welche Umgebung und welche Volumes er braucht, und kann es +gegen etwas Laufendes prüfen statt gegen eine Beschreibung. -## Verhältnis zu hive +## Der Schnitt zwischen spine und hive -**hive kann diesen Dienst verwenden.** Er ist bewusst nicht 42i-spezifisch: Was -ihn kennt, sind Namespaces (`42i`, `familie`, …) und Projekt-Tags — beides -Konfiguration, keine eingebaute Annahme. +Festgelegt von Andreas am 2026-09-02: -Für hive ist `chart/` der Einstieg; `deploy/` ist die Übergangsform der 42i, -solange dort kein k8s produktiv läuft. Die Rollen sind dieselben wie beim -Teamspace: hive baut Charts und k8s, die 42i fährt bis dahin LXC und podman — -mit **demselben Image und demselben Bootstrapping**, damit die Erfahrung -übertragbar bleibt. +> „hive hat charts und deren orchestrierung, aber bedient sich für allgemeine +> dienste bei spine statt es selber zu bauen. Selber bauen nur für sachen, die +> nur hive braucht und sonst niemand. die gehören dann in die hive orga in +> gitea." + +| | spine | hive | +|---|---|---| +| **baut** | den Dienst: Image, Ablage, API | das Chart und die Orchestrierung | +| **liefert** | eine lauffähige Referenz (`deploy/`) | den Betrieb auf k8s | +| **eigenes** | allgemeine Dienste, die mehrere brauchen | nur, was ausschließlich hive braucht | + +Der Prüfstein ist einfach: **Braucht es außer hive noch jemand?** Dann gehört es +nach spine. `km` ist genau so ein Fall — er entsteht hier, außerhalb von hive, +weil die 42i ihn braucht, und ist damit erwiesenermaßen übergreifend. + +Was ihn kennt, sind Namespaces (`42i`, `familie`, …) und Projekt-Tags — beides +Konfiguration, keine eingebaute Annahme. Es steckt nichts 42i-spezifisches +darin. Anschluss auf hive-Seite: [hive/core](https://git.42i.org/hive/core) — insbesondere die Bibliothekars-Rolle (dort *Bob*), aus der dieser Dienst @@ -69,9 +80,9 @@ kein fertiges Upstream-Produkt ist, sondern **eigene Entwicklung** — API, Ablageform und die prüfende Schreibfunktion entstehen hier, und sie gehören zu den Konzepten und Tickets, die sie begründen. -Ist der Dienst reif und stabil, kann das Image nach `spine/images` und das Chart -nach `spine/charts` wandern; dieses Repo behielte Konzepte und Vorgänge. Das ist -eine Entscheidung für später, keine Vorfestlegung. +Ist der Dienst reif und stabil, kann das Image nach `spine/images` wandern; +dieses Repo behielte Konzepte, Betrieb und Vorgänge. Das ist eine Entscheidung +für später, keine Vorfestlegung. ## Tickets diff --git a/chart/README.md b/chart/README.md deleted file mode 100644 index db65691..0000000 --- a/chart/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# chart — der Betrieb für später - -Helm-Chart, damit **hive** denselben Dienst fahren kann. - -**Noch leer.** Wenn es entsteht, gilt das Muster von `spine/charts`: ein -`values.yaml`, das den Preis benennt statt ihn zu verstecken, und Kommentare, -die sagen *warum* eine Einstellung so ist — nicht nur *dass* sie so ist. Das -`team`-Chart ist dafür die Vorlage; seine drei teuer gelernten Einstellungen -haben beim Nachbau in der 42i ohne eine einzige eigene Entdeckung getragen. - -Das Chart ist nicht die Zweitverwertung des Compose, sondern gleichrangig: -`deploy/` ist die Übergangsform der 42i, solange dort kein k8s produktiv läuft. -Beide beschreiben denselben Dienst mit denselben Images und Einstellungen. diff --git a/deploy/README.md b/deploy/README.md index cc9f619..8cf14d2 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,7 +1,13 @@ -# deploy — der Betrieb für heute +# deploy — die lauffähige Referenz `km.lan` als LXC mit podman-compose, wie jeder andere Dienst im Haus. +Das ist **nicht** der Notbehelf, bis es ein Chart gibt. Es ist die Vorführung +des Dienstes: Wer ihn auf k8s bringen will, sieht hier, welche Images, welche +Umgebung und welche Volumes er braucht — und kann sein Chart gegen etwas +Laufendes prüfen statt gegen eine Beschreibung. Das Chart selbst gehört zu hive +(siehe den Schnitt im Haupt-README). + **Noch leer.** Wenn es soweit ist, gehört hierher eine `compose.yml` nach dem Muster von `info/deployment/team/` — und der Betrieb läuft über **`oci`** (`42i-oci`), nicht über eine eigene systemd-Unit. Das ist die Hausvorgabe; ich @@ -19,6 +25,7 @@ Was dort außerdem gelernt wurde und hier gelten wird: es sieht aus, als wäre sie nie gemacht worden. - **Secrets aus OpenBao**, nie in der compose-Datei und nie in argv. -Die compose-Datei und das Chart in `../chart/` beschreiben **denselben** Dienst. -Wer eines ändert, ändert das andere mit — sonst driften sie, und der Umzug nach -k8s wird ein Neubau statt eines Wechsels. +Beim Teamspace hat sich gezeigt, wie gut das trägt, wenn die Referenz ihre +Gründe mitliefert: Dessen drei teuer gelernte Einstellungen liefen beim Nachbau +ohne eine einzige eigene Entdeckung durch — weil im Chart stand, *warum* sie so +sind, nicht nur *dass*. Diese Datei schuldet einem künftigen Chart dasselbe.