<commit_before>// Module included in the following assemblies:
//
// * /operators/user/olm-creating-apps-from-installed-operators.adoc

[id="olm-creating-etcd-cluster-from-operator_{context}"]
= Creating an etcd cluster using an Operator

This procedure walks through creating a new etcd cluster using the etcd Operator, managed by Operator Lifecycle Manager (OLM).

.Prerequisites

* Access to an {product-title} {product-version} cluster.
* The etcd Operator already installed cluster-wide by an administrator.

.Procedure

. Create a new project in the {product-title} web console for this procedure. This example uses a project called `my-etcd`.

. Navigate to the *Operators -> Installed Operators* page. The Operators that have been installed to the cluster by the cluster administrator and are available for use are shown here as a list of cluster service versions (CSVs). CSVs are used to launch and manage the software provided by the Operator.
+
[TIP]
====
You can get this list from the CLI using:

[source,terminal]
----
$ oc get csv
----
====

. On the *Installed Operators* page, click *Copied*, and then click the etcd Operator to view more details and available actions.
+
As shown under *Provided APIs*, this Operator makes available three new resource types, including one for an *etcd Cluster* (the `EtcdCluster` resource). These objects work similar to the built-in native Kubernetes ones, such as `Deployment` or `ReplicaSet`, but contain logic specific to managing etcd.

. Create a new etcd cluster:

.. In the *etcd Cluster* API box, click *Create New*.

.. The next screen allows you to make any modifications to the minimal starting template of an `EtcdCluster` object, such as the size of the cluster. For now, click *Create* to finalize. This triggers the Operator to start up the pods, services, and other components of the new etcd cluster.

. Click the *Resources* tab to see that your project now contains a number of resources created and configured automatically by the Operator.
+
Verify that a Kubernetes service has been created that allows you to access the database from other pods in your project.

. All users with the `edit` role in a given project can create, manage, and delete application instances (an etcd cluster, in this example) managed by Operators that have already been created in the project, in a self-service manner, just like a cloud service. If you want to enable additional users with this ability, project administrators can add the role using the following command:
+
[source,terminal]
----
$ oc policy add-role-to-user edit <user> -n <target_project>
----

You now have an etcd cluster that will react to failures and rebalance data as pods become unhealthy or are migrated between nodes in the cluster. Most importantly, cluster administrators or developers with proper access can now easily use the database with their applications.
<commit_msg>Update creating app from Operator proc per updated UI<commit_after>// Module included in the following assemblies:
//
// * /operators/user/olm-creating-apps-from-installed-operators.adoc

[id="olm-creating-etcd-cluster-from-operator_{context}"]
= Creating an etcd cluster using an Operator

This procedure walks through creating a new etcd cluster using the etcd Operator, managed by Operator Lifecycle Manager (OLM).

.Prerequisites

* Access to an {product-title} {product-version} cluster.
* The etcd Operator already installed cluster-wide by an administrator.

.Procedure

. Create a new project in the {product-title} web console for this procedure. This example uses a project called `my-etcd`.

. Navigate to the *Operators -> Installed Operators* page. The Operators that have been installed to the cluster by the cluster administrator and are available for use are shown here as a list of cluster service versions (CSVs). CSVs are used to launch and manage the software provided by the Operator.
+
[TIP]
====
You can get this list from the CLI using:

[source,terminal]
----
$ oc get csv
----
====

. On the *Installed Operators* page, click the etcd Operator to view more details and available actions.
+
As shown under *Provided APIs*, this Operator makes available three new resource types, including one for an *etcd Cluster* (the `EtcdCluster` resource). These objects work similar to the built-in native Kubernetes ones, such as `Deployment` or `ReplicaSet`, but contain logic specific to managing etcd.

. Create a new etcd cluster:

.. In the *etcd Cluster* API box, click *Create instance*.

.. The next screen allows you to make any modifications to the minimal starting template of an `EtcdCluster` object, such as the size of the cluster. For now, click *Create* to finalize. This triggers the Operator to start up the pods, services, and other components of the new etcd cluster.

. Click on the *example* etcd cluster, then click the *Resources* tab to see that your project now contains a number of resources created and configured automatically by the Operator.
+
Verify that a Kubernetes service has been created that allows you to access the database from other pods in your project.

. All users with the `edit` role in a given project can create, manage, and delete application instances (an etcd cluster, in this example) managed by Operators that have already been created in the project, in a self-service manner, just like a cloud service. If you want to enable additional users with this ability, project administrators can add the role using the following command:
+
[source,terminal]
----
$ oc policy add-role-to-user edit <user> -n <target_project>
----

You now have an etcd cluster that will react to failures and rebalance data as pods become unhealthy or are migrated between nodes in the cluster. Most importantly, cluster administrators or developers with proper access can now easily use the database with their applications.

{'fraction_non_alphanumeric': 0.06394557823129252, 'fraction_numerical': 0.0, 'mean_word_length': 4.375685557586837, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4550225', 'n_tokens_mistral': 1504, 'n_tokens_neox': 1428, 'n_words': 849}