Zum Inhalt

Repository-Workload-Quellen

BaseHarbor interpretiert Repository-Syntax über einen Workload Source Adapter, normalisiert Evidenz und erzeugt daraus portablen Application Intent. Source, Runtime, Delivery und Development Adapter sind verschiedene Aufgaben.

Source Inspect/Adoption Aktuelle Einschränkung
Compose Unterstützt Bestehender Docker-/Podman-Workload-Pfad
Repository-Quadlet Unterstützt Adoption bedeutet noch keine Ausführung dieser Repository-Units
Raw Kubernetes YAML Unterstützt Kubernetes-Runtime folgt später
Helm/Kustomize Später Noch kein Source Adapter

Erkennung garantiert keine Ausführung durch die gewählte Runtime. Plan/Preflight liefert bei fehlender Unterstützung einen typisierten Fehler.

Auswahl

CLI, JSON und MCP verwenden baseharbor.workload-source-resolution/v1. Zustände sind selected, ambiguous, not_detected, invalid und unsupported. Ein fehlender ausgewählter Source allein ist kein Mehrdeutigkeitsnachweis.

Ein eindeutiger Source benötigt keine Metadatei. Bei mehreren tragfähigen Kandidaten fragt geführte Adoption einmal und speichert die Auswahl in baseharbor.repository.yaml:

Repository
  -> Workload Source Adapter
  -> Normalized Workload Evidence
  -> repository inspection / adoption
  -> portable Application Intent
  -> Runtime Provider

Das ist commitfähige Repository-Metadaten, kein portabler Intent und kein geschützter Runtime-Zustand.

Grenzen

Scans begrenzen Dateigröße, Gesamtbytes, Anzahl und Tiefe. Symlinks werden übersprungen; Secret-Werte gehören nicht in normale Evidenz. Compose unterstützt Merge-Keys, dateiinternes extends und deterministische Variablen-Defaults. include und externes extends.file scheitern ausdrücklich. Externe Variablen werden nicht aus der Operator-Shell gelesen.

Quadlet erkennt .container, .pod, .network, .volume und .kube; fehlende lokale Inputs scheitern sicher. Kubernetes-YAML wird statisch gelesen, ohne Cluster-Lookup oder aus Namen abgeleiteten Namespace-Besitz. Unbekannte Ressourcen bleiben opake Evidenz.

Nachweise

Adapter-Tests, kontrollierte Konformitätsfälle, Cross-Source-Parität und 30 gepinnte reale Repositorys sind getrennte Prüfungen. Im Core-Checkout:

Workload Source != Runtime Provider
Workload Source != Delivery Provider
Workload Source != Development Adapter
Workload Source != Portable Application Intent

Vollständige Modelle: kanonische Erklärung (EN).

Weitere unveränderte technische Beispiele

{
  "schema_version": "baseharbor.workload-source-resolution/v1",
  "state": "selected",
  "reason": "production_candidate_dominates",
  "candidate_count": 3,
  "selected": {
    "kind": "compose",
    "path": "docker/docker-compose.yml"
  }
}
baseharbor.repository.yaml
version: 1
workload-source:
  kind: kubernetes
  path: deploy/k8s
source-adapter-unit
  -> focused positive and negative adapter tests

source-conformance
  -> controlled fixtures with known semantic ground truth
  -> broken/adversarial inputs
  -> fail-closed security bounds

source-cross-parity
  -> one reference application represented as Compose, Quadlet and Kubernetes YAML
  -> equivalent normalized semantics where representable

source-realworld
  -> 10 Compose + 10 Quadlet + 10 Kubernetes public repositories
  -> pinned revisions + documented quality/pattern tags
testdata/adoption-conformance/
testdata/adoption-realworld/
scripts/adoption-conformance.sh unit
scripts/adoption-conformance.sh conformance
scripts/adoption-conformance.sh parity
scripts/adoption-conformance.sh realworld

Technische Kennungen: single_candidate, explicit_repository_selection, multiple_viable_candidates, cross_family_ambiguity, only_low_confidence_candidates, no_supported_source, invalid_repository_metadata, unsupported_repository_metadata, ${VAR:-default}, ${VAR-default}, ${VAR}, scripts/realworld-workload-source-corpus.sh.

Compose include in v0.4.24

Die Repository-Erkennung unterstützt Compose include nicht. Includes können Service-Graph, Pfadbasen, Umgebungsdateien und Vertrauensgrenzen verändern. BaseHarbor verweigert sie vor Adoption oder Mutation mit Ursache compose_include_unsupported; ein unvollständiger Service-Graph wird niemals als vollständig gemeldet.

Prüfe zuerst alle eingebundenen Dateien. Rendere vertrauenswürdige lokale Quellen in eine separate flache Datei: docker compose -f compose.yaml config --no-interpolate --output compose.baseharbor.yaml. Behalte die Originale. Schütze die gerenderte Datei: Auch mit --no-interpolate können Werte aus env_file eingebettet werden; Ausgaben mit Zugangsdaten gehören nicht ins Repository. Prüfe Pfade, Profile, Secrets und den vollständigen Service-Graph und wähle anschließend compose.baseharbor.yaml ausdrücklich in baha init. Podman-Nutzer können auf einem vertrauenswürdigen Docker-Compose-Host rendern; die Deployment-Runtime muss nicht gewechselt werden. Führe Compose nicht gegen unvertrauenswürdige Remote-Includes aus.