// Module included in the following assemblies:
//
// * virt/install/installing-virt-web.adoc

[id="virt-installing-virt-operator_{context}"]
= Installing the {VirtProductName} Operator

You can install the {VirtProductName} Operator from the {product-title} web console.

.Prerequisites

* Install {product-title} {product-version} on your cluster.
* Log in to the {product-title} web console as a user with `cluster-admin` permissions.

.Procedure

. Open a browser window and log in to the {product-title} web console.

. From the *Administrator* perspective, click *Operators* -> *OperatorHub*.

. In the *Filter by keyword* field, type *{VirtProductName}*.

. Select the *{VirtProductName}* tile.

. Read the information about the Operator and click *Install*.

. On the *Install Operator* page:

.. Select *stable* from the list of available *Update Channel* options. This ensures that:
* You install the version of {VirtProductName} that is compatible with your {product-title} version.
* When you update {product-title}, {VirtProductName} automatically updates to the next minor version.

.. For *Installed Namespace*, ensure that the *Operator recommended namespace* option is selected. This installs the Operator in the mandatory `openshift-cnv` namespace, which is automatically created if it does not exist.
+
[WARNING]
====
Attempting to install the {VirtProductName} Operator in a namespace other than `openshift-cnv` causes the installation to fail.
====

.. For *Approval Strategy*, ensure that *Automatic*, which is the default value, is selected. {VirtProductName} automatically updates when a new z-stream release is available.

. Click *Install* to make the Operator available to the `openshift-cnv` namespace.

. When the Operator installs successfully, click *Create HyperConverged*.

. Optional: Configure *Infra* and *Workloads* node placement options for {VirtProductName} components.

. Click *Create* to launch {VirtProductName}.

.Verification

* Navigate to the *Workloads* -> *Pods* page and monitor the {VirtProductName} pods until they are all *Running*. After all the pods display the *Running* state, you can use {VirtProductName}.