README.md
Avere vFXT ARM Template Testing
This directory contains automated tests using ARM-based templates to deploy Avere vFXT clusters and associated resources, including clients for various test scenarios. The primary scope of these tests is to validate the effectiveness and usability of the ARM templates. Additionally, some vFXT feature and performance tests are included.
Requirements
Tests are written in Python 3 using the Microsoft Azure SDK for Python and the pytest framework. See requirements.txt for other dependencies.
Environment Variables
These tests assume the following environment variables exist when running the tests. See Azure Key Vault for information on storing your secrets securely.
Environment Variable | Description |
---|---|
AVERE_ADMIN_PW | The password for the Avere vFXT cluster. |
AVERE_CONTROLLER_PW | The password for the Avere vFXT controller. |
AZURE_CLIENT_ID | The Azure client ID. |
AZURE_CLIENT_SECRET | The Azure client password (secret). |
AZURE_SUBSCRIPTION_ID | The Azure subscription under which to deploy resources. |
AZURE_TENTANT_ID | The Azure tentant ID. |
BUILD_SOURCESDIRECTORY | The local root directory for a clone of the Azure/Avere repo. |
How To Run Tests
Tests can be invoked by the usual pytest methods. The simplest way to run all of the tests is to simply run "pytest" from the $BUILD_SOURCESDIRECTORY directory. However, that method should not be used because multiple deployments will then be initiated back-to-back, and failures due to name conflicts and or quota usage are likely to occur.
The recommended method for running these tests is to first call a specific deploy test. Example:
pytest test/test_vfxt_template_deploy.py::TestVfxtTemplateDeploy::test_deploy_template
That will run the test_deploy_template test in the test_vfxt_template_deploy.py file.
After the cluster has been deployed, any of the other test_*.py files can be run.
(placeholder -- link to plan, DevOps or otherwise)
Custom Command-Line Arguments
When running the tests, the standard pytest command-line arguments are available. In addition, the following custom command-line options are available:
$ pytest --help
...
custom options:
--build_root=BUILD_ROOT
Local path to the root of the Azure/Avere repo clone
(e.g., /home/user1/git/Azure/Avere). This is used to
find the various templates that are deployed during
these tests. (default: $BUILD_SOURCESDIRECTORY if set,
else current directory)
--location=LOCATION Azure region short name to use for deployments
(default: westus2)
--prefer_cli_args When specified, prioritize custom command-line
arguments over the values in the file pointed to by
"test_vars_file".
--ssh_priv_key=SSH_PRIV_KEY
SSH private key to use in deployments and tests
(default: ~/.ssh/id_rsa)
--ssh_pub_key=SSH_PUB_KEY
SSH public key to use in deployments and tests
(default: ~/.ssh/id_rsa.pub)
--test_vars_file=TEST_VARS_FILE
Test variables file used for passing values between
runs. This file is in JSON format. It is loaded during
test setup and written out during test teardown. The
contents of this file override other custom command-
line options unless the "prefer_cli_args" option is
specified. (default: $VFXT_TEST_VARS_FILE if set, else
None)
...
Arguments are defined in conftest.py.
Internal Use
The following sections are for internal Microsoft use only.
Pipelines Variables
The following Pipelines variables are available in DevOps and control how queued Pipelines run.
Variable | Default | Description |
---|---|---|
RUN_BYOVNET | false | When "true", run the "bring your own VNET" variant (test_byovnet_deploy in test_vfxt_template_deploy.py. |
RUN_DEPLOY | true | When "true", run the "create a new VNET" variant (test_template_deploy in test_vfxt_template_deploy.py. |
RUN_EDASIM_STEP | true | When "true", run the EDASIM tests test_edasim.py. |
RUN_EMPTY_STORAGE | false | When "true", run the "no blob storage, no storage account needed" variant (test_no_storage_account_deploy in test_vfxt_template_deploy.py. |
RUN_VDBENCH_STEP | false | When "true", run the vdbench tests test_vdbench.py. |
SKIP_RG_CLEANUP | false | When "true", do not clean up the resource group at the end of the Pipelines run. |
VFXT_DEPLOY_LOCATION | westus2 | The Azure region short name to which to deploy resources. |