@@ -38,6 +38,47 @@ The Dynamo Platform Helm chart deploys the complete Dynamo Cloud infrastructure
3838- Sufficient cluster resources for your deployment scale
3939- Container registry access (if using private images)
4040
41+ ## ⚠️ Important: Cluster-Wide vs Namespace-Scoped Deployment
42+
43+ ### Single Cluster-Wide Operator (Recommended)
44+
45+ **By default, the Dynamo operator runs with cluster-wide permissions and should only be deployed ONCE per cluster.**
46+
47+ - ✅ **Recommended**: Deploy one cluster-wide operator per cluster
48+ - ❌ **Not Recommended**: Multiple cluster-wide operators in the same cluster
49+
50+ ### Multiple Namespace-Scoped Operators (Advanced)
51+
52+ If you need multiple operator instances (e.g., for multi-tenancy), use namespace-scoped deployment:
53+
54+ ```yaml
55+ dynamo-operator:
56+ namespaceRestriction:
57+ enabled: true
58+ targetNamespace: "my-tenant-namespace" # Optional, defaults to release namespace
59+ ```
60+
61+ ### Validation and Safety
62+
63+ The chart includes built-in validation to prevent all operator conflicts:
64+
65+ - **Automatic Detection**: Scans for existing operators (both cluster-wide and namespace-restricted) during installation
66+ - **Prevents Multiple Cluster-Wide**: Installation will fail if another cluster-wide operator exists
67+ - **Prevents Mixed Deployments (Type 1)**: Installation will fail if trying to install namespace-restricted operator when cluster-wide exists
68+ - **Prevents Mixed Deployments (Type 2)**: Installation will fail if trying to install cluster-wide operator when namespace-restricted operators exist
69+ - **Safe Defaults**: Leader election uses shared ID for proper coordination
70+
71+ #### 🚫 **Blocked Conflict Scenarios**
72+
73+ | Existing Operator | New Operator | Status | Reason |
74+ |-------------------|--------------|---------|--------|
75+ | None | Cluster-wide | ✅ **Allowed** | No conflicts |
76+ | None | Namespace-restricted | ✅ **Allowed** | No conflicts |
77+ | Cluster-wide | Cluster-wide | ❌ **Blocked** | Multiple cluster managers |
78+ | Cluster-wide | Namespace-restricted | ❌ **Blocked** | Cluster-wide already manages target namespace |
79+ | Namespace-restricted | Cluster-wide | ❌ **Blocked** | Would conflict with existing namespace operators |
80+ | Namespace-restricted A | Namespace-restricted B (diff ns) | ✅ **Allowed** | Different scopes |
81+
4182## 🔧 Configuration
4283
4384{{ template "chart.requirementsSection" . }}
0 commit comments