Zum Hauptinhalt springen

Release Notes r3.5.0

r3.5.0 ist für Betreiber ein Breaking Release. Das Construction-Kit-Modell System.Communication wechselt auf eine neue Major-Version (3.x → 4.x), das Konzept Pool heißt im ganzen Stack jetzt Deployment Site, und es kommen Adapter Pools mit Shared Adapter Leasing hinzu (standardmäßig ausgeschaltet).

Die Datenmigration läuft automatisch, aber nur in eine Richtung. Lesen Sie vor jedem Upgrade den Upgrade-Guide r3.5.0, vor allem die Abschnitte zu Backup und Rollback.

Highlights​

  • Deployment Sites ersetzen Pools. Der alte Name beschrieb einen Ort, keinen Pool. Jetzt heißt es System.Communication/DeploymentSite, die Kubernetes Custom Resource DeploymentSite, die REST-Route /v1/deploymentsite, dazu passende octo-cli-Befehle und MCP-Tools. Siehe Deployment Sites.
  • Adapter Pools und Shared Adapter Leasing. Ein Tenant kann einen Pool generischer Adapter-Prozesse betreiben und sie für einzelne Pipeline-Ausführungen an andere Tenants verleihen. Dazu gehören eine Queue pro Pool, Round-Robin zwischen den Tenants, interaktive Arbeit vor Batch-Arbeit und die Isolation von Identität und Datenbank-Credentials des leihenden Tenants. Die Funktion ist auf jedem Tenant standardmäßig aus.
  • Automatische Datenmigration von jeder veröffentlichten System.Communication-3.x-Version (ab 3.35.0) auf 4.x. Eine neue Engine-Sperre schützt sie: Ein Upgrade, das ohne Migration eine Major-Version überspringen würde, scheitert jetzt laut, statt die Datenmigration still auszulassen.
  • TLS-Prüfung wird erzwungen. Das SDK prüft die Zertifikate aller Verbindungen von Adaptern zu den Plattform-Services, auch die SignalR-Hub-Verbindung, die bisher jedes Zertifikat akzeptierte.
  • Neue Major-Versionen aller abhängigen Blueprints und CK-Modelle — siehe Versionen. Die bisherigen Linien bleiben für Installationen, die noch r3.4.x fahren, in den Katalogen.

Breaking Changes​

BereichVorher (r3.4.x)Ab r3.5.0
CK-ModellSystem.Communication 3.x, System.Ai 3.xSystem.Communication 4.6.0, System.Ai 4.3.0; Tenants auf System.Communication 3.35.0–3.41.0 werden migriert, 3.42.0 wird abgelehnt
CK-TypSystem.Communication/PoolSystem.Communication/DeploymentSite
AssoziationsrolleManages / ManagedByHosts / HostedBy
Kubernetes-CRDcommunicationpools.octo-mesh.meshmakers.io, Kind CommunicationPool, v1alpha1, Feld poolRtIddeploymentsites.octo-mesh.meshmakers.io, Kind DeploymentSite, v1, Feld deploymentSiteRtId
Helm-Werte des Operatorsoperator.autoManagePools, operator.poolNamespace, operator.defaultPoolNameoperator.autoManageDeploymentSites, operator.deploymentSiteNamespace, operator.defaultDeploymentSiteName
REST-API (Communication Controller){tenantId}/v1/pool/..., Query-Parameter poolRtId{tenantId}/v1/deploymentsite/..., Query-Parameter deploymentSiteRtId
octo-cliGetPools, DeployPool, UndeployPool (-id = poolRtId)GetDeploymentSites, DeployDeploymentSite, UndeployDeploymentSite (-id = deploymentSiteRtId)
MCP-Toolsget_pools, undeploy_poolget_deployment_sites, undeploy_deployment_site
Metrikenocto.workload.kind="pool"octo.workload.kind="deployment_site" für Sites, "adapter_pool" für Adapter Pools (kein Alias)
Adapter-SDKAdapterOptions.TenantId, Schlüssel OCTO_ADAPTER__TENANTIDAdapterOptions.DedicatedTenantId, Schlüssel OCTO_ADAPTER__DEDICATEDTENANTID (der alte Schlüssel wirkt in diesem Release noch und schreibt eine Deprecation-Warnung)
Adapter-SDK, TLSDie Hub-Verbindung akzeptierte jedes Server-Zertifikat; IgnoreCertificateValidation hatte keine WirkungZertifikate werden auf allen vier HTTP-Stacks geprüft; IgnoreCertificateValidation wirkt, wird aber abgelehnt, wenn ASPNETCORE_ENVIRONMENT/DOTNET_ENVIRONMENT auf Production steht
BlueprintsSystem.Communication-[x,4.0)Blueprints mit Abhängigkeit auf System.Communication brauchen einen 4.x-Bereich und eine neue Major-Version (siehe Versionen)
Blueprint-AbhängigkeitenDer erste Katalog mit passender Version gewann; eine Blueprint-Installation konnte eine installierte Abhängigkeit herabstufenDie höchste passende Version über alle Kataloge gewinnt; eine installierte neuere Abhängigkeit bleibt erhalten, oder die Installation scheitert, statt herabzustufen
Trigger-Typ von PipelinesCron-Ausführungen auf dedizierten Adaptern meldeten EventCron-Ausführungen melden überall Scheduled

