chore: further ovn cleanup
diff --git a/charts/ovn/templates/bin/_ovn-controller-init.sh.tpl b/charts/ovn/templates/bin/_ovn-controller-init.sh.tpl
index aa3ff6d..248cfc9 100644
--- a/charts/ovn/templates/bin/_ovn-controller-init.sh.tpl
+++ b/charts/ovn/templates/bin/_ovn-controller-init.sh.tpl
@@ -49,7 +49,7 @@
 {{- if empty .Values.conf.ovn_remote -}}
 {{- $sb_svc_name := "ovn-ovsdb-sb" -}}
 {{- $sb_svc := (tuple $sb_svc_name "internal" . | include "helm-toolkit.endpoints.hostname_fqdn_endpoint_lookup") -}}
-{{- $sb_port := (tuple "ovn-ovsdb-sb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup") -}}
+{{- $sb_port := (tuple "ovn-ovsdb-sb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup") -}}
 {{- $sb_service_list := list -}}
 {{- range $i := until (.Values.pod.replicas.ovn_ovsdb_sb | int) -}}
   {{- $sb_service_list = printf "tcp:%s-%d.%s:%s" $sb_svc_name $i $sb_svc $sb_port | append $sb_service_list -}}
diff --git a/charts/ovn/templates/bin/_ovn-northd.sh.tpl b/charts/ovn/templates/bin/_ovn-northd.sh.tpl
index fefd793..bb61c58 100644
--- a/charts/ovn/templates/bin/_ovn-northd.sh.tpl
+++ b/charts/ovn/templates/bin/_ovn-northd.sh.tpl
@@ -18,7 +18,7 @@
 
 {{- $nb_svc_name := "ovn-ovsdb-nb" -}}
 {{- $nb_svc := (tuple $nb_svc_name "internal" . | include "helm-toolkit.endpoints.hostname_fqdn_endpoint_lookup") -}}
-{{- $nb_port := (tuple "ovn-ovsdb-nb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup") -}}
+{{- $nb_port := (tuple "ovn-ovsdb-nb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup") -}}
 {{- $nb_service_list := list -}}
 {{- range $i := until (.Values.pod.replicas.ovn_ovsdb_nb | int) -}}
   {{- $nb_service_list = printf "tcp:%s-%d.%s:%s" $nb_svc_name $i $nb_svc $nb_port | append $nb_service_list -}}
@@ -26,7 +26,7 @@
 
 {{- $sb_svc_name := "ovn-ovsdb-sb" -}}
 {{- $sb_svc := (tuple $sb_svc_name "internal" . | include "helm-toolkit.endpoints.hostname_fqdn_endpoint_lookup") -}}
-{{- $sb_port := (tuple "ovn-ovsdb-sb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup") -}}
+{{- $sb_port := (tuple "ovn-ovsdb-sb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup") -}}
 {{- $sb_service_list := list -}}
 {{- range $i := until (.Values.pod.replicas.ovn_ovsdb_sb | int) -}}
   {{- $sb_service_list = printf "tcp:%s-%d.%s:%s" $sb_svc_name $i $sb_svc $sb_port | append $sb_service_list -}}
diff --git a/charts/ovn/templates/bin/_ovsdb-server.sh.tpl b/charts/ovn/templates/bin/_ovsdb-server.sh.tpl
index e023505..3198908 100644
--- a/charts/ovn/templates/bin/_ovsdb-server.sh.tpl
+++ b/charts/ovn/templates/bin/_ovsdb-server.sh.tpl
@@ -34,6 +34,7 @@
 
 function start () {
   /usr/share/ovn/scripts/ovn-ctl start_${OVS_DATABASE}_ovsdb ${ARGS[@]}
+  /usr/bin/ovn-${OVS_DATABASE}ctl set-connection ptcp:${OVS_PORT}:0.0.0.0 -- set connection . inactivity_probe=60000
 
   tail --follow=name /var/log/ovn/ovsdb-server-${OVS_DATABASE}.log
 }
