Air-Gap-Auslieferung

Air-Gap-Auslieferung

Schrittfolge, um eine mit Polycrate paketierte Anwendung ohne Internetzugang auf einem Zielcluster zu installieren und zu aktualisieren. Bausteine: Registry-Proxy, Harbor, bereitgestellter Cluster.

Beispielorganisation: acme, Registry registry.acme.corp. Kein konkretes Kundenprodukt.

Was ins Bundle gehört

Ein Offline-Bundle ist ein signiertes, versionsgepinntes Archiv, kein „latest“-Ordner:

  • Anwendungs-Images und Basis-Images (alle Architekturen, die der Cluster braucht)
  • Polycrate-Blöcke als OCI-Artefakte (gleiche Tags wie in workspace.poly)
  • das Polycrate-CLI-Container-Image (Actions laufen darin)
  • optional: Git-Snapshot des Kern-Workspaces (ohne Secrets)
  • Prüfsummen / Signatur (Cosign oder gleichwertig)

Secrets (secrets.poly) gehören nicht ins Bundle. Die erzeugt die lokale Site.

Online bauen

Auf einem Rechner mit Registry-Zugang (CI oder Bastion von acme):

  1. Images bauen und mit unveränderlichem Tag versehen (1.4.0, nicht latest)
  2. Blöcke pullen und in die Staging-Registry schieben
  3. Manifest der enthaltenen Digests schreiben
  4. Archiv erzeugen und signieren
# Prinzip — konkrete Pfade legt das Kernpaket fest
polycrate blocks pull cargo.ayedo.cloud/ayedo/k8s/harbor:2.0.0
# … weitere from:-Referenzen aus workspace.poly
# Images + Blöcke + CLI-Image in registry.acme.corp spiegeln
# danach: Archiv + Signatur für sneakernet / kontrollierten Import

Transfer und Import

  1. Bundle an den air-gapped Standort (Datenträger oder erlaubter Import-Pfad)
  2. Signatur prüfen
  3. In die lokale Harbor-Instanz laden (registry.acme.corp)
  4. Pull-Secret für die Ziel-Namespaces anlegen

Harbor-Bedienung: Application Deployment.

Registry-Rewrite

Im air-gapped Workspace zeigen from:-Zeilen weiter auf die Ursprungsregistry. Polycrate schreibt sie über registry.proxy um — Details und Credentials: Registry.

name: acme-plant-site-a
organization: acme

registry:
  endpoint: registry.acme.corp
  proxy:
    - from: cargo.ayedo.cloud/ayedo
      to: registry.acme.corp/cargo-proxy/ayedo

Installieren und Rollback

Voraussetzung: Cluster-Vertrag erfüllt, Jump-Host mit Docker, lokale kubeconfig.

# Ersteinrichtung
polycrate run app install

# Anwendungs-Zug: nur der App-Tag, Primitives unangetastet
# in workspace.poly: from: registry.acme.corp/acme/k8s/plant:1.4.1
polycrate run app upgrade

# Rollback: vorherigen Tag pinnen und dieselbe Action
# from: …/plant:1.4.0
polycrate run app upgrade

Nicht in demselben Schritt Kubernetes, Cilium und die Fachanwendung anheben. Züge: Maintenance.

Häufige Fehler

Symptom Typische Ursache
ImagePullBackOff Digest nicht im Bundle oder Proxy-from matcht nicht
Block nicht gefunden Block-Tag nicht gespiegelt; Kurzname ohne Registry
Action startet nicht CLI-Image fehlt lokal
Zertifikate / Tokens ungültig NTP im Air-Gap falsch
Backup schlägt fehl kein S3 außerhalb der Node-Disks

Weiterführend