Skip to content
Apothem
Runbooks

Einen neuen Harness-Adapter erstellen

Runbook für das Erstellen und Veröffentlichen eines neuen Apothem-Harness-Adapters.

Verwende dieses Runbook, wenn du einen neuen Harness-Adapter zur nativen Aufnahme in Apothem oder als Drittanbieter-Paket erstellst.

Voraussetzungen

Schritte

1. Implementiere den Adapter

Folge dem Beispiel Einen Harness-Adapter erstellen, um HarnessAdapter für den Ziel-Harness zu implementieren.

Schreibt der Adapter ein Klartext-Template (eine Datei, die weder JSON noch YAML ist) mit mode: write_text und ownership_class: operator-owned, löscht uninstall die Datei nur, solange sie eine unbearbeitete Kopie eines Templates ist, das Apothem ausgeliefert hat. Wenn ein späteres Release das Template ändert, füge in derselben Änderung den SHA-256-Digest des vorherigen Texts zur Liste earlier_digests dieses Manifest-Eintrags hinzu, sonst lässt uninstall jede unbearbeitete Kopie liegen, die das frühere Release geschrieben hat. Ermittle den Digest des Texts beim neuesten Release-Tag mit git show <tag>:<template path> | sha256sum; das Template darf kein ${...}-Pfad-Token enthalten. tests/unit/test_template_digests.py schlägt fehl, wenn ein ausgeliefertes Template nicht berücksichtigt ist.

2. Schreibe die Dokumentationsseite

Erstelle site/content/docs/harnesses/<slug>.mdx, die Folgendes abdeckt:

  • Installationsablauf
  • Abbildung vom Profil auf die native Konfiguration
  • Kompatibilitätsvorbehalte
  • Verifizierungsrezepte
  • Aktualisierungs- und Deinstallationsrezepte
  • Oberfläche des Konformitäts-Gates
  • Fehlerbehebungstabelle
  • Tabelle der Konfigurationsstellschrauben

3. Schreibe Tests

tests/packaging/test_<slug>_adapter.py
tests/unit/test_<slug>_adapter.py

Mindest-Testabdeckung:

  • test_install_creates_expected_files
  • test_verify_passes_after_install
  • test_uninstall_removes_files

4. Verifiziere lokal

apothem install --harness <slug>
apothem verify --harness <slug>
python -m apothem.conformity.gate --all .

5. Reiche den Pull Request ein

Öffne eine PR mit:

  • Adapter-Implementierung
  • Dokumentationsseite unter site/content/docs/harnesses/<slug>.mdx
  • Tests
  • Einstiegspunkt-Registrierung in pyproject.toml, ein Eintrag HARNESS_REGISTRY in src/apothem/lib/harness_registry_data.py (dort SUPPORTED_HARNESS_COUNT erhöhen) sowie die ID im Enum harnessId von src/apothem/schemas/profile.schema.json
  • Changelog-Eintrag

On this page