Skip to content

OSDOCS-14933:Feedback from SME reviewer for HCP Storage book. #95142

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ For most installation types, you must also take the following steps:

* Decide whether you need to configure storage for the application and tasks you are using in your {microshift-short} cluster, or disable the {microshift-short} storage plug-in completely.
** For more information about creating volume groups and persistent volumes on {op-system-base}, see link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_logical_volumes/overview-of-logical-volume-management_configuring-and-managing-logical-volumes[Overview of logical volume management].
** For more information about the {microshift-short} plug-in, see xref:../microshift_storage/microshift-storage-plugin-overview.adoc#microshift-storage-plugin-overview[Dynamic storage using the LVMS plugin].
** For more information about the {microshift-short} plug-in, see xref:../microshift_storage/microshift-storage-plugin-overview.adoc#[Dynamic storage using the LVMS plugin].

* Configure networking settings according to the access needs you plan for your {microshift-short} cluster and applications. Consider whether you want to use single or dual-stack networks, configure a firewall, or configure routes.
** For more information about {microshift-short} networking options, see xref:../microshift_networking/microshift-networking-settings.adoc#microshift-networking[Understanding networking settings].
Expand Down
2 changes: 1 addition & 1 deletion microshift_storage/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Stateful applications deployed in containers require persistent storage. {micros
[id="microshift-dynamic-provisioning-overview"]
=== Dynamic storage provisioning

Using dynamic provisioning allows you to create storage volumes on-demand, eliminating the need for pre-provisioned storage. For more information about how dynamic provisioning works in {product-title}, read xref:../microshift_storage/microshift-storage-plugin-overview.adoc#microshift-storage-plugin-overview[Dynamic provisioning].
Using dynamic provisioning allows you to create storage volumes on-demand, eliminating the need for pre-provisioned storage. For more information about how dynamic provisioning works in {product-title}, read xref:../microshift_storage/microshift-storage-plugin-overview.adoc#[Dynamic provisioning using the LVMS plugin].

//[id="microshift-container-storage-interface"]
//== Container Storage Interface (CSI)
Expand Down
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-available-plugins.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]

|Amazon Elastic Block Store (Amazon EBS)
|`kubernetes.io/aws-ebs`
|`ebs.csi.aws.com`
|For dynamic provisioning when using multiple clusters in different zones,
tag each node with `Key=kubernetes.io/cluster/<cluster_name>,Value=<cluster_id>`
where `<cluster_name>` and `<cluster_id>` are unique per cluster.
Expand Down
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-aws-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: <storage-class-name> <1>
provisioner: kubernetes.io/aws-ebs
provisioner: ebs.csi.aws.com
parameters:
type: io1 <2>
iopsPerGB: "10" <3>
Expand Down
8 changes: 4 additions & 4 deletions modules/dynamic-provisioning-change-default-class.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ $ oc get storageclass
[source,terminal]
----
NAME TYPE
gp3 (default) kubernetes.io/aws-ebs <1>
standard kubernetes.io/aws-ebs
gp3 (default) ebs.csi.aws.com <1>
standard ebs.csi.aws.com
----
<1> `(default)` indicates the default storage class.

Expand Down Expand Up @@ -72,6 +72,6 @@ $ oc get storageclass
[source,terminal]
----
NAME TYPE
gp3 kubernetes.io/aws-ebs
standard (default) kubernetes.io/aws-ebs
gp3 ebs.csi.aws.com
standard (default) ebs.csi.aws.com
----
26 changes: 26 additions & 0 deletions modules/dynamic-provisioning-storage-class-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ The following resource shows the parameters and default values that you
use to configure a storage class. This example uses the AWS
ElasticBlockStore (EBS) object definition.

ifndef::openshift-rosa,openshift-rosa-hcp[]
.Sample `StorageClass` definition
[source,yaml]
----
Expand All @@ -32,3 +33,28 @@ parameters: <6>
<4> (optional) Annotations for the storage class.
<5> (required) The type of provisioner associated with this storage class.
<6> (optional) The parameters required for the specific provisioner, this will change from plug-in to plug-in.
endif::openshift-rosa,openshift-rosa-hcp[]

