diff --git a/openstack-helm/centos/openstack-helm.spec b/openstack-helm/centos/openstack-helm.spec
index 8d08003d..47f5cdf1 100644
--- a/openstack-helm/centos/openstack-helm.spec
+++ b/openstack-helm/centos/openstack-helm.spec
@@ -28,6 +28,7 @@ Patch06: 0006-Allow-set-public-endpoint-url-for-keystone-endpoints.patch
 Patch07: 0007-Wrong-usage-of-rbd_store_chunk_size.patch
 Patch08: 0008-Add-stx_admin-account.patch
 Patch09: 0009-Disabling-helm3_hook.patch
+Patch10: 0010-Add-flavor-extra-spec-hw-pci_irq_affinity_mask.patch
 
 BuildRequires: helm
 BuildRequires: openstack-helm-infra
@@ -48,6 +49,7 @@ Openstack Helm charts
 %patch07 -p1
 %patch08 -p1
 %patch09 -p1
+%patch10 -p1
 
 %build
 # Stage helm-toolkit in the local repo
diff --git a/openstack-helm/files/0010-Add-flavor-extra-spec-hw-pci_irq_affinity_mask.patch b/openstack-helm/files/0010-Add-flavor-extra-spec-hw-pci_irq_affinity_mask.patch
new file mode 100644
index 00000000..4d0673c9
--- /dev/null
+++ b/openstack-helm/files/0010-Add-flavor-extra-spec-hw-pci_irq_affinity_mask.patch
@@ -0,0 +1,75 @@
+From 6d54af3aa180b3b82614ebc0cedd8b4d7d9f5db6 Mon Sep 17 00:00:00 2001
+From: rferraz <RogerioOliveira.Ferraz@windriver.com>
+Date: Wed, 17 Nov 2021 11:32:23 -0300
+Subject: [PATCH] Add-flavor-extra-spec-hw-pci_irq_affinity_mask
+
+---
+ glance/templates/configmap-etc.yaml     | 3 +++
+ glance/templates/deployment-api.yaml    | 6 ++++++
+ glance/templates/job-metadefs-load.yaml | 6 ++++++
+ glance/values.yaml                      | 1 +
+ 4 files changed, 16 insertions(+)
+
+diff --git a/glance/templates/configmap-etc.yaml b/glance/templates/configmap-etc.yaml
+index 97f19fbc..f9be6bfb 100644
+--- a/glance/templates/configmap-etc.yaml
++++ b/glance/templates/configmap-etc.yaml
+@@ -195,6 +195,9 @@ data:
+   glance-api-paste.ini: {{ include "helm-toolkit.utils.to_ini" .Values.conf.paste | b64enc }}
+   glance-registry.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.glance_registry | b64enc }}
+   glance-registry-paste.ini: {{ include "helm-toolkit.utils.to_ini" .Values.conf.paste_registry | b64enc }}
++{{- range $key, $val := .Values.conf.extra_metadata }}
++  compute_{{ $key }}.json: {{ toJson $val | b64enc }}
++{{- end }}
+   policy.yaml: {{ toYaml .Values.conf.policy | b64enc }}
+   api_audit_map.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.api_audit_map | b64enc }}
+ {{- include "helm-toolkit.snippets.values_template_renderer" ( dict "envAll" $envAll "template" .Values.conf.swift_store "key" "swift-store.conf" "format" "Secret" ) | indent 2 }}
+diff --git a/glance/templates/deployment-api.yaml b/glance/templates/deployment-api.yaml
+index 78e16715..81711967 100644
+--- a/glance/templates/deployment-api.yaml
++++ b/glance/templates/deployment-api.yaml
+@@ -183,6 +183,12 @@ spec:
+               mountPath: /etc/glance/glance-api.conf
+               subPath: glance-api.conf
+               readOnly: true
++            {{- range $key, $val := .Values.conf.extra_metadata }}
++            - name: glance-etc
++              mountPath: /var/lib/openstack/etc/glance/metadefs/compute_{{ $key }}.json
++              subPath: compute_{{ $key }}.json
++              readOnly: true
++            {{- end }}
+             {{- if .Values.conf.glance.DEFAULT.log_config_append }}
+             - name: glance-etc
+               mountPath: {{ .Values.conf.glance.DEFAULT.log_config_append }}
+diff --git a/glance/templates/job-metadefs-load.yaml b/glance/templates/job-metadefs-load.yaml
+index 5c162a5f..47c4286a 100644
+--- a/glance/templates/job-metadefs-load.yaml
++++ b/glance/templates/job-metadefs-load.yaml
+@@ -64,6 +64,12 @@ spec:
+               mountPath: /tmp/metadefs-load.sh
+               subPath: metadefs-load.sh
+               readOnly: true
++            {{- range $key, $val := .Values.conf.extra_metadata }}
++            - name: glance-etc
++              mountPath: /var/lib/openstack/etc/glance/metadefs/compute_{{ $key }}.json
++              subPath: compute_{{ $key }}.json
++              readOnly: true
++            {{- end }}
+             - name: etcglance
+               mountPath: /etc/glance
+             - name: glance-etc
+diff --git a/glance/values.yaml b/glance/values.yaml
+index 459f04bc..0d1c2fdb 100644
+--- a/glance/values.yaml
++++ b/glance/values.yaml
+@@ -193,6 +193,7 @@ conf:
+       oslo_config_program: glance-api
+     filter:http_proxy_to_wsgi:
+       paste.filter_factory: oslo_middleware:HTTPProxyToWSGI.factory
++  extra_metadata: {}
+   policy:
+     metadef_default: ''
+     metadef_admin: 'role:admin'
+-- 
+2.17.1
+
diff --git a/stx-openstack-helm/stx-openstack-helm/manifests/manifest.yaml b/stx-openstack-helm/stx-openstack-helm/manifests/manifest.yaml
index 02f6af20..10afc8bc 100644
--- a/stx-openstack-helm/stx-openstack-helm/manifests/manifest.yaml
+++ b/stx-openstack-helm/stx-openstack-helm/manifests/manifest.yaml
@@ -765,6 +765,26 @@ data:
       identity:
         force_public_endpoint: true
     conf:
+      extra_metadata:
+        pci_irq_affinity:
+          description: Properties for the handling of PCI IRQ Affinity. These properties may be specified to flavor, image and/or volume (refer to metadata description).
+          display_name: PCI IRQ Affinity
+          namespace: OS::Compute::PCIIRQAffinity
+          properties:
+            pci_irq_affinity_mask:
+              description: The metadata hw:pci_irq_affinity_mask specifies which CPU cores are interrupted due to PCI IRQ requests. It can be set as a compute flavor extra spec.
+              title: PCI IRQ Affinity Mask
+              type: string
+          protected: true
+          resource_type_associations:
+            - name: OS::Nova::Flavor
+              prefix: 'hw:'
+            - name: OS::Glance::Image
+              prefix: 'hw_'
+            - name: OS::Cinder::Volume
+              prefix: 'hw_'
+              properties_target: image
+          visibility: public
       glance:
         DEFAULT:
           bind_host: "::"