Use NovaVcpuPinSet when deriving HCI parameters
When deriving deployment parameters for HCI (hyperconverged Nova compute and
Ceph OSD nodes), use NovaVcpuPinSet to determine the number of CPU cores
available for Nova and Ceph. When NovaVcpuPinSet isn't set, use all of the
cores identified in the baremetal introspection data.
Closes-Bug: #1711462
Change-Id: I6e0a0004d3df1f7acbb15b014cc2fe5fb139c2aa
(cherry picked from commit 813e12ab9f
)
This commit is contained in:
parent
1f46efc323
commit
ac59ce053f
@ -64,7 +64,10 @@ workflows:
|
||||
container: <% $.plan %>
|
||||
key: 'derived_parameters'
|
||||
on-success:
|
||||
# Add the derived parameters to the deployment plan only when $.result
|
||||
# (the derived parameters) is non-empty. Otherwise, we're done.
|
||||
- update_derive_parameters_in_plan: <% $.result %>
|
||||
- send_message: <% not $.result %>
|
||||
on-error: set_status_failed_reset_derive_parameters_in_plan
|
||||
|
||||
update_derive_parameters_in_plan:
|
||||
|
@ -501,6 +501,8 @@ workflows:
|
||||
publish:
|
||||
extra_config: <% $.environment_parameters.get('ExtraConfig', {}) %>
|
||||
role_extra_config: <% $.environment_parameters.get(concat($.role_name, 'ExtraConfig'), {}) %>
|
||||
role_env_params: <% $.environment_parameters.get(concat($.role_name, 'Parameters'), {}) %>
|
||||
role_derive_params: <% $.derived_parameters.get(concat($.role_name, 'Parameters'), {}) %>
|
||||
on-success: get_num_osds
|
||||
|
||||
get_num_osds:
|
||||
@ -514,12 +516,37 @@ workflows:
|
||||
publish:
|
||||
memory_mb: <% $.introspection_data.get('memory_mb', 0) %>
|
||||
on-success:
|
||||
- get_num_cores: <% $.memory_mb %>
|
||||
- get_nova_vcpu_pin_set: <% $.memory_mb %>
|
||||
- set_failed_get_memory_mb: <% not $.memory_mb %>
|
||||
|
||||
# Determine the number of CPU cores available to Nova and Ceph. If
|
||||
# NovaVcpuPinSet is defined then use the number of vCPUs in the set,
|
||||
# otherwise use all of the cores identified in the introspection data.
|
||||
|
||||
get_nova_vcpu_pin_set:
|
||||
publish:
|
||||
# NovaVcpuPinSet can be defined in multiple locations, and it's
|
||||
# important to select the value in order of precedence:
|
||||
#
|
||||
# 1) User specified value for this role
|
||||
# 2) User specified default value for all roles
|
||||
# 3) Value derived by another derived parameters workflow
|
||||
nova_vcpu_pin_set: <% $.role_env_params.get('NovaVcpuPinSet', $.environment_parameters.get('NovaVcpuPinSet', $.role_derive_params.get('NovaVcpuPinSet', ''))) %>
|
||||
on-success:
|
||||
- get_nova_vcpu_count: <% $.nova_vcpu_pin_set %>
|
||||
- get_num_cores: <% not $.nova_vcpu_pin_set %>
|
||||
|
||||
get_nova_vcpu_count:
|
||||
action: tripleo.derive_params.convert_range_to_number_list
|
||||
input:
|
||||
range_list: <% $.nova_vcpu_pin_set %>
|
||||
publish:
|
||||
num_cores: <% task().result.split(',').count() %>
|
||||
on-success: calculate_nova_parameters
|
||||
on-error: set_failed_get_nova_vcpu_count
|
||||
|
||||
get_num_cores:
|
||||
publish:
|
||||
# TODO(abishop): If NovaVcpuPinSet is defined then use it to determine num_cores
|
||||
num_cores: <% $.introspection_data.get('cpus', 0) %>
|
||||
on-success:
|
||||
- calculate_nova_parameters: <% $.num_cores %>
|
||||
@ -634,6 +661,11 @@ workflows:
|
||||
message: "Unable to determine the amount of physical memory (no 'memory_mb' found in introspection_data)."
|
||||
on-success: fail
|
||||
|
||||
set_failed_get_nova_vcpu_count:
|
||||
publish:
|
||||
message: <% task(get_nova_vcpu_count).result %>
|
||||
on-success: fail
|
||||
|
||||
set_failed_get_num_cores:
|
||||
publish:
|
||||
message: "Unable to determine the number of CPU cores (no 'cpus' found in introspection_data)."
|
||||
|
Loading…
Reference in New Issue
Block a user