Enable {priority,runtime}ClassName for Neutron

Change-Id: I66c6d163b3803e52f9a4dffc4c19d6a4f647a534
diff --git a/charts/neutron/templates/daemonset-bagpipe-bgp.yaml b/charts/neutron/templates/daemonset-bagpipe-bgp.yaml
index b6d2157..fd4f093 100644
--- a/charts/neutron/templates/daemonset-bagpipe-bgp.yaml
+++ b/charts/neutron/templates/daemonset-bagpipe-bgp.yaml
@@ -57,6 +57,12 @@
 {{ tuple "neutron_bagpipe_bgp" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_bagpipe_bgp" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_bagpipe_bgp }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_bagpipe_bgp }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-bgp-dragent.yaml b/charts/neutron/templates/daemonset-bgp-dragent.yaml
index b0494c3..caa6139 100644
--- a/charts/neutron/templates/daemonset-bgp-dragent.yaml
+++ b/charts/neutron/templates/daemonset-bgp-dragent.yaml
@@ -56,6 +56,12 @@
 {{ tuple "neutron_bgp_dragent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_bgp_dragent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_bgp_dragent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_bgp_dragent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-dhcp-agent.yaml b/charts/neutron/templates/daemonset-dhcp-agent.yaml
index 17e15f8..b51d179 100644
--- a/charts/neutron/templates/daemonset-dhcp-agent.yaml
+++ b/charts/neutron/templates/daemonset-dhcp-agent.yaml
@@ -79,6 +79,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-dhcp-agent-default" "containerNames" (list "neutron-dhcp-agent" "neutron-dhcp-agent-init" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_dhcp_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_dhcp_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_dhcp_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-l2gw-agent.yaml b/charts/neutron/templates/daemonset-l2gw-agent.yaml
index e948198..ab984a3 100644
--- a/charts/neutron/templates/daemonset-l2gw-agent.yaml
+++ b/charts/neutron/templates/daemonset-l2gw-agent.yaml
@@ -80,6 +80,12 @@
 {{ tuple "neutron_l2gw_agent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_l2gw_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_l2gw_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_l2gw_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-l3-agent.yaml b/charts/neutron/templates/daemonset-l3-agent.yaml
index b4bbd09..21b45d7 100644
--- a/charts/neutron/templates/daemonset-l3-agent.yaml
+++ b/charts/neutron/templates/daemonset-l3-agent.yaml
@@ -80,6 +80,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-l3-agent-default" "containerNames" (list "neutron-l3-agent" "init"  "neutron-l3-agent-init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_l3_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_l3_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_l3_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-lb-agent.yaml b/charts/neutron/templates/daemonset-lb-agent.yaml
index 35ff8fe..77337f7 100644
--- a/charts/neutron/templates/daemonset-lb-agent.yaml
+++ b/charts/neutron/templates/daemonset-lb-agent.yaml
@@ -55,6 +55,12 @@
 {{ tuple "neutron_lb_agent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_lb_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_lb_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_lb_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-metadata-agent.yaml b/charts/neutron/templates/daemonset-metadata-agent.yaml
index fc9a75e..229ed5c 100644
--- a/charts/neutron/templates/daemonset-metadata-agent.yaml
+++ b/charts/neutron/templates/daemonset-metadata-agent.yaml
@@ -76,6 +76,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-metadata-agent-default" "containerNames" (list "neutron-metadata-agent" "neutron-metadata-agent-init" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_metadata_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_metadata_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_metadata_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-netns-cleanup-cron.yaml b/charts/neutron/templates/daemonset-netns-cleanup-cron.yaml
index d43c595..df50c45 100644
--- a/charts/neutron/templates/daemonset-netns-cleanup-cron.yaml
+++ b/charts/neutron/templates/daemonset-netns-cleanup-cron.yaml
@@ -48,6 +48,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-netns-cleanup-cron-default" "containerNames" (list "neutron-netns-cleanup-cron" "init" ) | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_netns_cleanup_cron" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_netns_cleanup_cron }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_netns_cleanup_cron }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml b/charts/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml
index fc6d805..30c372f 100644
--- a/charts/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml
+++ b/charts/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml
@@ -78,6 +78,12 @@
         configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
     spec:
 {{ dict "envAll" $envAll "application" "ovn_vpn_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_ovn_vpn_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_ovn_vpn_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-ovn-metadata-agent.yaml b/charts/neutron/templates/daemonset-ovn-metadata-agent.yaml
index 47e1256..80ca3f0 100644
--- a/charts/neutron/templates/daemonset-ovn-metadata-agent.yaml
+++ b/charts/neutron/templates/daemonset-ovn-metadata-agent.yaml
@@ -76,6 +76,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-ovn-metadata-agent-default" "containerNames" (list "neutron-ovn-metadata-agent" "neutron-ovn-metadata-agent-init" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_ovn_metadata_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_ovn_metadata_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_ovn_metadata_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
 {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
diff --git a/charts/neutron/templates/daemonset-ovs-agent.yaml b/charts/neutron/templates/daemonset-ovs-agent.yaml
index 0ea60f5..c6eb4c0 100644
--- a/charts/neutron/templates/daemonset-ovs-agent.yaml
+++ b/charts/neutron/templates/daemonset-ovs-agent.yaml
@@ -59,6 +59,12 @@
 {{ dict "envAll" $envAll "podName" "$configMapName" "containerNames" (list "neutron-ovs-agent" "init" "neutron-openvswitch-agent-kernel-modules" "neutron-ovs-agent-init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_ovs_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_ovs_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_ovs_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
       nodeSelector:
         {{ .Values.labels.ovs.node_selector_key }}: {{ .Values.labels.ovs.node_selector_value }}
diff --git a/charts/neutron/templates/daemonset-sriov-agent.yaml b/charts/neutron/templates/daemonset-sriov-agent.yaml
index 5b96cd7..efd48e0 100644
--- a/charts/neutron/templates/daemonset-sriov-agent.yaml
+++ b/charts/neutron/templates/daemonset-sriov-agent.yaml
@@ -62,6 +62,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-sriov-agent-default" "containerNames" (list "neutron-sriov-agent-init" "init" "neutron-sriov-agent") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_sriov_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_sriov_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_sriov_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
       nodeSelector:
         {{ .Values.labels.sriov.node_selector_key }}: {{ .Values.labels.sriov.node_selector_value }}
diff --git a/charts/neutron/templates/deployment-ironic-agent.yaml b/charts/neutron/templates/deployment-ironic-agent.yaml
index 1b468e2..8d2663f 100644
--- a/charts/neutron/templates/deployment-ironic-agent.yaml
+++ b/charts/neutron/templates/deployment-ironic-agent.yaml
@@ -49,6 +49,12 @@
 {{ tuple "neutron_ironic_agent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_ironic_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_ironic_agent }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_ironic_agent }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
       affinity:
 {{ tuple $envAll "neutron" "ironic_agent" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
diff --git a/charts/neutron/templates/deployment-rpc_server.yaml b/charts/neutron/templates/deployment-rpc_server.yaml
index 1866e21..f5f7240 100644
--- a/charts/neutron/templates/deployment-rpc_server.yaml
+++ b/charts/neutron/templates/deployment-rpc_server.yaml
@@ -49,6 +49,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-rpc-server" "containerNames" (list "neutron-rpc-server" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_rpc_server" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_rpc_server }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_rpc_server }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
       affinity:
 {{ tuple $envAll "neutron" "rpc_server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
diff --git a/charts/neutron/templates/deployment-server.yaml b/charts/neutron/templates/deployment-server.yaml
index 457401b..464b3c3 100644
--- a/charts/neutron/templates/deployment-server.yaml
+++ b/charts/neutron/templates/deployment-server.yaml
@@ -81,6 +81,12 @@
 {{ dict "envAll" $envAll "podName" "neutron-server" "containerNames" (list "neutron-server" "init" "nginx") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
     spec:
 {{ dict "envAll" $envAll "application" "neutron_server" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+{{ with .Values.pod.priorityClassName.neutron_server }}
+      priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_server }}
+      runtimeClassName: {{ . }}
+{{ end }}
       serviceAccountName: {{ $serviceAccountName }}
       affinity:
 {{ tuple $envAll "neutron" "server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
diff --git a/charts/neutron/templates/pod-rally-test.yaml b/charts/neutron/templates/pod-rally-test.yaml
index 5ef57fa..a1e3e1a 100644
--- a/charts/neutron/templates/pod-rally-test.yaml
+++ b/charts/neutron/templates/pod-rally-test.yaml
@@ -44,6 +44,12 @@
 {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 2 }}
 {{ end }}
   restartPolicy: Never
+{{ with .Values.pod.priorityClassName.neutron_tests }}
+  priorityClassName: {{ . }}
+{{ end }}
+{{ with .Values.pod.runtimeClassName.neutron_tests }}
+  runtimeClassName: {{ . }}
+{{ end }}
   serviceAccountName: {{ $serviceAccountName }}
   initContainers:
 {{ tuple $envAll "tests" $mounts_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }}
diff --git a/charts/neutron/values.yaml b/charts/neutron/values.yaml
index b1ff456..0f55997 100644
--- a/charts/neutron/values.yaml
+++ b/charts/neutron/values.yaml
@@ -389,6 +389,42 @@
           service: local_image_registry
 
 pod:
+  priorityClassName:
+    neutron_bagpipe_bgp: null
+    neutron_bgp_dragent: null
+    neutron_dhcp_agent: null
+    neutron_l2gw_agent: null
+    neutron_l3_agent: null
+    neutron_lb_agent: null
+    neutron_metadata_agent: null
+    neutron_netns_cleanup_cron: null
+    neutron_ovn_vpn_agent: null
+    neutron_ovn_metadata_agent: null
+    neutron_ovs_agent: null
+    neutron_sriov_agent: null
+    neutron_ironic_agent: null
+    neutron_rpc_server: null
+    neutron_server: null
+    neutron_tests: null
+    db_sync: null
+  runtimeClassName:
+    neutron_bagpipe_bgp: null
+    neutron_bgp_dragent: null
+    neutron_dhcp_agent: null
+    neutron_l2gw_agent: null
+    neutron_l3_agent: null
+    neutron_lb_agent: null
+    neutron_metadata_agent: null
+    neutron_netns_cleanup_cron: null
+    neutron_ovn_vpn_agent: null
+    neutron_ovn_metadata_agent: null
+    neutron_ovs_agent: null
+    neutron_sriov_agent: null
+    neutron_ironic_agent: null
+    neutron_rpc_server: null
+    neutron_server: null
+    neutron_tests: null
+    db_sync: null
   sidecars:
     neutron_policy_server: false
   use_fqdn:
diff --git a/charts/patches/neutron/0005-Enable-priority-runtime-ClassName-for-Neutron.patch b/charts/patches/neutron/0005-Enable-priority-runtime-ClassName-for-Neutron.patch
new file mode 100644
index 0000000..83020c1
--- /dev/null
+++ b/charts/patches/neutron/0005-Enable-priority-runtime-ClassName-for-Neutron.patch
@@ -0,0 +1,347 @@
+From c11ca88302027988fa44059991141395475c103e Mon Sep 17 00:00:00 2001
+From: Dong Ma <dong.ma@vexxhost.com>
+Date: Tue, 11 Feb 2025 11:03:48 +0000
+Subject: [PATCH] Enable {priority,runtime}ClassName for Neutron
+
+---
+ .../templates/daemonset-bagpipe-bgp.yaml      |  6 ++++
+ .../templates/daemonset-bgp-dragent.yaml      |  6 ++++
+ .../templates/daemonset-dhcp-agent.yaml       |  6 ++++
+ .../templates/daemonset-l2gw-agent.yaml       |  6 ++++
+ .../neutron/templates/daemonset-l3-agent.yaml |  6 ++++
+ .../neutron/templates/daemonset-lb-agent.yaml |  6 ++++
+ .../templates/daemonset-metadata-agent.yaml   |  6 ++++
+ .../daemonset-netns-cleanup-cron.yaml         |  6 ++++
+ .../daemonset-neutron-ovn-vpn-agent.yaml      |  6 ++++
+ .../daemonset-ovn-metadata-agent.yaml         |  6 ++++
+ .../templates/daemonset-ovs-agent.yaml        |  6 ++++
+ .../templates/daemonset-sriov-agent.yaml      |  6 ++++
+ .../templates/deployment-ironic-agent.yaml    |  6 ++++
+ .../templates/deployment-rpc_server.yaml      |  6 ++++
+ .../neutron/templates/deployment-server.yaml  |  6 ++++
+ neutron/templates/pod-rally-test.yaml  |  6 ++++
+ neutron/values.yaml                    | 36 +++++++++++++++++++
+ 17 files changed, 132 insertions(+)
+
+diff --git a/neutron/templates/daemonset-bagpipe-bgp.yaml b/neutron/templates/daemonset-bagpipe-bgp.yaml
+index b6d2157e..fd4f0930 100644
+--- a/neutron/templates/daemonset-bagpipe-bgp.yaml
++++ b/neutron/templates/daemonset-bagpipe-bgp.yaml
+@@ -57,6 +57,12 @@ spec:
+ {{ tuple "neutron_bagpipe_bgp" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_bagpipe_bgp" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_bagpipe_bgp }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_bagpipe_bgp }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-bgp-dragent.yaml b/neutron/templates/daemonset-bgp-dragent.yaml
+index b0494c3e..caa61391 100644
+--- a/neutron/templates/daemonset-bgp-dragent.yaml
++++ b/neutron/templates/daemonset-bgp-dragent.yaml
+@@ -56,6 +56,12 @@ spec:
+ {{ tuple "neutron_bgp_dragent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_bgp_dragent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_bgp_dragent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_bgp_dragent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-dhcp-agent.yaml b/neutron/templates/daemonset-dhcp-agent.yaml
+index 17e15f8e..b51d179d 100644
+--- a/neutron/templates/daemonset-dhcp-agent.yaml
++++ b/neutron/templates/daemonset-dhcp-agent.yaml
+@@ -79,6 +79,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-dhcp-agent-default" "containerNames" (list "neutron-dhcp-agent" "neutron-dhcp-agent-init" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_dhcp_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_dhcp_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_dhcp_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-l2gw-agent.yaml b/neutron/templates/daemonset-l2gw-agent.yaml
+index e9481981..ab984a30 100644
+--- a/neutron/templates/daemonset-l2gw-agent.yaml
++++ b/neutron/templates/daemonset-l2gw-agent.yaml
+@@ -80,6 +80,12 @@ spec:
+ {{ tuple "neutron_l2gw_agent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_l2gw_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_l2gw_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_l2gw_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-l3-agent.yaml b/neutron/templates/daemonset-l3-agent.yaml
+index b4bbd096..21b45d71 100644
+--- a/neutron/templates/daemonset-l3-agent.yaml
++++ b/neutron/templates/daemonset-l3-agent.yaml
+@@ -80,6 +80,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-l3-agent-default" "containerNames" (list "neutron-l3-agent" "init"  "neutron-l3-agent-init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_l3_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_l3_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_l3_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-lb-agent.yaml b/neutron/templates/daemonset-lb-agent.yaml
+index 35ff8fe0..77337f7a 100644
+--- a/neutron/templates/daemonset-lb-agent.yaml
++++ b/neutron/templates/daemonset-lb-agent.yaml
+@@ -55,6 +55,12 @@ spec:
+ {{ tuple "neutron_lb_agent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_lb_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_lb_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_lb_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-metadata-agent.yaml b/neutron/templates/daemonset-metadata-agent.yaml
+index fc9a75ee..229ed5c6 100644
+--- a/neutron/templates/daemonset-metadata-agent.yaml
++++ b/neutron/templates/daemonset-metadata-agent.yaml
+@@ -76,6 +76,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-metadata-agent-default" "containerNames" (list "neutron-metadata-agent" "neutron-metadata-agent-init" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_metadata_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_metadata_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_metadata_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-netns-cleanup-cron.yaml b/neutron/templates/daemonset-netns-cleanup-cron.yaml
+index d43c5950..df50c45a 100644
+--- a/neutron/templates/daemonset-netns-cleanup-cron.yaml
++++ b/neutron/templates/daemonset-netns-cleanup-cron.yaml
+@@ -48,6 +48,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-netns-cleanup-cron-default" "containerNames" (list "neutron-netns-cleanup-cron" "init" ) | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_netns_cleanup_cron" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_netns_cleanup_cron }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_netns_cleanup_cron }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml b/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml
+index fc6d8055..30c372f9 100644
+--- a/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml
++++ b/neutron/templates/daemonset-neutron-ovn-vpn-agent.yaml
+@@ -78,6 +78,12 @@ spec:
+         configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
+     spec:
+ {{ dict "envAll" $envAll "application" "ovn_vpn_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_ovn_vpn_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_ovn_vpn_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-ovn-metadata-agent.yaml b/neutron/templates/daemonset-ovn-metadata-agent.yaml
+index 47e12567..80ca3f07 100644
+--- a/neutron/templates/daemonset-ovn-metadata-agent.yaml
++++ b/neutron/templates/daemonset-ovn-metadata-agent.yaml
+@@ -76,6 +76,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-ovn-metadata-agent-default" "containerNames" (list "neutron-ovn-metadata-agent" "neutron-ovn-metadata-agent-init" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_ovn_metadata_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_ovn_metadata_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_ovn_metadata_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+ {{ if $envAll.Values.pod.tolerations.neutron.enabled }}
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+diff --git a/neutron/templates/daemonset-ovs-agent.yaml b/neutron/templates/daemonset-ovs-agent.yaml
+index 0ea60f58..c6eb4c01 100644
+--- a/neutron/templates/daemonset-ovs-agent.yaml
++++ b/neutron/templates/daemonset-ovs-agent.yaml
+@@ -59,6 +59,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "$configMapName" "containerNames" (list "neutron-ovs-agent" "init" "neutron-openvswitch-agent-kernel-modules" "neutron-ovs-agent-init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_ovs_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_ovs_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_ovs_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+       nodeSelector:
+         {{ .Values.labels.ovs.node_selector_key }}: {{ .Values.labels.ovs.node_selector_value }}
+diff --git a/neutron/templates/daemonset-sriov-agent.yaml b/neutron/templates/daemonset-sriov-agent.yaml
+index 5b96cd7c..efd48e01 100644
+--- a/neutron/templates/daemonset-sriov-agent.yaml
++++ b/neutron/templates/daemonset-sriov-agent.yaml
+@@ -62,6 +62,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-sriov-agent-default" "containerNames" (list "neutron-sriov-agent-init" "init" "neutron-sriov-agent") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_sriov_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_sriov_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_sriov_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+       nodeSelector:
+         {{ .Values.labels.sriov.node_selector_key }}: {{ .Values.labels.sriov.node_selector_value }}
+diff --git a/neutron/templates/deployment-ironic-agent.yaml b/neutron/templates/deployment-ironic-agent.yaml
+index 1b468e2b..8d2663f9 100644
+--- a/neutron/templates/deployment-ironic-agent.yaml
++++ b/neutron/templates/deployment-ironic-agent.yaml
+@@ -49,6 +49,12 @@ spec:
+ {{ tuple "neutron_ironic_agent" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_ironic_agent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_ironic_agent }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_ironic_agent }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+       affinity:
+ {{ tuple $envAll "neutron" "ironic_agent" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
+diff --git a/neutron/templates/deployment-rpc_server.yaml b/neutron/templates/deployment-rpc_server.yaml
+index 1866e21e..f5f72403 100644
+--- a/neutron/templates/deployment-rpc_server.yaml
++++ b/neutron/templates/deployment-rpc_server.yaml
+@@ -49,6 +49,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-rpc-server" "containerNames" (list "neutron-rpc-server" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_rpc_server" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_rpc_server }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_rpc_server }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+       affinity:
+ {{ tuple $envAll "neutron" "rpc_server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
+diff --git a/neutron/templates/deployment-server.yaml b/neutron/templates/deployment-server.yaml
+index 457401b4..464b3c3c 100644
+--- a/neutron/templates/deployment-server.yaml
++++ b/neutron/templates/deployment-server.yaml
+@@ -81,6 +81,12 @@ spec:
+ {{ dict "envAll" $envAll "podName" "neutron-server" "containerNames" (list "neutron-server" "init" "nginx") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+     spec:
+ {{ dict "envAll" $envAll "application" "neutron_server" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
++{{ with .Values.pod.priorityClassName.neutron_server }}
++      priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_server }}
++      runtimeClassName: {{ . }}
++{{ end }}
+       serviceAccountName: {{ $serviceAccountName }}
+       affinity:
+ {{ tuple $envAll "neutron" "server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
+diff --git a/neutron/templates/pod-rally-test.yaml b/neutron/templates/pod-rally-test.yaml
+index 5ef57fa3..a1e3e1ad 100644
+--- a/neutron/templates/pod-rally-test.yaml
++++ b/neutron/templates/pod-rally-test.yaml
+@@ -44,6 +44,12 @@ spec:
+ {{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 2 }}
+ {{ end }}
+   restartPolicy: Never
++{{ with .Values.pod.priorityClassName.neutron_tests }}
++  priorityClassName: {{ . }}
++{{ end }}
++{{ with .Values.pod.runtimeClassName.neutron_tests }}
++  runtimeClassName: {{ . }}
++{{ end }}
+   serviceAccountName: {{ $serviceAccountName }}
+   initContainers:
+ {{ tuple $envAll "tests" $mounts_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }}
+diff --git a/neutron/values.yaml b/neutron/values.yaml
+index b1ff4569..0f559976 100644
+--- a/neutron/values.yaml
++++ b/neutron/values.yaml
+@@ -389,6 +389,42 @@ dependencies:
+           service: local_image_registry
+ 
+ pod:
++  priorityClassName:
++    neutron_bagpipe_bgp: null
++    neutron_bgp_dragent: null
++    neutron_dhcp_agent: null
++    neutron_l2gw_agent: null
++    neutron_l3_agent: null
++    neutron_lb_agent: null
++    neutron_metadata_agent: null
++    neutron_netns_cleanup_cron: null
++    neutron_ovn_vpn_agent: null
++    neutron_ovn_metadata_agent: null
++    neutron_ovs_agent: null
++    neutron_sriov_agent: null
++    neutron_ironic_agent: null
++    neutron_rpc_server: null
++    neutron_server: null
++    neutron_tests: null
++    db_sync: null
++  runtimeClassName:
++    neutron_bagpipe_bgp: null
++    neutron_bgp_dragent: null
++    neutron_dhcp_agent: null
++    neutron_l2gw_agent: null
++    neutron_l3_agent: null
++    neutron_lb_agent: null
++    neutron_metadata_agent: null
++    neutron_netns_cleanup_cron: null
++    neutron_ovn_vpn_agent: null
++    neutron_ovn_metadata_agent: null
++    neutron_ovs_agent: null
++    neutron_sriov_agent: null
++    neutron_ironic_agent: null
++    neutron_rpc_server: null
++    neutron_server: null
++    neutron_tests: null
++    db_sync: null
+   sidecars:
+     neutron_policy_server: false
+   use_fqdn:
+-- 
+2.34.1
+
diff --git a/releasenotes/notes/neutron-priority-runtime-class-b23c083ebd115e08.yaml b/releasenotes/notes/neutron-priority-runtime-class-b23c083ebd115e08.yaml
new file mode 100644
index 0000000..57f9400
--- /dev/null
+++ b/releasenotes/notes/neutron-priority-runtime-class-b23c083ebd115e08.yaml
@@ -0,0 +1,4 @@
+---
+features:
+  - The Neutron role now allows users to configure the ``priorityClassName`` and
+    the ``runtimeClassName`` for all of the different components of the service.
diff --git a/roles/neutron/tests/priorityclass_test.yaml b/roles/neutron/tests/priorityclass_test.yaml
new file mode 100644
index 0000000..bc5e38e
--- /dev/null
+++ b/roles/neutron/tests/priorityclass_test.yaml
@@ -0,0 +1,241 @@
+suite: priorityclass
+tests:
+  - it: should support not having a priority class
+    templates:
+      - templates/daemonset-bagpipe-bgp.yaml
+      - templates/daemonset-bgp-dragent.yaml
+      - templates/daemonset-dhcp-agent.yaml
+      - templates/daemonset-l2gw-agent.yaml
+      - templates/daemonset-l3-agent.yaml
+      - templates/daemonset-lb-agent.yaml
+      - templates/daemonset-metadata-agent.yaml
+      - templates/daemonset-netns-cleanup-cron.yaml
+      - templates/daemonset-neutron-ovn-vpn-agent.yaml
+      - templates/daemonset-ovn-metadata-agent.yaml
+      - templates/daemonset-ovs-agent.yaml
+      - templates/daemonset-sriov-agent.yaml
+      - templates/deployment-ironic-agent.yaml
+      - templates/deployment-rpc_server.yaml
+      - templates/deployment-server.yaml
+      - templates/pod-rally-test.yaml
+      - templates/job-db-sync.yaml
+    set:
+      network:
+        backend:
+          - openvswitch
+          - sriov
+          - linuxbridge
+      manifests:
+        daemonset_l2gw_agent: true
+        daemonset_bagpipe_bgp: true
+        daemonset_bgp_dragent: true
+        daemonset_ovn_metadata_agent: true
+        daemonset_ovn_vpn_agent: true
+        deployment_ironic_agent: true
+    asserts:
+      - template: templates/daemonset-bagpipe-bgp.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-bgp-dragent.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-dhcp-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-l2gw-agent.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-l3-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-lb-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-metadata-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-netns-cleanup-cron.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-neutron-ovn-vpn-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-ovn-metadata-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-ovs-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/daemonset-sriov-agent.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/deployment-ironic-agent.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/deployment-rpc_server.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/deployment-server.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.priorityClassName
+      - template: templates/pod-rally-test.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.priorityClassName
+      - template: templates/job-db-sync.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.priorityClassName
+
+  - it: should support setting a priority class
+    templates:
+      - templates/daemonset-bagpipe-bgp.yaml
+      - templates/daemonset-bgp-dragent.yaml
+      - templates/daemonset-dhcp-agent.yaml
+      - templates/daemonset-l2gw-agent.yaml
+      - templates/daemonset-l3-agent.yaml
+      - templates/daemonset-lb-agent.yaml
+      - templates/daemonset-metadata-agent.yaml
+      - templates/daemonset-netns-cleanup-cron.yaml
+      - templates/daemonset-neutron-ovn-vpn-agent.yaml
+      - templates/daemonset-ovn-metadata-agent.yaml
+      - templates/daemonset-ovs-agent.yaml
+      - templates/daemonset-sriov-agent.yaml
+      - templates/deployment-ironic-agent.yaml
+      - templates/deployment-rpc_server.yaml
+      - templates/deployment-server.yaml
+      - templates/pod-rally-test.yaml
+      - templates/job-db-sync.yaml
+    set:
+      network:
+        backend:
+          - openvswitch
+          - sriov
+          - linuxbridge
+      pod:
+        priorityClassName:
+          neutron_bagpipe_bgp: platform
+          neutron_bgp_dragent: platform
+          neutron_dhcp_agent: platform
+          neutron_l2gw_agent: platform
+          neutron_l3_agent: platform
+          neutron_lb_agent: platform
+          neutron_metadata_agent: platform
+          neutron_netns_cleanup_cron: platform
+          neutron_ovn_vpn_agent: platform
+          neutron_ovn_metadata_agent: platform
+          neutron_ovs_agent: platform
+          neutron_sriov_agent: platform
+          neutron_ironic_agent: platform
+          neutron_rpc_server: platform
+          neutron_server: platform
+          neutron_tests: platform
+          db_sync: platform
+      manifests:
+        daemonset_l2gw_agent: true
+        daemonset_bagpipe_bgp: true
+        daemonset_bgp_dragent: true
+        daemonset_ovn_metadata_agent: true
+        daemonset_ovn_vpn_agent: true
+        deployment_ironic_agent: true
+    asserts:
+      - template: templates/daemonset-bagpipe-bgp.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-bgp-dragent.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-dhcp-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-l2gw-agent.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-l3-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-lb-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-metadata-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-netns-cleanup-cron.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-neutron-ovn-vpn-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-ovn-metadata-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-ovs-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/daemonset-sriov-agent.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/deployment-ironic-agent.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/deployment-rpc_server.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/deployment-server.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
+      - template: templates/pod-rally-test.yaml
+        documentIndex: 3
+        equal:
+          path: spec.priorityClassName
+          value: platform
+      - template: templates/job-db-sync.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.priorityClassName
+          value: platform
diff --git a/roles/neutron/tests/runtimeclass_test.yaml b/roles/neutron/tests/runtimeclass_test.yaml
new file mode 100644
index 0000000..44a5d0d
--- /dev/null
+++ b/roles/neutron/tests/runtimeclass_test.yaml
@@ -0,0 +1,241 @@
+suite: runtimeclass
+tests:
+  - it: should support not having a runtime class
+    templates:
+      - templates/daemonset-bagpipe-bgp.yaml
+      - templates/daemonset-bgp-dragent.yaml
+      - templates/daemonset-dhcp-agent.yaml
+      - templates/daemonset-l2gw-agent.yaml
+      - templates/daemonset-l3-agent.yaml
+      - templates/daemonset-lb-agent.yaml
+      - templates/daemonset-metadata-agent.yaml
+      - templates/daemonset-netns-cleanup-cron.yaml
+      - templates/daemonset-neutron-ovn-vpn-agent.yaml
+      - templates/daemonset-ovn-metadata-agent.yaml
+      - templates/daemonset-ovs-agent.yaml
+      - templates/daemonset-sriov-agent.yaml
+      - templates/deployment-ironic-agent.yaml
+      - templates/deployment-rpc_server.yaml
+      - templates/deployment-server.yaml
+      - templates/pod-rally-test.yaml
+      - templates/job-db-sync.yaml
+    set:
+      network:
+        backend:
+          - openvswitch
+          - sriov
+          - linuxbridge
+      manifests:
+        daemonset_l2gw_agent: true
+        daemonset_bagpipe_bgp: true
+        daemonset_bgp_dragent: true
+        daemonset_ovn_metadata_agent: true
+        daemonset_ovn_vpn_agent: true
+        deployment_ironic_agent: true
+    asserts:
+      - template: templates/daemonset-bagpipe-bgp.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-bgp-dragent.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-dhcp-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-l2gw-agent.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-l3-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-lb-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-metadata-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-netns-cleanup-cron.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-neutron-ovn-vpn-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-ovn-metadata-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-ovs-agent.yaml
+        documentIndex: 4
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/daemonset-sriov-agent.yaml
+        documentIndex: 2
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/deployment-ironic-agent.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/deployment-rpc_server.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/deployment-server.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.runtimeClassName
+      - template: templates/pod-rally-test.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.runtimeClassName
+      - template: templates/job-db-sync.yaml
+        documentIndex: 3
+        notExists:
+          path: spec.template.spec.runtimeClassName
+
+  - it: should support setting a runtime class
+    templates:
+      - templates/daemonset-bagpipe-bgp.yaml
+      - templates/daemonset-bgp-dragent.yaml
+      - templates/daemonset-dhcp-agent.yaml
+      - templates/daemonset-l2gw-agent.yaml
+      - templates/daemonset-l3-agent.yaml
+      - templates/daemonset-lb-agent.yaml
+      - templates/daemonset-metadata-agent.yaml
+      - templates/daemonset-netns-cleanup-cron.yaml
+      - templates/daemonset-neutron-ovn-vpn-agent.yaml
+      - templates/daemonset-ovn-metadata-agent.yaml
+      - templates/daemonset-ovs-agent.yaml
+      - templates/daemonset-sriov-agent.yaml
+      - templates/deployment-ironic-agent.yaml
+      - templates/deployment-rpc_server.yaml
+      - templates/deployment-server.yaml
+      - templates/pod-rally-test.yaml
+      - templates/job-db-sync.yaml
+    set:
+      network:
+        backend:
+          - openvswitch
+          - sriov
+          - linuxbridge
+      pod:
+        runtimeClassName:
+          neutron_bagpipe_bgp: kata-clh
+          neutron_bgp_dragent: kata-clh
+          neutron_dhcp_agent: kata-clh
+          neutron_l2gw_agent: kata-clh
+          neutron_l3_agent: kata-clh
+          neutron_lb_agent: kata-clh
+          neutron_metadata_agent: kata-clh
+          neutron_netns_cleanup_cron: kata-clh
+          neutron_ovn_vpn_agent: kata-clh
+          neutron_ovn_metadata_agent: kata-clh
+          neutron_ovs_agent: kata-clh
+          neutron_sriov_agent: kata-clh
+          neutron_ironic_agent: kata-clh
+          neutron_rpc_server: kata-clh
+          neutron_server: kata-clh
+          neutron_tests: kata-clh
+          db_sync: kata-clh
+      manifests:
+        daemonset_l2gw_agent: true
+        daemonset_bagpipe_bgp: true
+        daemonset_bgp_dragent: true
+        daemonset_ovn_metadata_agent: true
+        daemonset_ovn_vpn_agent: true
+        deployment_ironic_agent: true
+    asserts:
+      - template: templates/daemonset-bagpipe-bgp.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-bgp-dragent.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-dhcp-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-l2gw-agent.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-l3-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-lb-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-metadata-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-netns-cleanup-cron.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-neutron-ovn-vpn-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-ovn-metadata-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-ovs-agent.yaml
+        documentIndex: 4
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/daemonset-sriov-agent.yaml
+        documentIndex: 2
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/deployment-ironic-agent.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/deployment-rpc_server.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/deployment-server.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh
+      - template: templates/pod-rally-test.yaml
+        documentIndex: 3
+        equal:
+          path: spec.runtimeClassName
+          value: kata-clh
+      - template: templates/job-db-sync.yaml
+        documentIndex: 3
+        equal:
+          path: spec.template.spec.runtimeClassName
+          value: kata-clh