Zum Hauptinhalt springen

YAML importieren

BYOBYaml wandelt vorhandenes YAML in Blöcke um, die du danach normal weiterbearbeitest.

Drei Wege​

WegWie
DateienImportieren → YAML-Dateien…, mehrere Dateien gleichzeitig möglich
EinfügenImportieren → YAML einfügen… oder unten links YAML einfügen, dann Text einfügen und Dateinamen vergeben
Drag & Drop.yaml/.yml/.byob aus dem Explorer ins Fenster ziehen
Menü ImportierenDialog YAML einfügen
Menü ImportierenDialog YAML einfügen

Jede importierte YAML-Datei wird zu einer neuen Datei im aktuellen Projekt. Gibt es den Namen schon, wird automatisch -2, -3 … angehängt. Danach zeigt ein Import-Bericht pro Datei, was passiert ist:

Import-Bericht

Das Ergebnis sind ganz normale Blöcke:

Importierte Blöcke mit YAML

Eine Schritt-für-Schritt-Erklärung dieses Beispiels steht im Handbuch unter Importieren.

Was erkannt wird​

  • Docker Compose: Dokumente ohne apiVersion/kind, mit services: oder version:
  • Kubernetes/OpenShift: alles mit apiVersion und kind
  • Mehrere Dokumente (---) → mehrere Startblöcke, automatisch angeordnet
  • kind: List mit items:, also die Ausgabe von oc get … -o yaml oder kubectl get … -o yaml, wird in einzelne Ressourcen zerlegt
  • YAML-Anker und Merge-Keys (&common, <<: *common) werden aufgelöst

Cluster-Felder werden entfernt​

Exporte aus einem laufenden Cluster enthalten Felder, die du nicht wieder anwenden willst. BYOBYaml entfernt sie automatisch und listet sie im Bericht auf:

  • status
  • metadata.uid, resourceVersion, creationTimestamp, generation, managedFields, selfLink, ownerReferences
  • Annotationen kubectl.kubernetes.io/last-applied-configuration, deployment.kubernetes.io/revision, openshift.io/generated-by

Nichts geht verloren​

Der Importer kennt für jeden Ressourcen-Typ die passenden Blöcke. Felder ohne eigenen Block werden zu Extras-Blöcken:

FallWird zu
Einzelnes unbekanntes Feld, z. B. spec.revisionHistoryLimit: 10Feld spec.revisionHistoryLimit = 10
Listeneintrag mit unbekannter Form, z. B. ein Env mit fieldRefzu Liste env hinzufügen {…} an derselben Stelle in der Reihenfolge
Schlüssel mit Punkt, z. B. networks: {backend: {aliases: …}}YAML einmischen {…}
Unbekannte Ressource, z. B. CertificateStartblock Eigene Ressource + Feld-Blöcke
Bekannter Typ, aber andere apiVersion (z. B. extensions/v1beta1)ebenfalls Eigene Ressource

Der Bericht nennt, wie viele Felder als Extras übernommen wurden.

Was sich im Ergebnis unterscheiden kann​

Das erzeugte YAML ist inhaltlich gleich, die Schreibweise kann sich aber unterscheiden:

OriginalNach dem Import
environment: [A=1, B] (Liste)environment: {A: "1", B: null} (Map)
env_file: .envenv_file: [.env]
depends_on: [db]depends_on: {db: {condition: service_started}}
protocol: TCP (Standardwert)weggelassen
command: npm start (String)command: [npm, start]
SchlüsselreihenfolgeReihenfolge der Blöcke
Kommentare # …gehen verloren, weil YAML-Parser sie nicht als Daten sehen

Fehlt im Original ein Wert, den ein Startblock immer setzt, ergänzt BYOBYaml den Standard. Beispiele: replicas: 1 beim Deployment, type: ClusterIP beim Service, backoffLimit: 6 beim Job.

Qualitätssicherung​

bun run check importiert alle Dateien in scripts/samples/, erzeugt daraus wieder YAML und vergleicht beides inhaltlich. Neue Problemfälle legst du einfach als Beispieldatei dort ab.