From 1d76069bd5ec460a014a42201f70bf3860cb4234 Mon Sep 17 00:00:00 2001 From: Miguel Angel Nieto Jimenez Date: Wed, 20 May 2026 15:03:01 +0200 Subject: [PATCH] [ci_gen_kustomize_values] Add per-node bmhLabelSelector to prevent BMH shuffling The OpenStackBaremetalSet operator assigns BMHs to nodeset hostnames non-deterministically (OSPRH-10282), causing compute-0 to get the network config of compute-1 and vice versa. Add bmhLabelSelector with nodeName per node so each edpm-compute-X is deterministically bound to the BMH named compute-X. Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Miguel Angel Nieto Jimenez --- .../nfv-ovs-dpdk-sriov-hci/edpm-nodeset-values/values.yaml.j2 | 2 +- .../ovs-dpdk-sriov-2nodesets/edpm-nodeset-values/values.yaml.j2 | 2 +- .../edpm-nodeset2-values/values.yaml.j2 | 2 +- .../edpm-nodeset-values/values.yaml.j2 | 2 +- .../edpm-nodeset2-values/values.yaml.j2 | 2 +- .../ovs-dpdk-sriov-ipv6/edpm-nodeset-values/values.yaml.j2 | 2 +- .../edpm-common-nodeset-values/values.yaml.j2 | 2 +- .../templates/ovs-dpdk-sriov/edpm-nodeset-values/values.yaml.j2 | 2 +- .../templates/ovs-dpdk/edpm-nodeset-values/values.yaml.j2 | 2 +- .../templates/sriov/edpm-nodeset-values/values.yaml.j2 | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/roles/ci_gen_kustomize_values/templates/nfv-ovs-dpdk-sriov-hci/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/nfv-ovs-dpdk-sriov-hci/edpm-nodeset-values/values.yaml.j2 index 879d949ff..feb781a5b 100644 --- a/roles/ci_gen_kustomize_values/templates/nfv-ovs-dpdk-sriov-hci/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/nfv-ovs-dpdk-sriov-hci/edpm-nodeset-values/values.yaml.j2 @@ -32,7 +32,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset-values/values.yaml.j2 index 9b75cc7e7..15cf7bec2 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset-values/values.yaml.j2 @@ -45,7 +45,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset2-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset2-values/values.yaml.j2 index 8e6c5b7bb..2d5bb5c8e 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset2-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-2nodesets/edpm-nodeset2-values/values.yaml.j2 @@ -45,7 +45,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset-values/values.yaml.j2 index b166ce872..6ed3fcda5 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset-values/values.yaml.j2 @@ -45,7 +45,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset2-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset2-values/values.yaml.j2 index a3bb0e28e..82f4a0cc0 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset2-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6-2nodesets/edpm-nodeset2-values/values.yaml.j2 @@ -45,7 +45,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6/edpm-nodeset-values/values.yaml.j2 index 5f608e64c..8b3e3d292 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-ipv6/edpm-nodeset-values/values.yaml.j2 @@ -32,7 +32,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-networker/edpm-common-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-networker/edpm-common-nodeset-values/values.yaml.j2 index 937e86f54..cb981df34 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-networker/edpm-common-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov-networker/edpm-common-nodeset-values/values.yaml.j2 @@ -46,7 +46,7 @@ data: nodes: {% for instance in instance_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov/edpm-nodeset-values/values.yaml.j2 index ab1c12103..f66af1414 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk-sriov/edpm-nodeset-values/values.yaml.j2 @@ -32,7 +32,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/ovs-dpdk/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/ovs-dpdk/edpm-nodeset-values/values.yaml.j2 index 7204c800e..f71030591 100644 --- a/roles/ci_gen_kustomize_values/templates/ovs-dpdk/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/ovs-dpdk/edpm-nodeset-values/values.yaml.j2 @@ -32,7 +32,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/sriov/edpm-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/sriov/edpm-nodeset-values/values.yaml.j2 index e2d1aaed0..a0b2c6acd 100644 --- a/roles/ci_gen_kustomize_values/templates/sriov/edpm-nodeset-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/sriov/edpm-nodeset-values/values.yaml.j2 @@ -32,7 +32,7 @@ data: nodes: {% for instance in instances_names %} {% set node_name = 'edpm-' + instance %} -{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance}) %} +{% set node_config = _original_nodes[node_name] | default({}) | combine({'hostName': instance, 'bmhLabelSelector': {'nodeName': instance}}) %} {{ node_name }}: {{ node_config | to_nice_yaml(indent=2) | indent(8, first=true) }} {% endfor %}