diff --git a/charts/ovn/templates/service-ovsdb-nb.yaml b/charts/ovn/templates/service-ovsdb-nb.yaml
index 39dbaf3..b93da9b 100644
--- a/charts/ovn/templates/service-ovsdb-nb.yaml
+++ b/charts/ovn/templates/service-ovsdb-nb.yaml
@@ -23,6 +23,8 @@
   ports:
     - name: ovsdb
       port: {{ tuple "ovn-ovsdb-nb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+    - name: raft
+      port: {{ tuple "ovn-ovsdb-nb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
   selector:
 {{ tuple $envAll "ovn" "ovn-ovsdb-nb" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
 {{- end }}
diff --git a/charts/ovn/templates/service-ovsdb-sb.yaml b/charts/ovn/templates/service-ovsdb-sb.yaml
index 871540b..70f62c6 100644
--- a/charts/ovn/templates/service-ovsdb-sb.yaml
+++ b/charts/ovn/templates/service-ovsdb-sb.yaml
@@ -23,6 +23,8 @@
   ports:
     - name: ovsdb
       port: {{ tuple "ovn-ovsdb-sb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+    - name: raft
+      port: {{ tuple "ovn-ovsdb-sb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
   selector:
 {{ tuple $envAll "ovn" "ovn-ovsdb-sb" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
 {{- end }}
diff --git a/charts/ovn/templates/statefulset-ovsdb-nb.yaml b/charts/ovn/templates/statefulset-ovsdb-nb.yaml
index 8d81e62..bda1ab9 100644
--- a/charts/ovn/templates/statefulset-ovsdb-nb.yaml
+++ b/charts/ovn/templates/statefulset-ovsdb-nb.yaml
@@ -53,9 +53,12 @@
 {{ tuple $envAll $envAll.Values.pod.resources.server | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
           ports:
             - containerPort: {{ tuple "ovn-ovsdb-nb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+            - containerPort: {{ tuple "ovn-ovsdb-nb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
           env:
             - name: OVS_DATABASE
               value: nb
+            - name: OVS_PORT
+              value: "{{ tuple "ovn-ovsdb-nb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}"
           command:
             - /tmp/ovsdb-server.sh
             - start
diff --git a/charts/ovn/templates/statefulset-ovsdb-sb.yaml b/charts/ovn/templates/statefulset-ovsdb-sb.yaml
index 826a67b..3f4c6b9 100644
--- a/charts/ovn/templates/statefulset-ovsdb-sb.yaml
+++ b/charts/ovn/templates/statefulset-ovsdb-sb.yaml
@@ -53,9 +53,12 @@
 {{ tuple $envAll $envAll.Values.pod.resources.server | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
           ports:
             - containerPort: {{ tuple "ovn-ovsdb-sb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+            - containerPort: {{ tuple "ovn-ovsdb-sb" "internal" "raft" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
           env:
             - name: OVS_DATABASE
               value: sb
+            - name: OVS_PORT
+              value: "{{ tuple "ovn-ovsdb-sb" "internal" "ovsdb" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}"
           command:
             - /tmp/ovsdb-server.sh
             - start
diff --git a/charts/ovn/values.yaml b/charts/ovn/values.yaml
index 6774dcf..3e3d69d 100644
--- a/charts/ovn/values.yaml
+++ b/charts/ovn/values.yaml
@@ -236,6 +236,8 @@
       default: null
     port:
       ovsdb:
+        default: 6641
+      raft:
         default: 6643
   ovn_ovsdb_sb:
     name: ovn-ovsdb-sb
@@ -246,6 +248,8 @@
       default: null
     port:
       ovsdb:
+        default: 6642
+      raft:
         default: 6644
 
 network_policy:
diff --git a/hack/sync-charts.sh b/hack/sync-charts.sh
index fcf2d89..54bdb57 100755
--- a/hack/sync-charts.sh
+++ b/hack/sync-charts.sh
@@ -135,7 +135,7 @@
 OVN_VERSION=0.1.2
 curl -sL https://tarballs.opendev.org/openstack/openstack-helm-infra/ovn-${OVN_VERSION}.tgz \
   | tar -xz -C ${ATMOSPHERE}/charts
-curl 'https://review.opendev.org/changes/openstack%2Fopenstack-helm-infra~889187/revisions/4/patch?download' \
+curl 'https://review.opendev.org/changes/openstack%2Fopenstack-helm-infra~889187/revisions/5/patch?download' \
   | base64 --decode \
   | filterdiff -p1 -x 'releasenotes/*' \
   | filterdiff -p2 -x 'Chart.yaml' \
diff --git a/roles/neutron/tasks/main.yml b/roles/neutron/tasks/main.yml
index b1741a4..5853b31 100644
--- a/roles/neutron/tasks/main.yml
+++ b/roles/neutron/tasks/main.yml
@@ -42,8 +42,28 @@
 
 - name: Add OVN configuration
   when: neutron_ovn_enabled | bool
-  ansible.builtin.set_fact:
-    _neutron_helm_values: "{{ _neutron_helm_values | combine(__neutron_ovn_helm_values, recursive=True) }}"
+  block:
+    - name: Retrieve OVN Northbound service IP
+      kubernetes.core.k8s_info:
+        api_version: v1
+        kind: Service
+        name: ovn-ovsdb-nb
+        namespace: "{{ neutron_helm_release_namespace }}"
+      register: neutron_ovn_nb_svc
+      failed_when: neutron_ovn_nb_svc.resources | length == 0
+
+    - name: Retrieve OVN Southbound service IP
+      kubernetes.core.k8s_info:
+        api_version: v1
+        kind: Service
+        name: ovn-ovsdb-sb
+        namespace: "{{ neutron_helm_release_namespace }}"
+      register: neutron_ovn_sb_svc
+      failed_when: neutron_ovn_sb_svc.resources | length == 0
+
+    - name: Append Helm values
+      ansible.builtin.set_fact:
+        _neutron_helm_values: "{{ _neutron_helm_values | combine(__neutron_ovn_helm_values, recursive=True) }}"
 
 - name: Deploy Helm chart
   run_once: true
diff --git a/roles/neutron/vars/main.yml b/roles/neutron/vars/main.yml
index 0ee5396..a100837 100644
--- a/roles/neutron/vars/main.yml
+++ b/roles/neutron/vars/main.yml
@@ -79,8 +79,8 @@
         dns_servers: "{{ neutron_coredns_cluster_ip | default('10.96.0.20') }}"
         enable_distributed_floating_ip: true
         ovn_metadata_enabled: true
-        ovn_nb_connection: "{% for n in range(ovn_helm_values.get('pod', {}).get('replicas', {}).get('ovn_ovsdb_nb', 3)) %}tcp:ovn-ovsdb-nb-{{ n }}.{{ neutron_helm_release_namespace }}.svc.cluster.local:6643{% if not loop.last %},{% endif %}{% endfor %}"
-        ovn_sb_connection: "{% for n in range(ovn_helm_values.get('pod', {}).get('replicas', {}).get('ovn_ovsdb_sb', 3)) %}tcp:ovn-ovsdb-sb-{{ n }}.{{ neutron_helm_release_namespace }}.svc.cluster.local:6642{% if not loop.last %},{% endif %}{% endfor %}"
+        ovn_nb_connection: "tcp:{{ neutron_ovn_nb_svc.resources[0].spec.clusterIP }}:{{ neutron_ovn_nb_svc.resources[0].spec.ports[0].port }}"
+        ovn_sb_connection: "tcp:{{ neutron_ovn_sb_svc.resources[0].spec.clusterIP }}:{{ neutron_ovn_sb_svc.resources[0].spec.ports[0].port }}"
     ovn_metadata_agent:
       DEFAULT:
         nova_metadata_host: nova-metadata.openstack.svc.cluster.local