Skip to content

Commit

Permalink
describe what if topology not match exactly
Browse files Browse the repository at this point in the history
Describe what to expect when the accessible_topology of node and volume does
not match exactly.
  • Loading branch information
huww98 committed Mar 11, 2024
1 parent abf6346 commit 2122a40
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 3 deletions.
16 changes: 15 additions & 1 deletion csi.proto
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,11 @@ message Volume {
// COs MAY use this information along with the topology information
// returned by NodeGetInfo to ensure that a given volume is accessible
// from a given node when scheduling workloads.
// The volume is accessible from all locations in the
// specified topology.
// The volume is accessible from a node if the volume's
// accessible_topology is a superset of the node's
// accessible_topology.
// This field is OPTIONAL. If it is not specified, the CO MAY assume
// the volume is equally accessible from all nodes in the cluster and
// MAY schedule workloads referencing the volume on any available
Expand Down Expand Up @@ -1677,6 +1682,10 @@ message NodeGetInfoResponse {
// COs MAY use this information along with the topology information
// returned in CreateVolumeResponse to ensure that a given volume is
// accessible from a given node when scheduling workloads.
// The node can access some of the locations in the
// specified topology.
// The node can access a volume if the node's accessible_topology
// is a subset of the volume's accessible_topology.
// This field is OPTIONAL. If it is not specified, the CO MAY assume
// the node is not subject to any topological constraint, and MAY
// schedule workloads that reference any volume V, such that there are
Expand All @@ -1686,7 +1695,12 @@ message NodeGetInfoResponse {
// accessible_topology =
// {"region": "R1", "zone": "Z2"}
// Indicates the node exists within the "region" "R1" and the "zone"
// "Z2".
// "Z2". And it can access the following volumes:
// Volume 1: accessible_topology = {"region": "R1", "zone": "Z2"}
// Volume 2: accessible_topology = {"region": "R1"}
// But can not access the following volume:
// Volume 3: accessible_topology =
// {"region": "R1", "zone": "Z2", "rack": "R3"}
Topology accessible_topology = 3;
}
message NodeExpandVolumeRequest {
Expand Down
19 changes: 18 additions & 1 deletion lib/go/csi/csi.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 15 additions & 1 deletion spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -1050,6 +1050,11 @@ message Volume {
// COs MAY use this information along with the topology information
// returned by NodeGetInfo to ensure that a given volume is accessible
// from a given node when scheduling workloads.
// The volume is accessible from all locations in the
// specified topology.
// The volume is accessible from a node if the volume's
// accessible_topology is a superset of the node's
// accessible_topology.
// This field is OPTIONAL. If it is not specified, the CO MAY assume
// the volume is equally accessible from all nodes in the cluster and
// MAY schedule workloads referencing the volume on any available
Expand Down Expand Up @@ -2767,6 +2772,10 @@ message NodeGetInfoResponse {
// COs MAY use this information along with the topology information
// returned in CreateVolumeResponse to ensure that a given volume is
// accessible from a given node when scheduling workloads.
// The node can access some of the locations in the
// specified topology.
// The node can access a volume if the node's accessible_topology
// is a subset of the volume's accessible_topology.
// This field is OPTIONAL. If it is not specified, the CO MAY assume
// the node is not subject to any topological constraint, and MAY
// schedule workloads that reference any volume V, such that there are
Expand All @@ -2776,7 +2785,12 @@ message NodeGetInfoResponse {
// accessible_topology =
// {"region": "R1", "zone": "Z2"}
// Indicates the node exists within the "region" "R1" and the "zone"
// "Z2".
// "Z2". And it can access the following volumes:
// Volume 1: accessible_topology = {"region": "R1", "zone": "Z2"}
// Volume 2: accessible_topology = {"region": "R1"}
// But can not access the following volume:
// Volume 3: accessible_topology =
// {"region": "R1", "zone": "Z2", "rack": "R3"}
Topology accessible_topology = 3;
}
```
Expand Down

0 comments on commit 2122a40

Please sign in to comment.