Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hugepages test vm #674

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs_dev/assemblies/development_environment.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,15 @@ To use OSP 17.1 content to deploy TripleO Standalone, follow the
https://url.corp.redhat.com/devel-rhoso-adoption[guide for setting up downstream content]
for `make standalone`.

To use Wallaby content instead, run the following:

[,bash]
----
cd ~/install_yamls/devsetup
EDPM_CONFIGURE_HUGEPAGES=false make standalone <1>
----
<1> To configure the host for a simplistic hugepages setup, set `EDPM_CONFIGURE_HUGEPAGES=true`.

=== Snapshot/revert

When the deployment of the Standalone OpenStack is finished, it's a
Expand Down Expand Up @@ -213,12 +222,14 @@ Create a test VM instance with a test volume attachement:
cd ~/data-plane-adoption
export CINDER_VOLUME_BACKEND_CONFIGURED=true <1>
export CINDER_BACKUP_BACKEND_CONFIGURED=true
export EDPM_CONFIGURE_HUGEPAGES=false <2>
export OPENSTACK_COMMAND="ssh -i ~/install_yamls/out/edpm/ansibleee-ssh-key-id_rsa [email protected] OS_CLOUD=standalone openstack"
OS_CLOUD_IP=192.168.122.100 OS_CLOUD_NAME=standalone \
bash tests/roles/development_environment/files/pre_launch.bash
----
<1> Use `CINDER_*_BACKEND_CONFIGURED=false`, if Cinder Volume or Backup services' storage backends have been not configured for the source cloud,
or won't be configured for the target cloud. That might be a valid case for some developement setups, but not for a production scenarios.
<2> To configure the host for a simplistic hugepages setup `EDPM_CONFIGURE_HUGEPAGES=true`. To apply kernel args, you will need to reboot the standalone host after deployment completed.

This also creates a test Cinder volume, a backup from it, and a snapshot of it.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,12 +414,18 @@ endif::[]
# Do not attempt OVS major upgrades here
edpm_ovs_packages:
- openvswitch3.3
edpm_default_mounts: <4>
- path: /dev/hugepages<size>
opts: pagesize=<size>
fstype: hugetlbfs
group: hugetlbfs
EOF
----
+
<1> If TLS Everywhere is enabled, change `spec:tlsEnabled` to `true`.
<2> If your deployment has a custom DNS Domain, modify the `spec:nodes:[NODE NAME]:hostName` to use fqdn for the node.
<3> Replace `<bridge_mappings>` with the value of the bridge mappings in your configuration, for example, `"datacentre:br-ctlplane"`.
<4> If you need to configure hugepages, adjust `<size>`. To configure multi-sized hugepages, create more items in the list. Note that the mount points must match the source cloud configuration.

. Ensure that you use the same `ovn-controller` settings in the `OpenStackDataPlaneNodeSet` CR that you used in the {compute_service} nodes before adoption. This configuration is stored in the `external_ids` column in the `Open_vSwitch` table in the Open vSwitch database:
+
Expand Down
8 changes: 8 additions & 0 deletions tests/roles/dataplane_adoption/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,14 @@ dataplane_cr: |
edpm_ovs_packages:
- openvswitch3.3

{% if use_hugepages|bool +%}
edpm_default_mounts:
- path: /dev/hugepages2M
opts: pagesize=2M
fstype: hugetlbfs
group: hugetlbfs
{%+ endif +%}

# ovn-controller settings
edpm_ovn_bridge_mappings: ["datacentre:{{ neutron_physical_bridge_name }}"]
edpm_ovn_bridge: br-int
Expand Down
1 change: 1 addition & 0 deletions tests/roles/development_environment/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ edpm_privatekey_path: ~/install_yamls/out/edpm/ansibleee-ssh-key-id_rsa
run_pre_adoption_validation: true
os_cloud_name: standalone
source_osp_ssh_user: root
use_hugepages: false
# Supported storage backends for Cinder of the source cloud
# must match those configured for the target cloud
supported_volume_backends: []
Expand Down
3 changes: 3 additions & 0 deletions tests/roles/development_environment/files/pre_launch.bash
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ ${BASH_ALIASES[openstack]} image show cirros || \
# Create flavor
${BASH_ALIASES[openstack]} flavor show m1.small || \
${BASH_ALIASES[openstack]} flavor create --ram 512 --vcpus 1 --disk 1 --ephemeral 1 m1.small
if [ "${EDPM_CONFIGURE_HUGEPAGES:-false}" = "true" ] ; then
${BASH_ALIASES[openstack]} flavor set m1.small --property hw:mem_page_size=2MB
fi

# Create networks
${BASH_ALIASES[openstack]} network show private || ${BASH_ALIASES[openstack]} network create private --share
Expand Down
1 change: 1 addition & 0 deletions tests/roles/development_environment/tasks/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
cmd: |
{{ shell_header }}
export OPENSTACK_COMMAND="{{ openstack_command }}"
export EDPM_CONFIGURE_HUGEPAGES={{ use_hugepages | string | lower }}
export CINDER_VOLUME_BACKEND_CONFIGURED={{ cinder_volume_backend_configured | string | lower }}
export CINDER_BACKUP_BACKEND_CONFIGURED={{ cinder_backup_backend_configured | string | lower }}
export ENROLL_BMAAS_IRONIC_NODES={{ enroll_ironic_bmaas_nodes | string | lower }}
Expand Down
1 change: 1 addition & 0 deletions tests/vars.sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ supported_backup_backends: #CUSTOMIZE_THIS

# Whether the adopted node will host compute services
compute_adoption: true
use_hugepages: false

# Where perform or not telemetry installation during adoption
telemetry_adoption: true
Expand Down
Loading