diff --git a/book/src/Setup.md b/book/src/Setup.md index 6ee8c11a..f5e7f97f 100644 --- a/book/src/Setup.md +++ b/book/src/Setup.md @@ -71,7 +71,7 @@ If you want to use the `CSIDriver` CRD and get a preview of how configuration wi 1) Ensure the feature gate is enabled with `--feature-gates=CSIDriverRegistry=true` 2) Install the `CSIDriver` CRD on the Kubernetes cluster with the following command: ``` -$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csidriver.yaml +$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csidriver.yaml --validate=false ``` ### Listing registered CSI drivers @@ -129,16 +129,16 @@ items: Where: - `csiDrivers` - list of CSI drivers running on the node and their properties. - `driver` - the CSI driver that this object refers to. -- `nodeId` - the assigned identifier for the node as determined by the driver. -- `toplogykeys` - A list of topology keys assigned to the node as supported by the driver. +- `nodeID` - the assigned identifier for the node as determined by the driver. +- `topologyKeys` - A list of topology keys assigned to the node as supported by the driver. ### Enabling CSINodeInfo If you want to use the `CSINodeInfo` CRD and get a preview of how configuration will work at runtime, do the followings: -1) Ensure the feature gate is enabled with `--feature-gates=CSIDriverRegistry=true` +1) Ensure the feature gate is enabled with `--feature-gates=CSINodeInfo=true` 2) Install the `CSINodeInfo` CRD on the Kubernetes cluster with the following command: ``` -$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csinodeinfo.yaml +$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csinodeinfo.yaml --validate=false ``` @@ -224,6 +224,20 @@ by default for alpha): --feature-gates=VolumeSnapshotDataSource=true ``` +## Topology (alpha) +In order to support topology-aware dynamic provisioning mechanisms available in Kubernetes, the *external-provisioner* must have the Topology feature enabled: + +``` +--feature-gates=Topology=true +``` + +In addition, in the *Kubernetes cluster* the `CSINodeInfo` alpha feature must be enabled (refer to the [CSINodeInfo custom resource]{csinodeinfo-custom-resource-alpha} section for more info): + +``` +--feature-gates=CSINodeInfo=true +``` +as well as the `KubeletPluginsWatcher` beta feature (currently enabled by default). + ## Archives Please visit the [Archives](Archive.html) for setup instructions on previous versions of Kubernetes. diff --git a/docs/Setup.html b/docs/Setup.html index 87b6f20f..d3f028bc 100644 --- a/docs/Setup.html +++ b/docs/Setup.html @@ -188,7 +188,7 @@
--feature-gates=CSIDriverRegistry=trueCSIDriver CRD on the Kubernetes cluster with the following command:$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csidriver.yaml
+$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csidriver.yaml --validate=false
Listing registered CSI drivers
Using theCSIDriver CRD, it is now possible to query Kubernetes to get a list of registered drivers running in the cluster as shown below:
@@ -237,16 +237,16 @@ Kubernetes CSI Documentation
csiDrivers - list of CSI drivers running on the node and their properties.
driver - the CSI driver that this object refers to.
-nodeId - the assigned identifier for the node as determined by the driver.
-toplogykeys - A list of topology keys assigned to the node as supported by the driver.
+nodeID - the assigned identifier for the node as determined by the driver.
+topologyKeys - A list of topology keys assigned to the node as supported by the driver.
Enabling CSINodeInfo
If you want to use the CSINodeInfo CRD and get a preview of how configuration will work at runtime, do the followings:
-- Ensure the feature gate is enabled with
--feature-gates=CSIDriverRegistry=true
+- Ensure the feature gate is enabled with
--feature-gates=CSINodeInfo=true
- Install the
CSINodeInfo CRD on the Kubernetes cluster with the following command:
-$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csinodeinfo.yaml
+$> kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/master/pkg/crd/testdata/csinodeinfo.yaml --validate=false
CSI driver discovery (beta)
The CSI driver discovery uses the Kubelet Plugin Watcher feature which allows Kubelet to discover deployed CSI drivers automatically. The registrar sidecar container exposes an internal registration server via a Unix data socket path. The Kubelet monitors its registration directory to detect new registration requests. Once detected, the Kubelet contacts the registrar sidecar to query driver information. The retrieved CSI driver information (including the driver's own socket path) will be used for further interaction with the driver.
@@ -328,6 +328,14 @@ Kubernetes CSI Documentation
by default for alpha):
--feature-gates=VolumeSnapshotDataSource=true
+Topology (alpha)
+In order to support topology-aware dynamic provisioning mechanisms available in Kubernetes, the external-provisioner must have the Topology feature enabled:
+--feature-gates=Topology=true
+
+In addition, in the Kubernetes cluster the CSINodeInfo alpha feature must be enabled (refer to the [CSINodeInfo custom resource]{csinodeinfo-custom-resource-alpha} section for more info):
+--feature-gates=CSINodeInfo=true
+
+as well as the KubeletPluginsWatcher beta feature (currently enabled by default).
Archives
Please visit the Archives for setup instructions on previous versions of Kubernetes.
diff --git a/docs/book.js b/docs/book.js
index c9c2f4d6..854c648d 100644
--- a/docs/book.js
+++ b/docs/book.js
@@ -19,16 +19,9 @@ function playpen_text(playpen) {
// Hide Rust code lines prepended with a specific character
var hiding_character = "#";
- function fetch_with_timeout(url, options, timeout = 6000) {
- return Promise.race([
- fetch(url, options),
- new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeout))
- ]);
- }
-
var playpens = Array.from(document.querySelectorAll(".playpen"));
if (playpens.length > 0) {
- fetch_with_timeout("https://play.rust-lang.org/meta/crates", {
+ fetch("https://play.rust-lang.org/meta/crates", {
headers: {
'Content-Type': "application/json",
},
@@ -103,28 +96,33 @@ function playpen_text(playpen) {
let text = playpen_text(code_block);
var params = {
- version: "stable",
- optimize: "0",
- code: text
+ channel: "stable",
+ mode: "debug",
+ crateType: "bin",
+ tests: false,
+ code: text,
+ backtrace: false,
};
if (text.indexOf("#![feature") !== -1) {
- params.version = "nightly";
+ params.channel = "nightly";
}
result_block.innerText = "Running...";
- fetch_with_timeout("https://play.rust-lang.org/evaluate.json", {
+ var request = fetch("https://play.rust-lang.org/execute", {
headers: {
'Content-Type': "application/json",
},
method: 'POST',
mode: 'cors',
body: JSON.stringify(params)
- })
- .then(response => response.json())
- .then(response => result_block.innerText = response.result)
- .catch(error => result_block.innerText = "Playground Communication: " + error.message);
+ });
+
+ request
+ .then(function (response) { return response.json(); })
+ .then(function (response) { result_block.innerText = response.success ? response.stdout : response.stderr; })
+ .catch(function (error) { result_block.innerText = "Playground communication" + error.message; });
}
// Syntax highlighting Configuration
diff --git a/docs/css/variables.css b/docs/css/variables.css
index 29daa072..586706af 100644
--- a/docs/css/variables.css
+++ b/docs/css/variables.css
@@ -10,7 +10,7 @@
/* Themes */
.ayu {
- --bg: hsl(210, 25%, 8%);
+ --bg: #0f1419;
--fg: #c5c5c5;
--sidebar-bg: #14191f;
@@ -32,12 +32,12 @@
--theme-popup-border: #5c6773;
--theme-hover: #191f26;
- --quote-bg: hsl(226, 15%, 17%);
- --quote-border: hsl(226, 15%, 22%);
+ --quote-bg: #262933;
+ --quote-border: lighten(var(--quote-bg), 5%);
- --table-border-color: hsl(210, 25%, 13%);
- --table-header-bg: hsl(210, 25%, 28%);
- --table-alternate-bg: hsl(210, 25%, 11%);
+ --table-border-color: lighten(var(--bg), 5%);
+ --table-header-bg: lighten(var(--bg), 20%);
+ --table-alternate-bg: lighten(var(--bg), 3%);
--searchbar-border-color: #848484;
--searchbar-bg: #424242;
@@ -50,7 +50,7 @@
}
.coal {
- --bg: hsl(200, 7%, 8%);
+ --bg: #141617;
--fg: #98a3ad;
--sidebar-bg: #292c2f;
@@ -72,12 +72,12 @@
--theme-popup-border: #43484d;
--theme-hover: #1f2124;
- --quote-bg: hsl(234, 21%, 18%);
- --quote-border: hsl(234, 21%, 23%);
+ --quote-bg: #242637;
+ --quote-border: lighten(var(--quote-bg), 5%);
- --table-border-color: hsl(200, 7%, 13%);
- --table-header-bg: hsl(200, 7%, 28%);
- --table-alternate-bg: hsl(200, 7%, 11%);
+ --table-border-color: lighten(var(--bg), 5%);
+ --table-header-bg: lighten(var(--bg), 20%);
+ --table-alternate-bg: lighten(var(--bg), 3%);
--searchbar-border-color: #aaa;
--searchbar-bg: #b7b7b7;
@@ -90,7 +90,7 @@
}
.light {
- --bg: hsl(0, 0%, 100%);
+ --bg: #ffffff;
--fg: #333333;
--sidebar-bg: #fafafa;
@@ -112,12 +112,12 @@
--theme-popup-border: #cccccc;
--theme-hover: #e6e6e6;
- --quote-bg: hsl(197, 37%, 96%);
- --quote-border: hsl(197, 37%, 91%);
+ --quote-bg: #f2f7f9;
+ --quote-border: darken(var(--quote-bg), 5%);
- --table-border-color: hsl(0, 0%, 95%);
- --table-header-bg: hsl(0, 0%, 80%);
- --table-alternate-bg: hsl(0, 0%, 97%);
+ --table-border-color: darken(var(--bg), 5%);
+ --table-header-bg: darken(var(--bg), 20%);
+ --table-alternate-bg: darken(var(--bg), 3%);
--searchbar-border-color: #aaa;
--searchbar-bg: #fafafa;
@@ -130,7 +130,7 @@
}
.navy {
- --bg: hsl(226, 23%, 11%);
+ --bg: #161923;
--fg: #bcbdd0;
--sidebar-bg: #282d3f;
@@ -152,12 +152,12 @@
--theme-popup-border: #737480;
--theme-hover: #282e40;
- --quote-bg: hsl(226, 15%, 17%);
- --quote-border: hsl(226, 15%, 22%);
+ --quote-bg: #262933;
+ --quote-border: lighten(var(--quote-bg), 5%);
- --table-border-color: hsl(226, 23%, 16%);
- --table-header-bg: hsl(226, 23%, 31%);
- --table-alternate-bg: hsl(226, 23%, 14%);
+ --table-border-color: lighten(var(--bg), 5%);
+ --table-header-bg: lighten(var(--bg), 20%);
+ --table-alternate-bg: lighten(var(--bg), 3%);
--searchbar-border-color: #aaa;
--searchbar-bg: #aeaec6;
@@ -170,7 +170,7 @@
}
.rust {
- --bg: hsl(60, 9%, 87%);
+ --bg: #e1e1db;
--fg: #262625;
--sidebar-bg: #3b2e2a;
@@ -192,12 +192,12 @@
--theme-popup-border: #b38f6b;
--theme-hover: #99908a;
- --quote-bg: hsl(60, 5%, 75%);
- --quote-border: hsl(60, 5%, 70%);
+ --quote-bg: #c1c1bb;
+ --quote-border: darken(var(--quote-bg), 5%);
- --table-border-color: hsl(60, 9%, 82%);
+ --table-border-color: darken(var(--bg), 5%);
--table-header-bg: #b3a497;
- --table-alternate-bg: hsl(60, 9%, 84%);
+ --table-alternate-bg: darken(var(--bg), 3%);
--searchbar-border-color: #aaa;
--searchbar-bg: #fafafa;
diff --git a/docs/index.html b/docs/index.html
index 774ef08e..6c8f67e6 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -72,7 +72,7 @@
@@ -162,6 +162,10 @@ Kubernetes CSI Documentation
+
+
+
+
@@ -172,6 +176,10 @@ Kubernetes CSI Documentation
+
+
+
+
@@ -198,4 +206,4 @@ Kubernetes CSI Documentation