From 8645c71d9db5de7174ea6ca7e7183889b6249147 Mon Sep 17 00:00:00 2001 From: Lisa Pettyjohn Date: Mon, 27 Jul 2026 10:20:36 -0400 Subject: [PATCH] OSDOCS-16950#CQA work Stor6 - LVMS installation --- .../lvms-about-lvm-storage-installation.adoc | 5 ++- ...ger-operator-disconnected-environment.adoc | 13 +++---- ...cal-volume-manager-operator-using-cli.adoc | 5 +-- ...-operator-using-openshift-web-console.adoc | 8 ++-- ...l-volume-manager-operator-using-rhacm.adoc | 23 ++++++------ snippets/lvms-creating-lvmcluster.adoc | 18 ++++----- .../lvms-disconnected-ImageSetConfig.adoc | 37 ++++++++++--------- 7 files changed, 54 insertions(+), 55 deletions(-) diff --git a/modules/lvms-about-lvm-storage-installation.adoc b/modules/lvms-about-lvm-storage-installation.adoc index 708badfd21f..47aa26087dd 100644 --- a/modules/lvms-about-lvm-storage-installation.adoc +++ b/modules/lvms-about-lvm-storage-installation.adoc @@ -6,7 +6,8 @@ [id="lvms-about-lvm-storage-installation_{context}"] = Logical Volume Manager Storage installation -You can install Logical Volume Manager (LVM) Storage on an {product-title} cluster and configure it to dynamically provision storage for your workloads. +[role="_abstract"] +You can install {lvms} on an {product-title} cluster and configure it to dynamically provision storage for your workloads. You can install {lvms} by using the {product-title} CLI (`oc`), {product-title} web console, or {rh-rhacm-first}. @@ -31,4 +32,4 @@ The prerequisites to install {lvms} are as follows: You cannot wipe the disks that are in use. ==== -* If you want to install {lvms} by using {rh-rhacm-first}, ensure that you have installed {rh-rhacm} on an {product-title} cluster. See the "Installing LVM Storage using RHACM" section. \ No newline at end of file +* If you want to install {lvms} by using {rh-rhacm-first}, ensure that you have installed {rh-rhacm} on an {product-title} cluster. For more information, see "Installing {lvms} by using {rh-rhacm}". \ No newline at end of file diff --git a/modules/lvms-installing-logical-volume-manager-operator-disconnected-environment.adoc b/modules/lvms-installing-logical-volume-manager-operator-disconnected-environment.adoc index 3def2509a6a..ac6b9b26eeb 100644 --- a/modules/lvms-installing-logical-volume-manager-operator-disconnected-environment.adoc +++ b/modules/lvms-installing-logical-volume-manager-operator-disconnected-environment.adoc @@ -6,20 +6,19 @@ [id="lvms-installing-lvms-disconnected-env_{context}"] = Installing {lvms} in a disconnected environment -You can install {lvms} on {product-title} in a disconnected environment. All sections referenced in this procedure are linked in the "Additional resources" section. +[role="_abstract"] +Install {lvms} in a disconnected environment where your cluster has no internet access, such as air-gapped networks, high-security facilities, or regulated industries requiring network isolation for security and compliance. .Prerequisites - -* You read the "About disconnected installation mirroring" section. +* You read "About disconnected installation mirroring". * You have access to the {product-title} image repository. -* You created a mirror registry. +* You created a mirror registry (see "Creating a mirror registry with mirror registry for Red Hat OpenShift"). .Procedure - . Follow the steps in the "Creating the image set configuration" procedure. To create an `ImageSetConfiguration` custom resource (CR) for {lvms}, you can use the following example `ImageSetConfiguration` CR configuration: + include::snippets/lvms-disconnected-ImageSetConfig.adoc[] -. Follow the procedure in the "Mirroring an image set to a mirror registry" section. +. Follow the procedure in "Mirroring an image set to a mirror registry". -. Follow the procedure in the "Configuring image registry repository mirroring" section. \ No newline at end of file +. Follow the procedure in "Configuring image registry repository mirroring". \ No newline at end of file diff --git a/modules/lvms-installing-logical-volume-manager-operator-using-cli.adoc b/modules/lvms-installing-logical-volume-manager-operator-using-cli.adoc index cb447619383..4a954ca2bf5 100644 --- a/modules/lvms-installing-logical-volume-manager-operator-using-cli.adoc +++ b/modules/lvms-installing-logical-volume-manager-operator-using-cli.adoc @@ -6,7 +6,8 @@ [id="install-lvms-operator-cli_{context}"] = Installing {lvms} by using the CLI -As a cluster administrator, you can install {lvms} by using the OpenShift CLI. +[role="_abstract"] +You can install {lvms} by using the OpenShift CLI (`oc`) to dynamically provision local storage on clusters with limited resources. [NOTE] ==== @@ -14,12 +15,10 @@ The default namespace for the {lvms} Operator is `openshift-lvm-storage`. ==== .Prerequisites - * You have installed the OpenShift CLI (`oc`). * You have logged in to {product-title} as a user with `cluster-admin` and Operator installation permissions. .Procedure - . Create a YAML file with the configuration for creating a namespace: + .Example YAML configuration for creating a namespace diff --git a/modules/lvms-installing-logical-volume-manager-operator-using-openshift-web-console.adoc b/modules/lvms-installing-logical-volume-manager-operator-using-openshift-web-console.adoc index b10ba5c2252..8249f2150d5 100644 --- a/modules/lvms-installing-logical-volume-manager-operator-using-openshift-web-console.adoc +++ b/modules/lvms-installing-logical-volume-manager-operator-using-openshift-web-console.adoc @@ -6,7 +6,8 @@ [id="lvms-installing-lvms-with-web-console_{context}"] = Installing {lvms} by using the web console -You can install {lvms} by using the {product-title} web console. +[role="_abstract"] +Install {lvms} from the {product-title} web console to dynamically provision local storage on clusters with limited resources. [NOTE] ==== @@ -14,12 +15,10 @@ The default namespace for the {lvms} Operator is `openshift-lvm-storage`. ==== .Prerequisites - * You have access to the cluster. * You have access to {product-title} with `cluster-admin` and Operator installation permissions. .Procedure - . Log in to the {product-title} web console. . Click *Ecosystem* -> *Software Catalog*. . Click *LVM Storage* on the software catalog page. @@ -40,6 +39,5 @@ As a cluster administrator, you must manually approve the update request to upda . Optional: Select the *Enable Operator recommended cluster monitoring on this Namespace* checkbox. . Click *Install*. -.Verification steps - +.Verification * Verify that {lvms} shows a green tick, indicating successful installation. diff --git a/modules/lvms-installing-logical-volume-manager-operator-using-rhacm.adoc b/modules/lvms-installing-logical-volume-manager-operator-using-rhacm.adoc index 303198be8cf..357b7eccf60 100644 --- a/modules/lvms-installing-logical-volume-manager-operator-using-rhacm.adoc +++ b/modules/lvms-installing-logical-volume-manager-operator-using-rhacm.adoc @@ -6,7 +6,8 @@ [id="lvms-installing-odf-logical-volume-manager-operator-using-rhacm_{context}"] = Installing {lvms} by using {rh-rhacm} -To install {lvms} on the clusters by using {rh-rhacm-first}, you must create a `Policy` custom resource (CR). You can also configure the criteria to select the clusters on which you want to install {lvms}. +[role="_abstract"] +To install {lvms} on clusters by using {rh-rhacm-first}, you must create a `Policy` custom resource (CR) and configure the criteria to select the target clusters. [NOTE] ==== @@ -19,7 +20,6 @@ The `Policy` CR that is created to install {lvms} is also applied to the cluster * The cluster must be managed by {rh-rhacm}. .Procedure - . Log in to the {rh-rhacm} CLI using your {product-title} credentials. . Create a namespace. @@ -42,7 +42,7 @@ spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable - clusterSelector: <1> + clusterSelector: matchExpressions: - key: mykey operator: In @@ -82,7 +82,7 @@ spec: spec: object-templates: - complianceType: musthave - objectDefinition: <2> + objectDefinition: apiVersion: v1 kind: Namespace metadata: @@ -93,7 +93,7 @@ spec: pod-security.kubernetes.io/warn: privileged name: openshift-lvm-storage - complianceType: musthave - objectDefinition: <3> + objectDefinition: apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: @@ -103,7 +103,7 @@ spec: targetNamespaces: - openshift-lvm-storage - complianceType: musthave - objectDefinition: <4> + objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: @@ -117,10 +117,11 @@ spec: remediationAction: enforce severity: low ---- -<1> Set the `key` field and `values` field in `PlacementRule.spec.clusterSelector` to match the labels that are configured in the clusters on which you want to install {lvms}. -<2> Namespace configuration. -<3> The `OperatorGroup` CR configuration. -<4> The `Subscription` CR configuration. ++ +* `spec.clusterSelector`: Set the `key` field and `values` field in `PlacementRule.spec.clusterSelector` to match the labels that are configured in the clusters on which you want to install {lvms}. +* `spec.policy-templates[0].objectDefinition[0].spec.object-templates[0].objectDefinition`: Specifies the namespace configuration. +* `spec.policy-templates[0].objectDefinition[1].spec.object-templates[1].objectDefinition`: Specifies the `OperatorGroup` CR configuration. +* `spec.policy-templates[0].objectDefinition.spec.object-templates[2].objectDefinition`:Specifies the `Subscription` CR configuration. . Create the `Policy` CR by running the following command: + @@ -134,7 +135,7 @@ Upon creating the `Policy` CR, the following custom resources are created on the * `Namespace` * `OperatorGroup` * `Subscription` - ++ [NOTE] ==== The default namespace for the {lvms} Operator is `openshift-lvm-storage`. diff --git a/snippets/lvms-creating-lvmcluster.adoc b/snippets/lvms-creating-lvmcluster.adoc index b1ebd049e26..a443f0ec185 100644 --- a/snippets/lvms-creating-lvmcluster.adoc +++ b/snippets/lvms-creating-lvmcluster.adoc @@ -15,16 +15,16 @@ spec: storage: deviceClasses: - name: vg1 - fstype: ext4 <1> + fstype: ext4 default: true - nodeSelector: <1> + nodeSelector: nodeSelectorTerms: - matchExpressions: - key: mykey operator: In values: - ssd - deviceSelector: <1> + deviceSelector: paths: - /dev/disk/by-path/pci-0000:87:00.0-nvme-1 - /dev/disk/by-path/pci-0000:88:00.0-nvme-1 @@ -34,11 +34,11 @@ spec: forceWipeDevicesAndDestroyAllData: true thinPoolConfig: name: thin-pool-1 - sizePercent: 90 <1> + sizePercent: 90 overprovisionRatio: 10 - chunkSize: 128Ki <1> - chunkSizeCalculationPolicy: Static <1> - metadataSize: 1Gi <1> - metadataSizeCalculationPolicy: Host <1> + chunkSize: 128Ki + chunkSizeCalculationPolicy: Static + metadataSize: 1Gi + metadataSizeCalculationPolicy: Host ---- -<1> Optional field \ No newline at end of file +The following are optional fields: `fstype`, `nodeSelector`, `deviceSelector`, `sizePercent`, `chunkSize`, `chunkSizeCalculationPolicy`, `metadataSize`,`metadataSizeCalculationPolicy`. \ No newline at end of file diff --git a/snippets/lvms-disconnected-ImageSetConfig.adoc b/snippets/lvms-disconnected-ImageSetConfig.adoc index 5bd13696720..d3d79caef7f 100644 --- a/snippets/lvms-disconnected-ImageSetConfig.adoc +++ b/snippets/lvms-disconnected-ImageSetConfig.adoc @@ -4,33 +4,34 @@ ---- kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 -archiveSize: 4 <1> -storageConfig: <2> +archiveSize: 4 +storageConfig: registry: - imageURL: example.com/mirror/oc-mirror-metadata <3> + imageURL: example.com/mirror/oc-mirror-metadata skipTLS: false mirror: platform: channels: - - name: stable-{product-version} <4> + - name: stable-{product-version} type: ocp - graph: true <5> + graph: true operators: - - catalog: registry.redhat.io/redhat/redhat-operator-index:v{product-version} <6> + - catalog: registry.redhat.io/redhat/redhat-operator-index:v{product-version} packages: - - name: lvms-operator <7> + - name: lvms-operator channels: - - name: stable <8> + - name: stable additionalImages: - - name: registry.redhat.io/ubi9/ubi:latest <9> + - name: registry.redhat.io/ubi9/ubi:latest helm: {} ---- -<1> Set the maximum size (in GiB) of each file within the image set. -<2> Specify the location in which you want to save the image set. This location can be a registry or a local directory. You must configure the `storageConfig` field unless you are using the Technology Preview OCI feature. -<3> Specify the storage URL for the image stream when using a registry. For more information, see _Why use imagestreams_. -<4> Specify the channel from which you want to retrieve the {product-title} images. -<5> Set this field to `true` to generate the OpenShift Update Service (OSUS) graph image. For more information, see _About the OpenShift Update Service_. -<6> Specify the Operator catalog from which you want to retrieve the {product-title} images. -<7> Specify the Operator packages to include in the image set. If this field is empty, all packages in the catalog are retrieved. -<8> Specify the channels of the Operator packages to include in the image set. You must include the default channel for the Operator package even if you do not use the bundles in that channel. You can find the default channel by running the following command: `$ oc mirror list operators --catalog= --package=`. -<9> Specify any additional images to include in the image set. ++ +* `archiveSize`: Specifies the maximum size (in GiB) of each file within the image set. +* `storageConfig`: Specifies the location in which you want to save the image set. This location can be a registry or a local directory. You must configure the `storageConfig` field unless you are using the Technology Preview OCI feature. +* `storageConfig.registry.imageURL`: Specifies the storage URL for the image stream when using a registry. For more information, see "Why use imagestreams". +* `mirror.platform.name`: Specifies the channel from which you want to retrieve the {product-title} images. +* `mirror.platform.channels[].name`: Set this field to `true` to generate the OpenShift Update Service (OSUS) graph image. For more information, see "About the OpenShift Update Service". +* `mirror.operators.catalog`: Specifies the Operator catalog from which you want to retrieve the {product-title} images. +* `mirror.operators.packages.name`: Specifies the Operator packages to include in the image set. If this field is empty, all packages in the catalog are retrieved. +* `mirror.operators[].packages[].channels.name`: Specifies the channels of the Operator packages to include in the image set. You must include the default channel for the Operator package even if you do not use the bundles in that channel. You can find the default channel by running the following command: `$ oc mirror list operators --catalog= --package=`. +* `mirror.additionalImages.name`: Specifies any additional images to include in the image set.