ifdef::openshift-rosa,openshift-rosa-hcp[]
.Sample `StorageClass` definition
[source,yaml]
----
kind: StorageClass <1>
apiVersion: storage.k8s.io/v1 <2>
metadata:
name: <storage-class-name> <3>
annotations: <4>
storageclass.kubernetes.io/is-default-class: 'true'
...
provisioner: ebs.csi.aws.com <5>
parameters: <6>
type: gp3-csi
...
----
<1> (required) The API object type.
<2> (required) The current apiVersion.
<3> (required) The name of the storage class.
<4> (optional) Annotations for the storage class.
<5> (required) The type of provisioner associated with this storage class.
<6> (optional) The parameters required for the specific provisioner, this will change from plug-in to plug-in.
endif::openshift-rosa,openshift-rosa-hcp[]
15 changes: 10 additions & 5 deletions modules/persistent-storage-csi-drivers-supported.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,19 @@ ifndef::openshift-rosa,openshift-rosa-hcp[]
The AWS EFS and GCP Filestore CSI drivers are not installed by default, and must be installed manually. For instructions on installing the AWS EFS CSI driver, see link:https://access.redhat.com/documentation/en-us/openshift_dedicated/4/html/storage/using-container-storage-interface-csi#osd-persistent-storage-aws-efs-csi[Setting up AWS Elastic File Service CSI Driver Operator]. For instructions on installing the GCP Filestore CSI driver, see link:https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/storage/using-container-storage-interface-csi#persistent-storage-csi-google-cloud-file-overview[Google Compute Platform Filestore CSI Driver Operator].
====
endif::openshift-rosa,openshift-rosa-hcp[]

ifdef::openshift-rosa,openshift-rosa-hcp[]
[IMPORTANT]
====
The AWS EFS driver is not installed by default, and must be installed manually. For instructions about installing the AWS EFS CSI driver, see "AWS Elastic File Service CSI Driver Operator" in the _Additional resources_ section.
====
endif::openshift-rosa,openshift-rosa-hcp[]

The following table describes the CSI drivers that are
ifndef::openshift-dedicated[]
installed with {product-title}
installed with {product-title},
endif::openshift-dedicated[]
ifndef::openshift-rosa,openshift-rosa-hcp[]
supported by {product-title}
endif::openshift-rosa,openshift-rosa-hcp[]
and which CSI features they support, such as volume snapshots and resize.
supported by {product-title}, and which CSI features they support, such as volume snapshots and resize.

ifndef::openshift-rosa,openshift-rosa-hcp[]
[IMPORTANT]
Expand Down
17 changes: 15 additions & 2 deletions modules/persistent-storage-csi-efs-cross-account.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@
[id="persistent-storage-csi-efs-cross-account_{context}"]
= AWS EFS CSI cross account support

Cross account support allows you to have an {product-title} cluster in one AWS account and mount your file system in another AWS account by using the AWS Elastic File System (EFS) Container Storage Interface (CSI) driver.
Cross account support allows you to have
ifdef::openshift-rosa,openshift-rosa-hcp[]
a {product-title} cluster
endif::openshift-rosa,openshift-rosa-hcp[]
ifndef::openshift-rosa,openshift-rosa-hcp[]
an {product-title} cluster
endif::openshift-rosa,openshift-rosa-hcp[]
in one AWS account and mount your file system in another AWS account by using the AWS Elastic File System (EFS) Container Storage Interface (CSI) driver.

[NOTE]
====
Expand All @@ -16,7 +23,13 @@ Both the {product-title} cluster and EFS file system must be in the same region.

.Prerequisites

* Access to an {product-title} cluster with administrator rights
* Access to
ifdef::openshift-rosa,openshift-rosa-hcp[]
a {product-title} cluster
endif::openshift-rosa,openshift-rosa-hcp[]
ifndef::openshift-rosa,openshift-rosa-hcp[]
an {product-title} cluster
endif::openshift-rosa,openshift-rosa-hcp[] cluster with administrator rights

* Two valid AWS accounts

Expand Down
14 changes: 14 additions & 0 deletions modules/persistent-storage-csi-mysql-example.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ changes to the template.
# oc get pvc
----
+
ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
.Example output
[source,terminal]
----
Expand All @@ -45,3 +46,16 @@ ACCESS MODES STORAGECLASS AGE
mysql Bound kubernetes-dynamic-pv-3271ffcb4e1811e8 1Gi
RWO cinder 3s
----
endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
.Example output
[source,terminal]
----
NAME STATUS VOLUME CAPACITY
mysql Bound kubernetes-dynamic-pv-3271ffcb4e1811e8 1Gi

ACCESS MODES STORAGECLASS AGE
RWO gp3-csi 3s
----
endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]

2 changes: 1 addition & 1 deletion modules/storage-ephemeral-storage-manage.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ For example, the following quantities all represent approximately the same value

