Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -95,20 +95,10 @@
delay: 60
until: __sap_hypervisor_node_preconfigure_register_hco_webhook_pod.resources | selectattr('status.phase', 'equalto', 'Running') | list | length == __sap_hypervisor_node_preconfigure_register_hco_webhook_pod.resources | length

- name: Wait and check if hco-webhook-service exists in the namespace "{{ sap_hypervisor_node_preconfigure_ocpv_namespace }}"
kubernetes.core.k8s_info:
kind: Service
namespace: "{{ sap_hypervisor_node_preconfigure_ocpv_namespace }}"
name: hco-webhook-service
register: webhook_service
retries: 2
delay: 60
until: webhook_service.resources | default([]) | length > 0

- name: Check if CNV webhook endpoint is available
- name: Check if hco-webhook-service webhook endpoint is available
ansible.builtin.include_tasks: wait_for_webhook_endpoints.yml
vars:
sap_hypervisor_node_preconfigure_webhook_service_name: virt-api
sap_hypervisor_node_preconfigure_webhook_service_name: hco-webhook-service
sap_hypervisor_node_preconfigure_webhook_namespace: "{{ sap_hypervisor_node_preconfigure_ocpv_namespace }}"

- name: Create CNV HyperConverged
Expand Down
4 changes: 4 additions & 0 deletions roles/sap_vm_provision/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,10 @@ sap_vm_provision_kubevirt_vm_host_specifications_dictionary:
kubevirt_vm_cpu_smt: 2
kubevirt_vm_cpu_cores: 2
kubevirt_vm_memory_gib: 24
# Defines size of huge pages for kubervirt hypervisor (e.g. '2Mi' or '1Gi')
# This can be disabled by setting value to false. The default value is '1Gi'.
# When set to false, remove NUMA and dedicatedCpuPlacement from sap_vm_provision_kubevirt_vm_performance_cpu_settings
kubevirt_vm_memory_hypervisor_hugepages: '1Gi'
sap_system_type: project_dev # project_dev, project_tst, project_prd
sap_host_type: hana_primary # hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
# Provide either an existing PVC or a URL for an OS image
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@
- not lookup('ansible.builtin.vars', loop_item, default='') is skipped
- lookup('ansible.builtin.vars', loop_item, default='') is failed

- name: Stop execution of playbook here if an error has occurred
ansible.builtin.fail:
msg: "Stop entire playbook since something when wrong."

- name: Ansible Task block to execute on target inventory hosts
remote_user: "{{ sap_vm_provision_kubevirt_vm_os_user }}"
become: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,36 @@
{%- endfor %}
{{ networks }}

- name: Fail if hugepages are not used but dedicated CPU placement and/or NUMA guestMappingPassthrough
ansible.builtin.fail:
msg: |
FAIL: Invalid CPU configuration: dedicatedCpuPlacement=true cannot be used
together with numa.guestMappingPassthrough without huge pages.
when:
- sap_vm_provision_kubevirt_vm_performance_cpu_settings.dedicatedCpuPlacement | d(false) | bool
or sap_vm_provision_kubevirt_vm_performance_cpu_settings.numa.guestMappingPassthrough is defined
- __sap_vm_provision_register_vm_config.kubevirt_vm_memory_hypervisor_hugepages is defined
- not (__sap_vm_provision_register_vm_config.kubevirt_vm_memory_hypervisor_hugepages | bool)

- name: Set fact for memory definition
ansible.builtin.set_fact:
__sap_vm_provision_fact_memory_definition: >-
{{
{
'guest': __sap_vm_provision_register_vm_config.kubevirt_vm_memory_gib ~ 'Gi'
}
| combine(
(__sap_vm_provision_register_vm_config.kubevirt_vm_memory_hypervisor_hugepages | default(true)) | ternary(
{
'hugepages': {
'pageSize': (__sap_vm_provision_register_vm_config.kubevirt_vm_memory_hypervisor_hugepages | default('1Gi'))
}
},
{}
)
)
}}

- name: Set fact for VM deploy config
ansible.builtin.set_fact:
__sap_vm_provision_register_vm_deploy_config:
Expand Down Expand Up @@ -244,10 +274,7 @@
cores: "{{ __sap_vm_provision_register_vm_config.kubevirt_vm_cpu_cores }}"
threads: "{{ __sap_vm_provision_register_vm_config.kubevirt_vm_cpu_smt }}"

memory:
guest: "{{ __sap_vm_provision_register_vm_config.kubevirt_vm_memory_gib }}Gi"
hugepages:
pageSize: 1Gi
memory: "{{ __sap_vm_provision_fact_memory_definition }}"

- name: Apply CPU performance settings
ansible.builtin.set_fact:
Expand Down