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 ResourceDeploymentSite, die REST-Route/v1/deploymentsite, dazu passendeocto-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
| Bereich | Vorher (r3.4.x) | Ab r3.5.0 |
|---|---|---|
| CK-Modell | System.Communication 3.x, System.Ai 3.x | System.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-Typ | System.Communication/Pool | System.Communication/DeploymentSite |
| Assoziationsrolle | Manages / ManagedBy | Hosts / HostedBy |
| Kubernetes-CRD | communicationpools.octo-mesh.meshmakers.io, Kind CommunicationPool, v1alpha1, Feld poolRtId | deploymentsites.octo-mesh.meshmakers.io, Kind DeploymentSite, v1, Feld deploymentSiteRtId |
| Helm-Werte des Operators | operator.autoManagePools, operator.poolNamespace, operator.defaultPoolName | operator.autoManageDeploymentSites, operator.deploymentSiteNamespace, operator.defaultDeploymentSiteName |
| REST-API (Communication Controller) | {tenantId}/v1/pool/..., Query-Parameter poolRtId | {tenantId}/v1/deploymentsite/..., Query-Parameter deploymentSiteRtId |
| octo-cli | GetPools, DeployPool, UndeployPool (-id = poolRtId) | GetDeploymentSites, DeployDeploymentSite, UndeployDeploymentSite (-id = deploymentSiteRtId) |
| MCP-Tools | get_pools, undeploy_pool | get_deployment_sites, undeploy_deployment_site |
| Metriken | octo.workload.kind="pool" | octo.workload.kind="deployment_site" für Sites, "adapter_pool" für Adapter Pools (kein Alias) |
| Adapter-SDK | AdapterOptions.TenantId, Schlüssel OCTO_ADAPTER__TENANTID | AdapterOptions.DedicatedTenantId, Schlüssel OCTO_ADAPTER__DEDICATEDTENANTID (der alte Schlüssel wirkt in diesem Release noch und schreibt eine Deprecation-Warnung) |
| Adapter-SDK, TLS | Die Hub-Verbindung akzeptierte jedes Server-Zertifikat; IgnoreCertificateValidation hatte keine Wirkung | Zertifikate werden auf allen vier HTTP-Stacks geprüft; IgnoreCertificateValidation wirkt, wird aber abgelehnt, wenn ASPNETCORE_ENVIRONMENT/DOTNET_ENVIRONMENT auf Production steht |
| Blueprints | System.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ängigkeiten | Der erste Katalog mit passender Version gewann; eine Blueprint-Installation konnte eine installierte Abhängigkeit herabstufen | Die höchste passende Version über alle Kataloge gewinnt; eine installierte neuere Abhängigkeit bleibt erhalten, oder die Installation scheitert, statt herabzustufen |
| Trigger-Typ von Pipelines | Cron-Ausführungen auf dedizierten Adaptern meldeten Event | Cron-Ausführungen melden überall Scheduled |
Versionen
| Modell oder Blueprint | r3.5.0 |
|---|---|
System.Communication | 4.6.0 |
System.Ai | 4.3.0 (Zugangsdaten als SECRET-Attribute) |
Loxone | 5.1.0 (Miniserver-Passwort als SECRET-Attribut); 5.0.0 ohne SECRET |
MeshmakersAccounting / .Tesla / .Host | 2.2.0 / 2.1.0 / 2.0.0 |
EnergyCommunity.Base / .Billing / .Simulation / .App / .EdaIntegration | 2.11.1 / 2.8.1 / 2.8.2 / 2.1.0 / 2.11.0 |
OneTimeTicket.Release / .MainLatest | 2.0.0 |
FdaSeen.Base | 2.0.0 |
ZenonDynprop.MainLatest | 2.0.0 |
Samples.PipelineBasics / .Photovoltaics / .Simulator.EnergyCommunity | 2.0.0 / 2.0.1 / 2.0.0 |
Office.ExcelImport | 2.0.0 |
SmartMeterInsights.Base | 2.0.0 |
FamilyOs.Release / .MainLatest | 2.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) undSystem.Communication/LentAdapterPool(der Spiegel, den ein leihender Tenant sieht). Ein Adapter kann mit dem neuen Lifecycle-ModusLeasedseine 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(RESTPUT {tenantId}/v1/communication/lifecycle, FeldleasingEnabled). Ausschalten hält die Queue an; sie wird weder abgearbeitet noch verworfen. - Neue
octo-cli-BefehleGetAdapterPoolQueueundCancelQueuedExecution, neue MCP-Toolsget_adapter_pool_queueundcancel_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) undocto.pool.*(Member-Zustand).
Plattform
- Pipeline-Ausführungen, die ein Cron-Zeitplan startet, melden den Trigger-Typ
Scheduled(auch auf dedizierten Adaptern);Eventbleibt echten Bus-Ereignissen vorbehalten. ToPipelineDataEvent@1weckt 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. Standardtrue. - Gestufte Autorisierung von Adapter- und Operator-Hub des Communication Controllers: Helm-Werte
services.communication.hubAuthorization.adapterMode/operatorMode, StandardLogOnly(protokollieren und inocto.communication.hub.authorization.decisionszählen, nichts ablehnen).Enforceist 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ätZeroOrOnehat. - 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/poolshat 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.Communication3.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.Communicationerneut anwendet, eine zweiteHelmRepository-Assoziation eines Adapters; halten Sie solche Assoziationen fest und stellen Sie sie wieder her (siehe Upgrade-Guide). - Adapter Pools lehnen
ReceivesClusterSecretsund Ingress-Konfiguration ab. Ein Pool, derExecuteCSharp@1ausfü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__TENANTIDentfällt mit dem nächsten Release. Adapter-Charts müssen bis dahinOCTO_ADAPTER__DEDICATEDTENANTIDrendern.
Upgrade
Siehe Upgrade-Guide r3.5.0.