Versionen​

Modell oder Blueprintr3.5.0
System.Communication4.6.0
System.Ai4.3.0 (Zugangsdaten als SECRET-Attribute)
Loxone5.1.0 (Miniserver-Passwort als SECRET-Attribut); 5.0.0 ohne SECRET
MeshmakersAccounting / .Tesla / .Host2.2.0 / 2.1.0 / 2.0.0
EnergyCommunity.Base / .Billing / .Simulation / .App / .EdaIntegration2.11.1 / 2.8.1 / 2.8.2 / 2.1.0 / 2.11.0
OneTimeTicket.Release / .MainLatest2.0.0
FdaSeen.Base2.0.0
ZenonDynprop.MainLatest2.0.0
Samples.PipelineBasics / .Photovoltaics / .Simulator.EnergyCommunity2.0.0 / 2.0.1 / 2.0.0
Office.ExcelImport2.0.0
SmartMeterInsights.Base2.0.0
FamilyOs.Release / .MainLatest2.0.0

Die 1.x-Linien (und die übrigen Linien vor 4.x) bleiben parallel in den Katalogen. Sie sind für Installationen gedacht, die noch r3.4.x fahren; auf r3.5.0 heben Sie auf die Versionen oben (siehe Blueprints und CK-Modelle im Upgrade-Guide).

Neu​

Adapter Pools und Shared Adapter Leasing​

  • Neue CK-Typen System.Communication/AdapterPool (ein Pool von Adapter-Prozessen, der einem verleihenden Tenant gehört) und System.Communication/LentAdapterPool (der Spiegel, den ein leihender Tenant sieht). Ein Adapter kann mit dem neuen Lifecycle-Modus Leased seine Pipelines auf einem Pool-Member statt im eigenen Prozess ausführen.
  • Queue pro Pool mit Round-Robin zwischen den Tenants und interaktiver Arbeit vor Batch-Arbeit innerhalb der Runde eines Tenants. Cron-Trigger geleaster Adapter laufen über die Queue und werden zusammengefasst.
  • Kill-Switch pro Tenant: octo-cli -c SetCommunicationLifecycle -le false (REST PUT {tenantId}/v1/communication/lifecycle, Feld leasingEnabled). Ausschalten hält die Queue an; sie wird weder abgearbeitet noch verworfen.
  • Neue octo-cli-Befehle GetAdapterPoolQueue und CancelQueuedExecution, neue MCP-Tools get_adapter_pool_queue und cancel_queued_execution.
  • Neue REST-Endpunkte unter {tenantId}/v1/adapterpool (Queue, Members, Lease, Mirrors, Lending) und {tenantId}/v1/deploymentsite/workloads/adapter-pool/scale.
  • Pool-Member erhalten nie clusterweite Secrets oder Datenbank-Administrator-Credentials, sondern pro Lease ein auf den Tenant beschränktes Credential. Der IronOCR-Lizenzschlüssel ist das einzige Cluster-Secret, das ein Pool-Member bekommt.
  • Ein Pool-Member, der nach einem Verbindungsabbruch oder einem Neustart des Communication Controllers wieder Kontakt aufnimmt, meldet seinen laufenden Lease. Das Ergebnis eines Leases geht bei einem Controller-Neustart also nicht mehr verloren.
  • Neue Metriken unter octo.lease.* (Queue-Tiefe und Wartezeit, Vergaben, Ablehnungen, Unterbrechungen, Scale-up) und octo.pool.* (Member-Zustand).

