Skip to content
Merged
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
5 changes: 3 additions & 2 deletions modules/lvms-about-lvm-storage-installation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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}.

Expand All @@ -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.
* 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}".
Original file line number Diff line number Diff line change
Expand Up @@ -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.
. Follow the procedure in "Configuring image registry repository mirroring".
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,19 @@
[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]
====
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,19 @@
[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]
====
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.
Expand All @@ -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.
Original file line number Diff line number Diff line change
Expand Up @@ -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]
====
Expand All @@ -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.
Expand All @@ -42,7 +42,7 @@ spec:
clusterConditions:
- status: "True"
type: ManagedClusterConditionAvailable
clusterSelector: <1>
clusterSelector:
matchExpressions:
- key: mykey
operator: In
Expand Down Expand Up @@ -82,7 +82,7 @@ spec:
spec:
object-templates:
- complianceType: musthave
objectDefinition: <2>
objectDefinition:
apiVersion: v1
kind: Namespace
metadata:
Expand All @@ -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:
Expand All @@ -103,7 +103,7 @@ spec:
targetNamespaces:
- openshift-lvm-storage
- complianceType: musthave
objectDefinition: <4>
objectDefinition:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
Expand All @@ -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:
+
Expand All @@ -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`.
Expand Down
18 changes: 9 additions & 9 deletions snippets/lvms-creating-lvmcluster.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
The following are optional fields: `fstype`, `nodeSelector`, `deviceSelector`, `sizePercent`, `chunkSize`, `chunkSizeCalculationPolicy`, `metadataSize`,`metadataSizeCalculationPolicy`.
37 changes: 19 additions & 18 deletions snippets/lvms-disconnected-ImageSetConfig.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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=<catalog_name> --package=<package_name>`.
<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=<catalog_name> --package=<package_name>`.
* `mirror.additionalImages.name`: Specifies any additional images to include in the image set.