////
This module is included in the following assemblies:
* service_mesh/v2x/ossm-create-smcp.adoc
////

:_mod-docs-content-type: PROCEDURE
[id="ossm-control-plane-deploy-cli_{context}"]
= Deploying the {SMProductShortName} control plane using the CLI

You can deploy a basic `ServiceMeshControlPlane` from the command line.

.Prerequisites

* The {SMProductName} Operator must be installed.
* Access to the OpenShift CLI (`oc`).
ifndef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
* You are logged in to {product-title} as`cluster-admin`.
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
ifdef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
* You are logged in to {product-title} as a user with the `dedicated-admin` role.
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]

.Procedure

. Create a project named `istio-system`.
+
[source,terminal]
----
$ oc new-project istio-system
----
+
ifdef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
The `ServiceMeshControlPlane` resource must be installed in the `istio-system` project, separate from your microservices and Operators.
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]

ifndef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
. Create a `ServiceMeshControlPlane` file named `istio-installation.yaml` using the following example. The version of the {SMProductShortName} control plane determines the features available regardless of the version of the Operator.
+
.Example version {MaistraVersion} istio-installation.yaml
[source,yaml, subs="attributes,verbatim"]
----
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
  namespace: istio-system
spec:
  version: v{MaistraVersion}
  tracing:
    type: None
    sampling: 10000
  addons:
    kiali:
      enabled: true
      name: kiali
    grafana:
      enabled: true
----
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
ifdef::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
. Create a `ServiceMeshControlPlane` file named `istio-installation.yaml` using the following example. The version of the {SMProductShortName} control plane determines the features available regardless of the version of the Operator.
+
.Example `ServiceMeshControlPlane` resource
[source,yaml, subs="attributes,verbatim"]
----
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
  namespace: istio-system
spec:
  version: v{MaistraVersion}
  security:
    identity:
      type: ThirdParty <1>
  tracing:
    type: None
    sampling: 10000
  policy:
    type: Istiod
  addons:
    grafana:
      enabled: true
    kiali:
      enabled: true
    prometheus:
      enabled: true
  telemetry:
    type: Istiod
----
ifdef::openshift-rosa,openshift-rosa-hcp[]
<1> Specifies a required setting for {product-rosa}.
endif::openshift-rosa,openshift-rosa-hcp[]
ifdef::openshift-dedicated[]
<1> Specifies a required setting for {product-dedicated}.
endif::openshift-dedicated[]
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
+
. Run the following command to deploy the {SMProductShortName} control plane, where `<istio_installation.yaml>` includes the full path to your file.
+
[source,terminal]
----
$ oc create -n istio-system -f <istio_installation.yaml>
----
+
. To watch the progress of the pod deployment, run the following command:
+
[source,terminal]
----
$ oc get pods -n istio-system -w
----
+
You should see output similar to the following:
+
[source,terminal]
----
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-b4d59bd7-mrgbr                 2/2     Running   0          65m
istio-egressgateway-678dc97b4c-wrjkp   1/1     Running   0          108s
istio-ingressgateway-b45c9d54d-4qg6n   1/1     Running   0          108s
istiod-basic-55d78bbbcd-j5556          1/1     Running   0          108s
kiali-6476c7656c-x5msp                 1/1     Running   0          43m
prometheus-58954b8d6b-m5std            2/2     Running   0          66m
----
