
This commit will add tests to cover vTPM device support for instances. The vTPM device allows storing secrets at instance level and its managed by the Barbican backend. The _vptm_server_creation_check helper method is used to create server with specific vtpm version and model and assert that it is configured as needed from the instance xml. The test_create_server_with_vtpm_tis method will verify creation of instance with tpm-tis model and supported version 2.0. Similarly, test_create_server_with_vtpm_crb will verify creation of instance with tpm-crb model and supported version 2.0. In addition the Barbican client service was leveraged from the barbican tempest plugin [1]. This is to allow the vTPM test to communicate with the barbican client, confirm the secret key found in the guest domain is present in the client, the key is active, and the keys description accuratly describes its purpose is vTPM for the guest. Example reply from barbican below: {'algorithm': None, 'bit_length': None, 'content_types': {'default': 'application/octet-stream'}, 'created': '2021-10-13T18:17:52', 'creator_id': '4b1cc6071236438c881f9da54657468f', 'expiration': None, 'mode': None, 'name': 'vTPM secret for instance b537c0df-0e39-4af8-94b3-04bcc8262f20', 'secret_ref': 'http://192.168.24.3:9311/v1/secrets/13a9ae5e-5187-4c0f-acde-b2cda06ae00c', 'secret_type': 'passphrase', 'status': 'ACTIVE', 'updated': '2021-10-13T18:17:52'} [1] https://github.com/openstack/barbican-tempest-plugin Related to: https://review.opendev.org/c/openstack/nova/+/631363/ https://review.opendev.org/c/openstack/glance/+/633256/ https://bugzilla.redhat.com/show_bug.cgi?id=1782128 Change-Id: I7b1a1306beb871a9294884116f6430ead91ce601
52 lines
2.8 KiB
Bash
52 lines
2.8 KiB
Bash
#!/bin/sh
|
|
|
|
function configure {
|
|
echo_summary "Configuring whitebox-tempest-plugin options"
|
|
iniset $TEMPEST_CONFIG whitebox ctlplane_ssh_username $STACK_USER
|
|
iniset $TEMPEST_CONFIG whitebox ctlplane_ssh_private_key_path $WHITEBOX_PRIVKEY_PATH
|
|
|
|
# This needs to come from Zuul, as devstack itself has no idea how many
|
|
# nodes are in the env
|
|
iniset $TEMPEST_CONFIG whitebox max_compute_nodes $MAX_COMPUTE_NODES
|
|
iniset $TEMPEST_CONFIG whitebox available_cinder_storage $WHITEBOX_AVAILABLE_CINDER_STORAGE
|
|
if [ -n "$SMT_HOSTS" ]; then
|
|
iniset $TEMPEST_CONFIG whitebox-hardware smt_hosts "$SMT_HOSTS"
|
|
fi
|
|
iniset $TEMPEST_CONFIG whitebox file_backed_memory_size $WHITEBOX_FILE_BACKED_MEMORY_SIZE
|
|
iniset $TEMPEST_CONFIG whitebox cpu_model $WHITEBOX_CPU_MODEL
|
|
iniset $TEMPEST_CONFIG whitebox cpu_model_extra_flags $WHITEBOX_CPU_MODEL_EXTRA_FLAGS
|
|
iniset $TEMPEST_CONFIG whitebox rx_queue_size $WHITEBOX_RX_QUEUE_SIZE
|
|
iniset $TEMPEST_CONFIG whitebox default_video_model $WHITEBOX_DEFAULT_VIDEO_MODEL
|
|
iniset $TEMPEST_CONFIG whitebox max_disk_devices_to_attach $WHITEBOX_MAX_DISK_DEVICES_TO_ATTACH
|
|
|
|
iniset $TEMPEST_CONFIG whitebox-nova-compute config_path "$WHITEBOX_NOVA_COMPUTE_CONFIG_PATH"
|
|
iniset $TEMPEST_CONFIG whitebox-nova-compute stop_command "$WHITEBOX_NOVA_COMPUTE_STOP_COMMAND"
|
|
iniset $TEMPEST_CONFIG whitebox-nova-compute start_command "$WHITEBOX_NOVA_COMPUTE_START_COMMAND"
|
|
|
|
iniset $TEMPEST_CONFIG whitebox-libvirt start_command "$WHITEBOX_LIBVIRT_START_COMMAND"
|
|
iniset $TEMPEST_CONFIG whitebox-libvirt stop_command "$WHITEBOX_LIBVIRT_STOP_COMMAND"
|
|
iniset $TEMPEST_CONFIG whitebox-libvirt mask_command "$WHITEBOX_LIBVIRT_MASK_COMMAND"
|
|
iniset $TEMPEST_CONFIG whitebox-libvirt unmask_command "$WHITEBOX_LIBVIRT_UNMASK_COMMAND"
|
|
|
|
iniset $TEMPEST_CONFIG whitebox-database user $DATABASE_USER
|
|
iniset $TEMPEST_CONFIG whitebox-database password $DATABASE_PASSWORD
|
|
iniset $TEMPEST_CONFIG whitebox-database host $DATABASE_HOST
|
|
|
|
iniset $TEMPEST_CONFIG whitebox-hardware cpu_topology "$WHITEBOX_CPU_TOPOLOGY"
|
|
iniset $TEMPEST_CONFIG whitebox-hardware dedicated_cpus_per_numa "$WHITEBOX_DEDICATED_CPUS_PER_NUMA"
|
|
iniset $TEMPEST_CONFIG whitebox-hardware shared_cpus_per_numa "$WHITEBOX_SHARED_CPUS_PER_NUMA"
|
|
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled virtio_rng "$COMPUTE_FEATURE_VIRTIO_RNG"
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled rbd_download "$COMPUTE_FEATURE_RBD_DOWNLOAD"
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled uefi_secure_boot "$COMPUTE_FEATURE_UEFI_SECURE_BOOT"
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled vtpm_device_supported "$COMPUTE_FEATURE_VTPM_ENABLED"
|
|
}
|
|
|
|
if [[ "$1" == "stack" ]]; then
|
|
if is_service_enabled tempest; then
|
|
if [[ "$2" == "test-config" ]]; then
|
|
configure
|
|
fi
|
|
fi
|
|
fi
|