<commit_before>// Module included in the following assembly:
//
// * gitops/configuring_argo_cd_to_recursively_sync_a_git_repository_with_your_application/configuring-an-openshift-cluster-by-deploying-an-application-with-cluster-configurations.adoc

:_content-type: PROCEDURE
[id="run-argo-cd-instance-on-cluster_{context}"]

= Running the Argo CD instance at the cluster-level

The default Argo CD instance and the accompanying controllers, installed by the {gitops-title} Operator, can now run on the infrastructure nodes of the cluster by setting a simple configuration toggle.

[discrete]
.Procedure
. Label the existing nodes:
+
[source,terminal]
----
$ oc label node <node-name> node-role.kubernetes.io/infra=""
----
+
. Optional: If required, you can also apply taints and isolate the workloads on infrastructure nodes and prevent other workloads from scheduling on these nodes:
+
[source,terminal]
----
$ oc adm taint nodes -l node-role.kubernetes.io/infra
infra=reserved:NoSchedule infra=reserved:NoExecute
----
. Add the `runOnInfra` toggle in the `GitOpsService` custom resource:
+
[source,yaml]
----
apiVersion: pipelines.openshift.io/v1alpha1
kind: GitopsService
metadata:
  name: cluster
spec:
  runOnInfra: true
----
. Optional: If taints have been added to the nodes, then add `tolerations` to the `GitOpsService` custom resource, for example:
+
[source,yaml]
----
  spec:
    runOnInfra: true
    tolerations:
    - effect: NoSchedule
      key: infra
      value: reserved
    - effect: NoExecute
      key: infra<commit_msg>Github-41621: added \ to extend command to second line<commit_after>// Module included in the following assembly:
//
// * gitops/configuring_argo_cd_to_recursively_sync_a_git_repository_with_your_application/configuring-an-openshift-cluster-by-deploying-an-application-with-cluster-configurations.adoc

:_content-type: PROCEDURE
[id="run-argo-cd-instance-on-cluster_{context}"]

= Running the Argo CD instance at the cluster-level

The default Argo CD instance and the accompanying controllers, installed by the {gitops-title} Operator, can now run on the infrastructure nodes of the cluster by setting a simple configuration toggle.

[discrete]
.Procedure
. Label the existing nodes:
+
[source,terminal]
----
$ oc label node <node-name> node-role.kubernetes.io/infra=""
----
+
. Optional: If required, you can also apply taints and isolate the workloads on infrastructure nodes and prevent other workloads from scheduling on these nodes:
+
[source,terminal]
----
$ oc adm taint nodes -l node-role.kubernetes.io/infra \
infra=reserved:NoSchedule infra=reserved:NoExecute
----
. Add the `runOnInfra` toggle in the `GitOpsService` custom resource:
+
[source,yaml]
----
apiVersion: pipelines.openshift.io/v1alpha1
kind: GitopsService
metadata:
  name: cluster
spec:
  runOnInfra: true
----
. Optional: If taints have been added to the nodes, then add `tolerations` to the `GitOpsService` custom resource, for example:
+
[source,yaml]
----
  spec:
    runOnInfra: true
    tolerations:
    - effect: NoSchedule
      key: infra
      value: reserved
    - effect: NoExecute
      key: infra
{'fraction_non_alphanumeric': 0.10099073186321508, 'fraction_numerical': 0.0028763183125599234, 'mean_word_length': 4.260504201680672, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, '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': '3400596', 'n_tokens_mistral': 968, 'n_tokens_neox': 920, 'n_words': 302}