:_mod-docs-content-type: ASSEMBLY
[id="installing-ossm-v1x"]
= Installing Service Mesh
include::_attributes/common-attributes.adoc[]
:context: installing-ossm-v1x

toc::[]

include::snippets/ossm-out-of-support.adoc[]

Installing the {SMProductShortName} involves installing the OpenShift Elasticsearch, Jaeger, Kiali and {SMProductShortName} Operators, creating and managing a `ServiceMeshControlPlane` resource to deploy the control plane, and creating a `ServiceMeshMemberRoll` resource to specify the namespaces associated with the {SMProductShortName}.

[NOTE]
====
Mixer's policy enforcement is disabled by default. You must enable it to run policy tasks. See xref:../../service_mesh/v1x/prepare-to-deploy-applications-ossm.adoc#ossm-mixer-policy-1x_deploying-applications-ossm-v1x[Update Mixer policy enforcement] for instructions on enabling Mixer policy enforcement.
====

[NOTE]
====
Multi-tenant control plane installations are the default configuration.
====

[NOTE]
====
The {SMProductShortName} documentation uses `istio-system` as the example project, but you can deploy the service mesh to any project.
====

== Prerequisites
* Follow the xref:../../service_mesh/v1x/preparing-ossm-installation.adoc#preparing-ossm-installation-v1x[Preparing to install {SMProductName}] process.
* An account with the `cluster-admin` role.

The {SMProductShortName} installation process uses the software catalog to install the `ServiceMeshControlPlane` custom resource definition within the `openshift-operators` project. The {SMProductName} defines and monitors the `ServiceMeshControlPlane` related to the deployment, update, and deletion of the control plane.

Starting with {SMProductName} {SMProductVersion1x}, you must install the OpenShift Elasticsearch Operator, the Jaeger Operator, and the Kiali Operator before the {SMProductName} Operator can install the control plane.

include::modules/ossm-install-elasticsearch.adoc[leveloffset=+1]

include::modules/ossm-install-jaeger-operator.adoc[leveloffset=+1]

include::modules/ossm-install-kiali.adoc[leveloffset=+1]

include::modules/ossm-install-ossm-operator.adoc[leveloffset=+1]

include::modules/ossm-control-plane-deploy-1x.adoc[leveloffset=+1]

For a multitenant installation, {SMProductName} supports multiple independent control planes within the cluster.  You can create reusable configurations with `ServiceMeshControlPlane` templates.  For more information, see xref:../../service_mesh/v1x/prepare-to-deploy-applications-ossm.adoc#ossm-control-plane-templates-1x_deploying-applications-ossm-v1x[Creating control plane templates].

include::modules/ossm-member-roll-create.adoc[leveloffset=+1]

include::modules/ossm-member-roll-modify.adoc[leveloffset=+1]

== Manual updates

If you choose to update manually, the Operator Lifecycle Manager (OLM) controls the installation, upgrade, and role-based access control (RBAC) of Operators in a cluster. OLM runs by default in {product-title}.
OLM uses CatalogSources, which use the Operator Registry API, to query for available Operators as well as upgrades for installed Operators.

ifdef::openshift-enterprise[]
* For more information about how {product-title} handled upgrades, refer to the xref:../../operators/understanding/olm/olm-understanding-olm.adoc#olm-overview_olm-understanding-olm[Operator Lifecycle Manager] documentation.
endif::[]

include::modules/ossm-update-app-sidecar.adoc[leveloffset=+2]

== Next steps

* xref:../../service_mesh/v1x/prepare-to-deploy-applications-ossm.adoc#deploying-applications-ossm-v1x[Prepare to deploy applications] on {SMProductName}.