[IMPORTANT]
====
The suffixes for each byte quantity are case-sensitive. Be sure to use the correct case. Use the case-sensitive "M", such as used in "400M" to set the request at 400 megabytes. Use the case-sensitive "400Mi" to request 400 mebibytes. If you specify "400m" of ephemeral storage, the storage requests is only 0.4 bytes.
The suffixes for each byte quantity are case-sensitive. Be sure to use the correct case. Use the case-sensitive "M", such as used in "400M", to set the request at 400 megabytes. Use the case-sensitive "400Mi" to request 400 mebibytes. If you specify "400m" of ephemeral storage, the storage request is only 0.4 bytes.
====

[id=storage-ephemeral-storage-requests-limits_{context}]
Expand Down
2 changes: 1 addition & 1 deletion modules/storage-ephemeral-storage-overview.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ ifdef::microshift[]
Unlike persistent volumes, ephemeral storage is unstructured and the space is shared between all pods running on the node, other uses by the system, and {product-title}. The ephemeral storage framework allows pods to specify their transient local storage needs. It also allows {product-title} to protect the node against excessive use of local storage.
endif::microshift[]

While the ephemeral storage framework allows administrators and developers to better manage local storage, I/O throughput and latency are not directly effected.
While the ephemeral storage framework allows administrators and developers to better manage local storage, I/O throughput and latency are not directly affected.
2 changes: 1 addition & 1 deletion modules/storage-ephemeral-vols-lifecycle.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ With immediate binding, the scheduler is forced to select a node that has access
+
This volume binding option is recommended for generic ephemeral volumes because then the scheduler can choose a suitable node for the pod.

In terms of resource ownership, a pod that has generic ephemeral storage is the owner of the PVCs that provide that ephemeral storage. When the pod is deleted, the Kubernetes garbage collector deletes the PVC, which then usually triggers deletion of the volume because the default reclaim policy of storage classes is to delete volumes. You can create quasi-ephemeral local storage by using a storage class with a reclaim policy of retain: the storage outlives the pod, and in this case, you must ensure that volume clean-up happens separately. While these PVCs exist, they can be used like any other PVC. In particular, they can be referenced as data source in volume cloning or snapshotting. The PVC object also holds the current status of the volume.
In terms of resource ownership, a pod that has generic ephemeral storage is the owner of the PVCs that provide that ephemeral storage. When the pod is deleted, the Kubernetes garbage collector deletes the PVC, which then usually triggers deletion of the volume because the default reclaim policy of storage classes is to delete volumes. You can create quasi-ephemeral local storage by using a storage class with a reclaim policy of retain: the storage outlives the pod, and in this case, you must ensure that volume clean-up happens separately. While these PVCs exist, they can be used like any other PVC. In particular, they can be referenced as data sources in volume cloning or snapshotting. The PVC object also holds the current status of the volume.
8 changes: 6 additions & 2 deletions modules/storage-expanding-filesystem-pvc.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,18 @@
[id="expanding-pvc-filesystem_{context}"]
= Expanding persistent volume claims (PVCs) with a file system

ifndef::microshift[]
ifndef::microshift,openshift-rosa,openshift-rosa-hcp[]
Expanding PVCs based on volume types that need file system resizing, such as GCE, EBS, and Cinder, is a two-step process. First, expand the volume objects in the cloud provider. Second, expand the file system on the node.
endif::microshift[]
endif::microshift,openshift-rosa,openshift-rosa-hcp[]

ifdef::microshift[]
Expanding PVCs based on volume types that need file system resizing, such as GCE Persistent Disk volumes (gcePD), AWS Elastic Block Store EBS (EBS), and Cinder, is a two-step process. First, expand the volume objects in the cloud provider. Second, expand the file system on the node.
endif::microshift[]

ifdef::openshift-rosa,openshift-rosa-hcp[]
Expanding PVCs based on volume types that need file system resizing, such as AWS Elastic Block Store EBS (EBS) is a two-step process. First, expand the volume objects in the cloud provider. Second, expand the file system on the node.
endif::openshift-rosa,openshift-rosa-hcp[]

Expanding the file system on the node only happens when a new pod is started with the volume.

