// Module included in the following assemblies:
//
// * scalability_and_performance/ztp_far_edge/ztp-talm-updating-managed-policies.adoc

:_mod-docs-content-type: PROCEDURE
[id="talm-pao-update-{policy-gen-cr}_{context}"]
= Removing Performance Addon Operator subscriptions from deployed clusters with {policy-gen-cr} CRs

[role="_abstract"]
In earlier versions of {product-title}, the Performance Addon Operator provided automatic, low latency performance tuning for applications. In {product-title} 4.11 or later, these functions are part of the Node Tuning Operator.

Do not install the Performance Addon Operator on clusters running {product-title} 4.11 or later. If you upgrade to {product-title} 4.11 or later, the Node Tuning Operator automatically removes the Performance Addon Operator.

[NOTE]
====
You need to remove any policies that create Performance Addon Operator subscriptions to prevent a re-installation of the Operator.
====

The reference DU profile includes the Performance Addon Operator in the `{policy-gen-cr}` CR `{policy-prefix}common-ranGen.yaml`. To remove the subscription from deployed managed clusters, you must update `{policy-prefix}common-ranGen.yaml`.

[NOTE]
====
If you install Performance Addon Operator 4.10.3-5 or later on {product-title} 4.11 or later, the Performance Addon Operator detects the cluster version and automatically hibernates to avoid interfering with the Node Tuning Operator functions. However, to ensure best performance, remove the Performance Addon Operator from your {product-title} 4.11 clusters.
====

.Prerequisites

* Create a Git repository where you manage your custom site configuration data. The repository must be accessible from the hub cluster and be defined as a source repository for ArgoCD.

* Update to {product-title} 4.11 or later.

* Log in as a user with `cluster-admin` privileges.

.Procedure

. Change the `complianceType` to `mustnothave` for the Performance Addon Operator namespace, Operator group, and subscription in the `{policy-prefix}common-ranGen.yaml` file.
+
[source,yaml]
----
ifeval::["{policy-gen-cr}" == "PolicyGenTemplate"]
include::snippets/pgt-cnf-topology-aware-lifecycle-manager-pao-update.yaml[]
endif::[]
ifeval::["{policy-gen-cr}" == "PolicyGenerator"]
include::snippets/pg-cnf-topology-aware-lifecycle-manager-pao-update.yaml[]
endif::[]
----

. Merge the changes with your custom site repository and wait for the ArgoCD application to synchronize the change to the hub cluster. The status of the `common-subscriptions-policy` policy changes to `Non-Compliant`.

. Apply the change to your target clusters by using the {cgu-operator-full}. For more information about rolling out configuration changes, see the "Additional resources" section.

. Monitor the process. When the status of the `common-subscriptions-policy` policy for a target cluster  is `Compliant`, the Performance Addon Operator has been removed from the cluster. Get the status of the `common-subscriptions-policy` by running the following command:
+
[source,terminal]
----
$ oc get policy -n ztp-common common-subscriptions-policy
----

. Delete the Performance Addon Operator namespace, Operator group and subscription CRs from `{rangen-yaml-path}` in the `{policy-prefix}common-ranGen.yaml` file.

. Merge the changes with your custom site repository and wait for the ArgoCD application to synchronize the change to the hub cluster. The policy remains compliant.
