PCI IRQ affinity mask metadata

This patch introduces the hw:pci_irq_affinity_mask metadata.

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, as well as a compute image or volume metadata.

Test Plan                                                         Status
1. New metadata is added to the supported metadata list           PASSED
   on compute flavor, compute image and volume metadata
2. New metadata can be set to a value                             PASSED
   on compute flavor, compute image and/or volume metadata
3. New metadata can be changed value and/or deleted               PASSED
   on compute flavor, compute image and/or volume metadata
4. New metadata persists when re-applying OpenStack               PASSED

Regression
1. New metadata is added to the supported metadata list           PASSED
   on compute flavor, compute image and volume metadata
2. New metadata can be set a value, changed valued and deleted    PASSED
   on compute flavor, compute image and volume metadata

Story: 2009299
Task: 43861

Signed-off-by: rferraz <RogerioOliveira.Ferraz@windriver.com>
Change-Id: I0f94e8cddcff744306a01ce275c697cb39f8c5e7
This commit is contained in:
rferraz 2021-11-09 05:02:58 -03:00
parent 7bbdc856ba
commit aa7bf02e6b
3 changed files with 97 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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: "::"