Skip to content

Commit 23e7f38

Browse files
authored
Merge pull request #170 from mauriciopoppe/update-readme-ga
Docs: Add a link to the GA blogpost, replace ASCII diagram with image
2 parents 39f65a5 + 580610a commit 23e7f38

File tree

2 files changed

+25
-42
lines changed

2 files changed

+25
-42
lines changed

README.md

+25-42
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,8 @@
33
CSI Proxy (which might be more aptly named "csi-node-proxy") is a binary that exposes a set of gRPC APIs (over named pipes) around local storage operations for nodes in Windows. A container, such as CSI node plugins, can mount the named pipes depending on operations it wants to exercise on the host and
44
invoke the APIs. This allows a storage plugin to run as if were a CSI plugin on linux which have the ability to perform "privileged" actions on the windows host OS.
55

6-
```
7-
+------------------+
8-
+---------------------------------------------| |
9-
| +----------+ | |
10-
| |csi node | | CSI Node Plugin|
11-
| |driver +----------------> |
12-
| |registrar | | |
13-
| NodeStageVolume ----^------+ ----------+--------+
14-
| NodeUnstageVol | | Disk APIs
15-
| NodePublishVol |GetNodeInfo | Volume APIs
16-
| NodeResizeVol |NodeRegistrationStatus \\.\pipe\ | SMB APIs
17-
| NodeGetInfo | | File System operations
18-
| | | Windows System APIs
19-
| NodeGetVolStats | csi-plugin-reg.sock +-----------v---------+
20-
| | | |
21-
| + --+--------+ | csi-proxy.exe |
22-
| | kubelet.exe| +-------------------+
23-
| | | |
24-
| +---+--------++ |
25-
| | |
26-
| csi.sock | |
27-
| v v
28-
| +---+-------------------------------+------+
29-
| | |
30-
+---------------->| Host Os (Windows) |
31-
+------------------------------------------++
32-
```
6+
![CSI Proxy High Level Architecture Diagram](./docs/csi-proxy-high-level-arch.png)
7+
338
In the above diagram, there are 3 communication channels being utilized for CSI proxy:
349

3510
- `csi.sock` : This usually lives at c:/var/lib/kubelet/plugins/csi-plugin/csi.sock, and is used for the host OS to communicate with the CSI node plugin
@@ -44,11 +19,21 @@ that targets a specific area of storage (e.g. disk, volume, file, SMB, iSCSI).
4419
CSI drivers are recommended to be deployed as containers. Node plugin containers need to run with privileges to perform storage related operations. However, Windows does not support privileged containers currently. With CSIProxy, the node plugins can now be deployed as unprivileged pods that use the proxy to perform privileged storage operations on the node. Kubernetes administrators will need to install and maintain csi-proxy.exe on all Windows nodes in a manner similar to kubelet.exe.
4520

4621
## Compatibility
22+
4723
Recommended K8s Version: 1.18
4824

4925
## Feature status
5026

51-
CSI-proxy is currently in Beta status
27+
CSI Proxy is in a stable status ([GA Blogpost](https://kubernetes.io/blog/2021/08/09/csi-windows-support-with-csi-proxy-reaches-ga/)), the latest versions of the API Groups are:
28+
29+
| API Group | Latest Version | API Docs |
30+
| --- | --- | --- |
31+
| Disk | v1 | [link](./docs/apis/disk_v1.md) |
32+
| Filesystem | v1 | [link](./docs/apis/filesystem_v1.md) |
33+
| SMB | v1 | [link](./docs/apis/smb_v1.md) |
34+
| Volume | v1 | [link](./docs/apis/volume_v1.md) |
35+
| iSCSI | v1alpha2 | [link to proto](./client/api/iscsi/v1alpha2/api.proto) |
36+
| System | v1alpha1 | [link to proto](./client/api/system/v1alpha1/api.proto) |
5237

5338
## Build
5439

@@ -133,29 +118,29 @@ spec:
133118
- name: plugin-dir
134119
mountPath: C:\csi
135120
- name: csi-proxy-disk-pipe
136-
mountPath: \\.\pipe\csi-proxy-disk-v1beta2
121+
mountPath: \\.\pipe\csi-proxy-disk-v1
137122
- name: csi-proxy-volume-pipe
138-
mountPath: \\.\pipe\csi-proxy-volume-v1beta1
123+
mountPath: \\.\pipe\csi-proxy-volume-v1
139124
- name: csi-proxy-filesystem-pipe
140-
mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1
141-
- name: csi-proxy-iscsi-pipe
142-
mountPath: \\.\pipe\csi-proxy-iscsi-v1beta1
125+
mountPath: \\.\pipe\csi-proxy-filesystem-v1
126+
- name: csi-proxy-smb-pipe
127+
mountPath: \\.\pipe\csi-proxy-smb-v1
143128
volumes:
144129
- name: csi-proxy-disk-pipe
145130
hostPath:
146-
path: \\.\pipe\csi-proxy-disk-v1beta2
131+
path: \\.\pipe\csi-proxy-disk-v1
147132
type: ""
148133
- name: csi-proxy-volume-pipe
149134
hostPath:
150-
path: \\.\pipe\csi-proxy-volume-v1beta1
135+
path: \\.\pipe\csi-proxy-volume-v1
151136
type: ""
152137
- name: csi-proxy-filesystem-pipe
153138
hostPath:
154-
path: \\.\pipe\csi-proxy-filesystem-v1beta1
139+
path: \\.\pipe\csi-proxy-filesystem-v1
155140
type: ""
156-
- name: csi-proxy-iscsi-pipe
141+
- name: csi-proxy-smb-pipe
157142
hostPath:
158-
path: \\.\pipe\csi-proxy-iscsi-v1beta1
143+
path: \\.\pipe\csi-proxy-smb-v1
159144
type: ""
160145
- name: registration-dir
161146
hostPath:
@@ -173,6 +158,8 @@ spec:
173158

174159
## Community, discussion, contribution, and support
175160

161+
Check out [development.md](./docs/DEVELOPMENT.md) for instructions to set up a development enviroment to run CSI Proxy.
162+
176163
Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).
177164

178165
You can reach the maintainers of this project at:
@@ -190,10 +177,6 @@ You can reach the maintainers of this project at:
190177

191178
- [Google Compute Engine Persistent Disk CSI Driver](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver)
192179

193-
### Development
194-
195-
See [Development.md](./docs/DEVELOPMENT.md)
196-
197180
### Code of conduct
198181

199182
Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).

docs/csi-proxy-high-level-arch.png

251 KB
Loading

0 commit comments

Comments
 (0)