Skip to content

Commit bf73604

Browse files
committed
feat: remove csi
1 parent 598d827 commit bf73604

File tree

7 files changed

+3
-732
lines changed

7 files changed

+3
-732
lines changed

README.md

Lines changed: 1 addition & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ This Helm chart deploys a Kubernetes cluster on vSphere using Cluster API with K
44

55
## Table of Contents
66

7-
- [Architecture Overview](#architecture-overview)
87
- [Key Features](#key-features)
98
- [Automatic Rolling Updates](#automatic-rolling-updates)
109
- [Split Infrastructure Controller Deployment](#split-infrastructure-controller-deployment)
@@ -23,16 +22,6 @@ This Helm chart deploys a Kubernetes cluster on vSphere using Cluster API with K
2322
- [Configuration](#configuration)
2423
- [License](#license)
2524

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.
3625

3726
## Key Features
3827

@@ -58,11 +47,7 @@ The implementation uses hash-suffixed templates, `VSphereMachineTemplate` and `K
5847

5948
### Split Infrastructure Controller Deployment
6049

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.
6651

6752
This architecture enables:
6853
- Tenant isolation from vSphere credentials
@@ -179,29 +164,6 @@ stringData:
179164
EOF
180165
```
181166

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-
205167
### Credentials through VSphereClusterIdentity
206168
The chart can also be configured to use `VSphereClusterIdentity` for managing vSphere credentials. This allows multiple clusters to share the same credentials.
207169

@@ -239,7 +201,6 @@ spec:
239201
matchLabels: {} # allow all namespaces
240202
```
241203
242-
> **Note**: The CSI secret and the Cloud Controller Manager secret must still be created separately.
243204
244205
```yaml
245206
# Create the vsphere-config-secret for Cloud Controller Manager
@@ -267,29 +228,6 @@ stringData:
267228
EOF
268229
```
269230

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-
293231
## Usage
294232

295233
### Creating a cluster
@@ -366,13 +304,6 @@ If nodes taints are not removed:
366304
kubectl logs -l component=cloud-controller-manager
367305
```
368306

369-
If volume provisioning fails:
370-
371-
```bash
372-
# Check CSI Controller logs
373-
kubectl logs -l component=csi-controller-manager
374-
```
375-
376307
## Configuration
377308

378309
See the values you can override [here](charts/capi-kamaji-vsphere/README.md).

charts/capi-kamaji-vsphere/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: capi-kamaji-vsphere
2-
version: 0.1.4
2+
version: 0.2.0
33
appVersion: 1.32.0
44
description: A Helm chart for deploying a Kamaji Tenant Cluster on vSphere using Cluster API
55
and Kamaji.

charts/capi-kamaji-vsphere/README.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# capi-kamaji-vsphere
22

3-
![Version: 0.1.4](https://img.shields.io/badge/Version-0.1.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.32.0](https://img.shields.io/badge/AppVersion-1.32.0-informational?style=flat-square)
3+
![Version: 0.2.0](https://img.shields.io/badge/Version-0.2.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.32.0](https://img.shields.io/badge/AppVersion-1.32.0-informational?style=flat-square)
44

55
A Helm chart for deploying a Kamaji Tenant Cluster on vSphere using Cluster API and Kamaji.
66

@@ -78,17 +78,6 @@ A Helm chart for deploying a Kamaji Tenant Cluster on vSphere using Cluster API
7878
| vSphereCloudControllerManager.enabled | bool | `true` | Installs vsphere-cloud-controller-manager on the management cluster |
7979
| vSphereCloudControllerManager.secret.name | string | `"vsphere-config-secret"` | The name of an existing Secret for vSphere. |
8080
| 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. |
85-
| vSphereStorageControllerManager.storageClass.allowVolumeExpansion | bool | `true` | Allow volume expansion |
86-
| vSphereStorageControllerManager.storageClass.default | bool | `true` | Configure as the default storage class |
87-
| vSphereStorageControllerManager.storageClass.enabled | bool | `false` | StorageClass enablement |
88-
| vSphereStorageControllerManager.storageClass.name | string | `"vsphere-csi"` | Name of the storage class |
89-
| vSphereStorageControllerManager.storageClass.parameters | object | `{}` | Optional storage class parameters |
90-
| vSphereStorageControllerManager.storageClass.reclaimPolicy | string | `"Delete"` | Reclaim policy |
91-
| vSphereStorageControllerManager.storageClass.volumeBindingMode | string | `"WaitForFirstConsumer"` | Volume binding mode |
9281

9382
----------------------------------------------
9483
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

0 commit comments

Comments
 (0)