Changes for README.md: 2 added lines, 0 removed lines.
Original line number
Diff line number
Diff line
@@ -277,6 +277,8 @@ The Package Manager integrates with the **Open Cluster Management (OCM)** framew
-**`clusterManager`**: Set to `ocm` to activate the OCM path.
-**`clusterMetadata`**: A Base64-encoded YAML manifest that describes workload-to-cluster mapping rules and the target scheduler namespace.
For the OCM scheduler chart itself (installed on the hub as a plain Helm order, without `clusterManager: ocm`), at deploy each `managedClusters[]` entry in its values with a `kubeconfigSecretId` is resolved through the Registry API and created as an Opaque Secret named after the entry's `name` (key `kubeconfig`) before `helm install`. See `docs/kafka-api.md`.
During the parse phase, the Package Manager decodes `clusterMetadata`, extracts the `namespace` field, and stores it as the Helm chart annotation `sonata.engine/namespace`. This annotation is then read by the deploy, activate, and terminate handlers to determine the correct namespace of the OCM scheduler, instead of defaulting to the `serviceId`.
An example `clusterMetadata` payload (after Base64 decoding) for the **P2CODE** scheduler:
@@ -238,6 +239,16 @@ Sent for a private repository, or whenever `clusterMetadata` yields a scheduler
| `serviceOperationRequest` | the inbound request plus its process ID; echoed back. Termination always sends `activateService: false` |
| `kubernetesServiceID` | the inbound `k8sServiceId` |
| `secretNames` | image-pull-secret names from the chart (deployment only; `null` otherwise) |
| `kubeconfigSecretIds` | deployment only; `managedClusters[].kubeconfigSecretId` from `servicePackageValuesYml` (entries with both `name` and `kubeconfigSecretId`). Omitted when there are none |
The OCM scheduler chart's values list the managed clusters whose kubeconfigs it needs:
```yaml
managedClusters:
-name:managed-1# name of the Secret created in the release namespace
@@ -279,10 +290,11 @@ it fails later, at the private-repo fetch.
| `serviceOperationRequest` | echoed; `serviceId` must be at least 5 characters |
| `kubeConfigAsBase64` | required; the cluster kubeconfig |
| `imagePullSecrets` | `[{ "secretName", "url", "username", "password" }]`, created in the target namespace (non-OCM deploys) |
| `kubeconfigSecrets` | `[{ "id", "kubeConfigAsBase64" }]`, one per requested `kubeconfigSecretIds` entry. Each becomes an Opaque Secret named after the matching `managedClusters[].name`, key `kubeconfig`, in the target namespace (non-OCM deploys). A requested ID missing from the reply fails the deploy |
| `schedulerNamespace` | non-empty means OCM: used as the target namespace instead of `serviceId`, and selects `OCMStrategy` |
| `requestedCompletionDate` | (inside `serviceOperationRequest`) required when `type` is `deployment` |
`kubeConfigAsBase64` and`servicePackageValuesYml` are base64-decoded after validation
`kubeConfigAsBase64`,`servicePackageValuesYml`and each `kubeconfigSecrets[].kubeConfigAsBase64`are base64-decoded after validation