You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -23,16 +22,6 @@ This Helm chart deploys a Kubernetes cluster on vSphere using Cluster API with K
23
22
-[Configuration](#configuration)
24
23
-[License](#license)
25
24
26
-
## Architecture Overview
27
-
28
-
The chart implements a **Split Architecture** where:
29
-
30
-
1. The Kubernetes control plane runs as containers on the management cluster (Kamaji)
31
-
2. The Cloud Controller Manager (CPI) and CSI Storage Controller run on the management cluster
32
-
3. Worker nodes run CSI Node drivers on the workload cluster
33
-
4. Communication between components happens via the Kubernetes API server
34
-
35
-
This approach provides security benefits by isolating vSphere credentials from tenant users while maintaining full Cluster API integration.
36
25
37
26
## Key Features
38
27
@@ -58,11 +47,7 @@ The implementation uses hash-suffixed templates, `VSphereMachineTemplate` and `K
58
47
59
48
### Split Infrastructure Controller Deployment
60
49
61
-
The chart deploys vSphere infrastructure controllers on the management cluster instead of the workload cluster:
62
-
63
-
-**Cloud Controller Manager (CPI)**: Runs on the management cluster with access to the hosted tenant's API server
64
-
-**vSphere CSI Controller**: Runs on the management cluster
65
-
-**CSI Node Drivers**: Deployed on workload cluster nodes via `ClusterResourceSet`
50
+
The chart deploys vSphere controllers on the management cluster instead of the workload cluster.
66
51
67
52
This architecture enables:
68
53
- Tenant isolation from vSphere credentials
@@ -179,29 +164,6 @@ stringData:
179
164
EOF
180
165
```
181
166
182
-
```yaml
183
-
# Create the csi-config-secret for Storage Controller
184
-
cat <<EOF | kubectl apply -f -
185
-
apiVersion: v1
186
-
kind: Secret
187
-
metadata:
188
-
name: csi-config-secret
189
-
namespace: my-cluster
190
-
labels:
191
-
cluster.x-k8s.io/cluster-name: "my-cluster"
192
-
stringData:
193
-
csi-vsphere.conf: |
194
-
[Global]
195
-
cluster-id = "namespace/my-cluster"
196
-
thumbprint = "YOUR_VCENTER_THUMBPRINT"
197
-
insecure-flag = false
198
-
[VirtualCenter "vcenter.example.com"]
199
-
user = "administrator@vsphere.local"
200
-
password = "YOUR_PASSWORD"
201
-
datacenters = "YOUR_DATACENTER"
202
-
EOF
203
-
```
204
-
205
167
### Credentials through VSphereClusterIdentity
206
168
The chart can also be configured to use `VSphereClusterIdentity` for managing vSphere credentials. This allows multiple clusters to share the same credentials.
207
169
@@ -239,7 +201,6 @@ spec:
239
201
matchLabels: {} # allow all namespaces
240
202
```
241
203
242
-
> **Note**: The CSI secret and the Cloud Controller Manager secret must still be created separately.
243
204
244
205
```yaml
245
206
# Create the vsphere-config-secret for Cloud Controller Manager
@@ -267,29 +228,6 @@ stringData:
267
228
EOF
268
229
```
269
230
270
-
```yaml
271
-
# Create the csi-config-secret for Storage Controller
272
-
cat <<EOF | kubectl apply -f -
273
-
apiVersion: v1
274
-
kind: Secret
275
-
metadata:
276
-
name: csi-config-secret
277
-
namespace: my-cluster
278
-
labels:
279
-
cluster.x-k8s.io/cluster-name: "my-cluster"
280
-
stringData:
281
-
csi-vsphere.conf: |
282
-
[Global]
283
-
cluster-id = "namespace/my-cluster"
284
-
thumbprint = "YOUR_VCENTER_THUMBPRINT"
285
-
insecure-flag = false
286
-
[VirtualCenter "vcenter.example.com"]
287
-
user = "administrator@vsphere.local"
288
-
password = "YOUR_PASSWORD"
289
-
datacenters = "YOUR_DATACENTER"
290
-
EOF
291
-
```
292
-
293
231
## Usage
294
232
295
233
### Creating a cluster
@@ -366,13 +304,6 @@ If nodes taints are not removed:
A Helm chart for deploying a Kamaji Tenant Cluster on vSphere using Cluster API and Kamaji.
6
6
@@ -78,17 +78,6 @@ A Helm chart for deploying a Kamaji Tenant Cluster on vSphere using Cluster API
78
78
| vSphereCloudControllerManager.enabled | bool |`true`| Installs vsphere-cloud-controller-manager on the management cluster |
79
79
| vSphereCloudControllerManager.secret.name | string |`"vsphere-config-secret"`| The name of an existing Secret for vSphere. |
80
80
| vSphereCloudControllerManager.version | string |`"v1.32.0"`| Version of the vsphere-cloud-controller-manager to install. The major and minor versions of releases should be equivalent to the compatible upstream Kubernetes release. |
81
-
| vSphereStorageControllerManager.enabled | bool |`false`| Installs vsphere-storage-controller-manager on the management cluster. NB: CSI node drivers are always installed on the workload cluster. |
82
-
| vSphereStorageControllerManager.logLevel | string |`"PRODUCTION"`| log level for the CSI components |
83
-
| vSphereStorageControllerManager.namespace | string |`"kube-system"`| Target namespace for the vSphere CSI node drivers on the workload cluster |
84
-
| vSphereStorageControllerManager.secret.name | string |`"csi-config-secret"`| The name of an existing Secret for vSphere. |
0 commit comments