Zum Inhalt springen

Upgrades und Migrationen

Ein neues Release von Labtagon AI OS ist eine neue Version des Charts mit neuen Images. Du rollst es mit helm upgrade aus; der Controller zieht die Datenbank nach.

  1. Sichern. Stell sicher, dass es ein aktuelles Backup von Postgres gibt und die Schlüssel sicher sind (Backups und Wiederherstellung).

  2. Lies die Release-Notes und das README des Charts auf umbenannte oder veraltete Werte. Das Chart hält einen veralteten Wert ein Release lang am Laufen und sagt das in seinen Hinweisen; zum Beispiel keycloak.harnessClients, das keycloak.agentClients ersetzt.

  3. Erst rendern:

    Terminal-Fenster
    helm lint deploy/helm/ai-os -f values.yaml
    helm template ai-os deploy/helm/ai-os -n ai-os-system -f values.yaml > /dev/null

    Das Chart lehnt Werte ab, die sich widersprechen, etwa einen Digest, der nicht sha256: mit 64 Hex-Ziffern ist, einige Komponenten per Digest festgelegt und andere nicht, oder einen Standardwert für das Einschlafen, der länger ist als der längste erlaubte.

Terminal-Fenster
helm upgrade ai-os deploy/helm/ai-os -n ai-os-system -f values.yaml
  • Roll alle Komponenten zusammen aus. Sie erscheinen als eine Version. Einen Fall nennt das Chart ausdrücklich: Das Egress-Gateway hinter das Release zurückzurollen, das API-Regeln gebracht hat, macht aus diesen Regeln Zugriff auf ganze Hosts.
  • Per Digest festgelegte Images: Setz die neuen Digests aller Komponenten, des Bundle-Fetchers und des Prüf-Images zusammen.
  • Runtimes der Tool-Server sind je Release per Digest festgelegt (runtimes.*). Ein neuer Runtime-Digest bedeutet neue Builds der Server, die sie nutzen.
  • Der Controller spielt die Migrationen aus db/migrations selbst ein, wenn er startet (--migrate-dir): in der Reihenfolge ihrer Namen, jede einmal und in einer eigenen Transaktion. Welche gelaufen sind, steht in der Tabelle schema_migrations.
  • Eine Advisory Lock in Postgres sorgt dafür, dass nur ein Controller migriert, wenn mehrere gleichzeitig starten.
  • Eine Migration, die fehlschlägt, wird zurückgerollt, und der Controller startet nicht; der Fehler nennt die Datei. Beheb die Ursache und lass den Pod neu starten.
  • Migrationen gehen nur vorwärts; es gibt keine Rück-Migrationen. Um zurückzugehen, stell die Datenbank aus dem Backup von vorher wieder her.

postgres.imageName legt das PostgreSQL-Image des CloudNativePG-Clusters fest (PostgreSQL 18.6 im aktuellen Chart). Ein Cluster, der schon eine andere Hauptversion betreibt, braucht hier sein eigenes Image: Eine andere Hauptversion ist ein Major-Upgrade, das CloudNativePG auf seine eigene Weise macht (und ein Downgrade, das es ablehnt).

  • Prüfe unter Verwaltung → Plattform, dass jede Komponente bereit ist und die neue Version betreibt und dass die Build-Prüfungen an sind.
  • Melde dich an, öffne einen Chat und ruf aus einem Client ein Tool auf.
  • global.mirror zu ändern bedeutet neue Freigaben für Begleiter auf einer Runtime und neue Builds, außer die Runtimes waren schon auf dieselben Referenzen festgelegt.