.Prerequisites
Expand Down
12 changes: 8 additions & 4 deletions modules/storage-persistent-storage-pv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ endif::openshift-rosa,openshift-rosa-hcp[]
// - GlusterFS
// - Ceph RBD
// - OpenStack Cinder
- AWS Elastic Block Store (EBS)
- AWS Elastic Block Store (EBS), which is installed by default.
ifdef::openshift-enterprise,openshift-webscale,openshift-origin,openshift-rosa,openshift-rosa-hcp[]
- AWS Elastic File Store (EFS)
endif::openshift-enterprise,openshift-webscale,openshift-origin,openshift-rosa,openshift-rosa-hcp[]
Expand Down Expand Up @@ -144,9 +144,12 @@ ifdef::openshift-enterprise,openshift-webscale,openshift-origin[]
endif::[]
|===
--
1. RWOP uses the SELinux mount feature. This feature is driver dependent, and enabled by default in ODF, AWS EBS, Azure Disk, GCP PD, IBM Cloud Block Storage volume, Cinder, and vSphere. For third-party drivers, please contact your storage vendor.
1. RWOP uses the SELinux mount feature. This feature is driver dependent, and enabled by default in AWS EBS
ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
, Azure Disk, GCP PD, IBM Cloud Block Storage volume, Cinder, vSphere,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 [error] OpenShiftAsciiDoc.SuggestAttribute: Use the AsciiDoc attribute '{ibm-cloud-title}' rather than the plain text product term 'IBM Cloud', unless your use case is an exception.

endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
and {rh-storage-first}. For third-party drivers, contact your storage vendor.
--
endif::microshift[]

ifndef::microshift[]
.Supported access modes for persistent volumes
Expand Down Expand Up @@ -302,6 +305,7 @@ The following PV types support mount options:
// - GlusterFS
// - Ceph RBD
- AWS Elastic Block Store (EBS)
- AWS Elastic File Storage (EFS)
ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
- Azure Disk
- Azure File
Expand All @@ -315,7 +319,7 @@ ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
- Local volume
- NFS
- {rh-storage-first} (Ceph RBD only)
- CIFS/SMB
- CIFS/SMB
- VMware vSphere

[NOTE]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,11 @@ include::modules/persistent-storage-csi-efs-driver-install.adoc[leveloffset=+2]
include::modules/storage-create-storage-class.adoc[leveloffset=+1]
include::modules/storage-create-storage-class-console.adoc[leveloffset=+2]
include::modules/storage-create-storage-class-cli.adoc[leveloffset=+2]
ifndef::openshift-dedicated[]

ifdef::openshift-rosa,openshift-rosa-hcp[]
include::modules/persistent-storage-csi-efs-cross-account.adoc[leveloffset=+1]
endif::openshift-dedicated[]
endif::openshift-rosa,openshift-rosa-hcp[]

include::modules/persistent-storage-csi-efs-create-volume.adoc[leveloffset=+1]

include::modules/persistent-storage-csi-dynamic-provisioning-aws-efs.adoc[leveloffset=+1]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ include::modules/persistent-storage-csi-driver-daemonset.adoc[leveloffset=+2]

include::modules/persistent-storage-csi-drivers-supported.adoc[leveloffset=+1]

ifdef::openshift-rosa,openshift-rosa-hcp[]
[role="_additional-resources"]
.Additional resources
* xref:../../storage/container_storage_interface/persistent-storage-csi-aws-efs.adoc#persistent-storage-csi-aws-efs[AWS Elastic File Service CSI Driver Operator]
endif::openshift-rosa,openshift-rosa-hcp[]

include::modules/persistent-storage-csi-dynamic-provisioning.adoc[leveloffset=+1]

include::modules/persistent-storage-csi-mysql-example.adoc[leveloffset=+1]
Expand Down
12 changes: 4 additions & 8 deletions storage/persistent_storage/persistent-storage-aws.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,21 @@ include::_attributes/common-attributes.adoc[]
toc::[]

ifdef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
{product-title} clusters are prebuilt with four storage classes that use Amazon Elastic Block Store (Amazon EBS) volumes. These storage classes are ready to use and some familiarity with Kubernetes and AWS is assumed.
{product-title} clusters are prebuilt with two storage classes that use Amazon Elastic Block Store (Amazon EBS) volumes. These storage classes are ready to use and some familiarity with Kubernetes and AWS is assumed.

Following are the four prebuilt storage classes:
The following are the two prebuilt storage classes:
[options="header"]

|===

| Name | Provisioner

| gp2 | kubernetes.io/aws-ebs

| gp2-csi | ebs.csi.aws.com

| gp3 (default) | kubernetes.io/aws-ebs

| gp3-csi | ebs.csi.aws.com
| gp3-csi (default) | ebs.csi.aws.com

|===
The gp3 storage class is set as default; however, you can select any of the storage classes as the default storage class.
The gp3-csi storage class is set as default; however, you can select any of the storage classes as the default storage class.
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]

ifndef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
Expand Down