[ATMOSPHERE-514] fix ovn for backward compatibility (#2042)

we used to keep type: hv|gw labels in ovn-controller and ovn-controller-gw daemonsents to distinguish them.
in the PR #2023, we removed ovn-controller-gw daemonset and keep only one DS to sync with upstream as much as possible. so type: xx label is unnecessary. But we cannot remove it for running clouds because spec.selector field is immutable.
this pr reverts that label for backward compatibility.

Reviewed-by: Mohammed Naser <mnaser@vexxhost.com>
diff --git a/roles/ovn/tasks/main.yml b/roles/ovn/tasks/main.yml
index 746205f..ea16a01 100644
--- a/roles/ovn/tasks/main.yml
+++ b/roles/ovn/tasks/main.yml
@@ -12,6 +12,32 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+- name: Replace unnecessary label in ovn-controller daemonset
+  run_once: true
+  when: atmosphere_network_backend == 'ovn'
+  block:
+    - name: Check if ovn_controller DaemonSet exists
+      kubernetes.core.k8s_info:
+        api_version: apps/v1
+        kind: DaemonSet
+        namespace: "{{ ovn_helm_release_namespace }}"
+        name: ovn-controller
+        kubeconfig: "{{ ovn_helm_kubeconfig }}"
+      register: _ovn_controller_ds_info
+      failed_when: false
+
+    - name: Delete existing ovn controller DaemonSet if type label is found
+      kubernetes.core.k8s:
+        api_version: apps/v1
+        kind: DaemonSet
+        name: ovn-controller
+        namespace: "{{ ovn_helm_release_namespace }}"
+        state: absent
+        kubeconfig: "{{ ovn_helm_kubeconfig }}"
+      when:
+        - _ovn_controller_ds_info.resources | length > 0
+        - "'type' in _ovn_controller_ds_info.resources[0].spec.selector.matchLabels"
+
 - name: Deploy Helm chart
   run_once: true
   when: atmosphere_network_backend == 'ovn'