| `managedClusters` | List of managed clusters that should exist on the OCM hub. The chart creates missing entries and removes entries that are no longer configured. |
| `openziti.enabled` | Enables the OpenZiti integration and `ziti-edge-tunnel` dependency. |
| `openziti.controller.url` | OpenZiti Controller management API endpoint. |
| `openziti.controller.username` | Username used by the bootstrap and join Jobs to authenticate to the OpenZiti Controller. |
| `openziti.controller.username` | Username used by the bootstrap and configuration Jobs to authenticate to the OpenZiti Controller. |
| `openziti.controller.password` | Password used to authenticate to the OpenZiti Controller. |
| `openziti.identity.name` | OpenZiti identity created for this managed cluster. |
| `openziti.identity.name` | OpenZiti identity created for the hub cluster. |
| `openziti.identity.secretName` | Kubernetes Secret where the enrolled OpenZiti identity JSON is stored. |
| `openziti.hubApi.serviceName` | Name of the OpenZiti service exposing the OCM hub Kubernetes API. |
| `openziti.hubApi.serviceName` | Name of the OpenZiti service used to expose the hub Kubernetes API. |
| `ziti-edge-tunnel.image.*` | Container image configuration for the OpenZiti tunneler. |
| `ziti-edge-tunnel.secret.existingSecretName` | Secret mounted by the tunneler. This should match `openziti.identity.secretName`. |
| `ziti-edge-tunnel.secret.keyName` | Key inside the Secret containing the OpenZiti identity JSON. |
The current integration uses OpenZiti to provide connectivity to the OCM hub Kubernetes API when the direct network path is unavailable.
## Helm Upgrade Behaviour
The same model can later be reused for application-to-application connectivity across managed clusters.
For example:
The OpenZiti identity is created during the initial installation and reused during normal Helm upgrades.
```text
Cluster A Cluster B
helm install
|
+--> Create OpenZiti identity
+--> Enroll identity
+--> Create identity Secret
+--> Start tunneler
+--> Initialize OCM hub
frontend backend
| ^
| |
+------ OpenZiti Service --------+
helm upgrade
|
+--> Reuse existing OpenZiti identity
+--> Reuse existing identity Secret
+--> Reconcile managedClusters
+--> Apply configuration changes
```
The orchestrator can dynamically create the required OpenZiti service, `intercept.v1`, `host.v1`, Bind policy, and Dial policy after workload placement.
This allows connectivity without requiring prior knowledge of:
* the remote cluster CNI;
* Pod CIDRs;
* Service CIDRs;
* direct Layer 3 connectivity between clusters.
This avoids unnecessary re-enrollment of the OpenZiti identity during normal chart upgrades.
## Uninstall
```bash
helm uninstall ocm-managed-n ocm-managed
helm uninstall ocm-hub-n ocm-hub
```
The cleanup hook removes:
* the Klusterlet;
* OCM agent resources and namespaces;
* the cluster-specific OpenZiti Dial policy, if present;