Skip to content

Commit afd5b33

Browse files
committed
Fix lifecycle
1 parent 3b67dfa commit afd5b33

File tree

1 file changed

+36
-33
lines changed

1 file changed

+36
-33
lines changed

spec.md

+36-33
Original file line numberDiff line numberDiff line change
@@ -165,19 +165,20 @@ capability.
165165

166166
```
167167
CreateVolume +------------+ DeleteVolume
168-
+------------->| CREATED +--------------+
169-
| +---+----^---+ |
170-
| Controller | | Controller v
171-
+++ Publish | | Unpublish +++
172-
|X| Volume | | Volume | |
173-
+-+ +---v----+---+ +-+
174-
| NODE_READY |
175-
+---+----^---+
176-
Node | | Node
177-
Publish | | Unpublish
178-
Volume | | Volume
179-
+---v----+---+
180-
| PUBLISHED |
168+
+------------->| CREATED +-------------------------+
169+
| | <---------+ |
170+
| +---+----^---+ | |
171+
| Controller | | Controller | v
172+
+++ Publish | | Unpublish | +++
173+
|X| Volume | | Volume | | |
174+
+-+ +---v----+---+ | Controller +-+
175+
| NODE_READY | | Unpublish
176+
+---+----^---+ | Volume
177+
Node | | Node | (forced)
178+
Publish | | Unpublish |
179+
Volume | | Volume |
180+
+---v----+---+ |
181+
| PUBLISHED +---------+
181182
+------------+
182183
183184
Figure 5: The lifecycle of a dynamically provisioned volume, from
@@ -186,25 +187,26 @@ creation to destruction.
186187

187188
```
188189
CreateVolume +------------+ DeleteVolume
189-
+------------->| CREATED +--------------+
190-
| +---+----^---+ |
191-
| Controller | | Controller v
192-
+++ Publish | | Unpublish +++
193-
|X| Volume | | Volume | |
194-
+-+ +---v----+---+ +-+
195-
| NODE_READY |
196-
+---+----^---+
197-
Node | | Node
198-
Stage | | Unstage
199-
Volume | | Volume
200-
+---v----+---+
201-
| VOL_READY |
202-
+---+----^---+
203-
Node | | Node
204-
Publish | | Unpublish
205-
Volume | | Volume
206-
+---v----+---+
207-
| PUBLISHED |
190+
+------------->| CREATED +--------------------------+
191+
| | <--------+ |
192+
| +---+----^---+ | |
193+
| Controller | | Controller | v
194+
+++ Publish | | Unpublish | +++
195+
|X| Volume | | Volume | | |
196+
+-+ +---v----+---+ | Controller +-+
197+
| NODE_READY | | Unpublish
198+
+---+----^---+ | Volume
199+
Node | | Node | (forced)
200+
Stage | | Unstage |
201+
Volume | | Volume |
202+
+---v----+---+ |
203+
| VOL_READY +--------+
204+
+---+----^---+ |
205+
Node | | Node |
206+
Publish | | Unpublish |
207+
Volume | | Volume |
208+
+---v----+---+ |
209+
| PUBLISHED +--------+
208210
+------------+
209211
210212
Figure 6: The lifecycle of a dynamically provisioned volume, from
@@ -1318,7 +1320,8 @@ The CO MUST implement the specified error recovery behavior when it encounters t
13181320

13191321
Controller Plugin MUST implement this RPC call if it has `PUBLISH_UNPUBLISH_VOLUME` controller capability.
13201322
This RPC is a reverse operation of `ControllerPublishVolume`.
1321-
It MUST be called after all `NodeUnstageVolume` and `NodeUnpublishVolume` on the volume are called and succeed.
1323+
Basically, it MUST be called after all `NodeUnstageVolume` and `NodeUnpublishVolume` on the volume are called and succeed.
1324+
When control plane retry the `NodeUnstage` / `NodeUnpublish` but it can't reach the node(for example node shut down due to a hardware failure or a software problem), it proceeds on to `ControllerUnpublish`.
13221325
The Plugin SHOULD perform the work that is necessary for making the volume ready to be consumed by a different node.
13231326
The Plugin MUST NOT assume that this RPC will be executed on the node where the volume was previously used.
13241327

0 commit comments

Comments
 (0)