Plattform​

  • Pipeline-Ausführungen, die ein Cron-Zeitplan startet, melden den Trigger-Typ Scheduled (auch auf dedizierten Adaptern); Event bleibt echten Bus-Ereignissen vorbehalten.
  • ToPipelineDataEvent@1 weckt einen auf null skalierten Ziel-Workload, bevor es an ihn publiziert.
  • Adapter brechen den Start ab, wenn ein konfigurierter Datastore-Hostname nicht auflösbar ist, statt erst bei der ersten Ausführung zu scheitern.
  • Abhängigkeitsbereiche von Blueprints lösen auf die höchste passende Version über alle lesbaren Kataloge auf, und die Installation eines Blueprints stuft keine installierte Abhängigkeit mehr herab (sie behält eine neuere Version, die alle Bereiche erfüllt, oder scheitert).
  • Die GitHub-Blueprint-Kataloge haben wie die CK-Kataloge eine Option IsEnabled; ein abgeschalteter Katalog wird bei Auflistung, Suche, Auflösung von Abhängigkeiten, Installation und Refresh übersprungen. Standard true.
  • Gestufte Autorisierung von Adapter- und Operator-Hub des Communication Controllers: Helm-Werte services.communication.hubAuthorization.adapterMode / operatorMode, Standard LogOnly (protokollieren und in octo.communication.hub.authorization.decisions zählen, nichts ablehnen). Enforce ist ein eigener, späterer Schritt pro Cluster.
  • Key-Ring-Werte für SECRET-Attributwerte im Core- und im Operator-Chart, mit einer optionalen Render-Sperre (secretEncryptionRequired). Inaktiv, bis sie konfiguriert werden.

Behobene Fehler​

  • Das Aktualisieren von Zeilen einer Runtime-Query über GraphQL (runtimeQuery.update) schrieb Assoziationsänderungen in umgekehrter Richtung und ersetzte To-Many-Navigationen, wenn die Gegenseite der Rolle die Multiplizität ZeroOrOne hat.
  • Die Installation eines Blueprints konnte die Seed-Daten einer älteren Version einer Abhängigkeit erneut anwenden und diese ältere Version als installiert eintragen.

Refinery Studio​

  • Pools heißen im ganzen Studio Deployment Sites (Integrationsübersicht, Detail- und Konfigurationsseiten, Command Palette, Attention-Karten). Die Konfiguration eines Sites nutzt das ausgelieferte Entity Form „Deployment site".
  • Die alte Route communication/pools hat keine Weiterleitung. Passen Sie Lesezeichen auf die Seite Deployment Sites an.
  • Seiten für Adapter Pools und Leasing sind im neuen Studio noch nicht enthalten; sie folgen mit einem späteren Studio-Release. Bis dahin wird Leasing über octo-cli, die MCP-Tools oder die REST-API bedient.

Bekannte Einschränkungen​

  • Betreiben Sie den Communication Controller mit einer Replika. Der Lease-Zustand lebt im Controller-Prozess; persistente Leases für mehrere Repliken sind geplant (AB#5878).
  • Leasing ist auf jedem Tenant standardmäßig aus; schalten Sie es nach dem Upgrade in einer eigenen Änderung ein.
  • Refinery Studio hat noch keine Seiten für Adapter Pools und Leasing.
  • Tenants auf System.Communication 3.42.0 lehnt die Migration ab; sie bleiben auf 3.x, bis ein späteres Release diesen Einstiegspunkt ergänzt.
  • Der Operator legt die Deployment-Site-Resources nach dem Upgrade nicht von selbst neu an; deployen Sie jeden Site pro Tenant neu (siehe Upgrade-Guide).
  • Der Communication Controller entfernt beim ersten Start, wenn er den Seed von System.Communication erneut anwendet, eine zweite HelmRepository-Assoziation eines Adapters; halten Sie solche Assoziationen fest und stellen Sie sie wieder her (siehe Upgrade-Guide).
  • Adapter Pools lehnen ReceivesClusterSecrets und Ingress-Konfiguration ab. Ein Pool, der ExecuteCSharp@1 ausführt, braucht ein Memory-Limit von mindestens 1 Gi.
  • Geleaste Pipelines können keine SECRET-Attributwerte offenlegen (RevealSecret@1); ein Pool-Member hat keinen Key Ring des Tenants.
  • Stream Data (CrateDB) steht geleasten Ausführungen nicht zur Verfügung.
  • Änderungen an Name, Sharing-Modus oder Allow-List eines Pools erreichen leihende Tenants erst nach POST {tenantId}/v1/adapterpool/mirrors/publish.
  • Der veraltete Adapter-Konfigurationsschlüssel OCTO_ADAPTER__TENANTID entfällt mit dem nächsten Release. Adapter-Charts müssen bis dahin OCTO_ADAPTER__DEDICATEDTENANTID rendern.

Upgrade​

Siehe Upgrade-Guide r3.5.0.