Usage¶
For full usage run: run-ci --help
usage for getting various ocs image versions¶
for full help run: report-version --help
Run report-version --cluster-path /my-cluster/path --log-level INFO to
get information on various image version deployed by ocs-ci
usage for cleanup¶
AWS¶
This should be used only when your cluster-dir is accidentally deleted
ci-cleanup [-h] --cluster CLUSTER
CLUSTER points to cluster tag eg: mycluster-ocs-ci-jlgzn , without additional
-master or -worker. This can be found by logging into AWS, Selecting the VM
and clicking on Tags.
vSphere¶
This should be used only when your cluster-dir is accidentally deleted
vsphere-cleanup [-h] --cluster-name CLUSTER_NAME --ocsci-conf VSPHERE_CONF
e.g:
vsphere-cleanup --cluster-name mycluster-oct12 --ocsci-conf ~/vSphere-DC-CP_VC1.yaml
usage to shutdown AWS nodes when nodes are not in use¶
Following cli can be used when you want to shutdown the cluster
ci-pause --cluster-path /home-dir/cluster-path --action [stop|start]
action can be start or stop that performs the required action on all the nodes
in the cluster
Usage for ocs-build tool¶
Use ocs-build --help for printing the options.
This tool returns latest OCS build tag which is available and by default will
be used (output example: 4.7.0-353.ci).
If –image parameter is provided, the whole image will be returned (output example: quay.io/rhceph-dev/ocs-registry:4.7.0-353.ci)
You can also ask for build of specific OCS version using --ocs-version 4.8
argument to get tag for 4.8 version (if no version provided, the OCS-CI default
will be used).
The quay access_token is required to be set in data/auth.yaml file.
Required configuration¶
AWS credentials - if you have AWS already configured by
aws configure, see: AWS doc there shouldn’t be need of any additional configuration for AWS. If not, please make sure you configure your AWS credentials viaaws configurecommand, or you have proper configuration done in~/.awsfolder which is usually generated by mentioned command.
Required arguments¶
There are a few arguments that are required ocs test execution:
--cluster-path <path>- path to the directory which will contain all the installation/authentication information about the cluster. If the information given can not be used to access the cluster then test execution will fail. If you wish to deploy a new cluster, give a path to a new directory and also use the--deployargument.
Useful arguments¶
Some non-required arguments that we end up using a lot. You can use
run-ci --help to see all the parameters and description which you can pass
to the pytest.
--capture=no- when using pdb or ipdb you have to turn of capture mode for pytest.-m "tier1 and ecosystem"- This will select just tests marked with tier1 and ecosystem marks.
Additional arguments:¶
--cluster-name <name>- name of cluster (always required for deployment) must be 5-17 characters long.--ocs-version- version of OCS to be used (e.g. 4.2 or 4.3). If not specified, the default from ocs-ci will be used. If--ocs-registry-imageis passed then--ocs-versionparameter has higher priority which allow us to install previous version from CSV of the next build (e.g. we can install 4.3 from 4.4 build csv).--upgrade-ocs-version- version of OCS to be used for upgrade (e.g. 4.2 or 4.3). If not specified, the default from ocs-ci will be used.--ocp-version- OCP version to be used for deployment. This version will be used for load file from conf/ocp_version/ocp-VERSION-config.yaml. You can use for example those values:4.2: for nightly 4.2 OCP build4.2-ga: for latest GAed 4.2 OCP build from stable channel4.2-ga-minus1: for latest GAed 4.2 build (stable channel) - 1
--ocp-installer-version- Specific OCP installer version to be used for deployment. This option will generally be used for non-GA or nightly builds. (e.g. 4.5.5). This option will overwrite any values set via –ocp-version--ocs-registry-image- ocs registry image to be used for deployment (e.g quay.io/rhceph-dev/ocs-olm-operator:latest-4.2). In case this parameter is passed, the version is parsed from the registry image name but only if no version is passed via –ocs-version parameter.--upgrade-ocs-registry-image- ocs registry image to be used for upgrade (e.g quay.io/rhceph-dev/ocs-olm-operator:latest-4.3)--ocsci-conf- with this configuration parameter you can overwrite the default OCS-CI config parameters defined in default config. This is the repeatable parameter and you can use it multiple times for adding multiple config files. (The last one overwrites previous config!)--deploy- if this is given and a cluster can not be accessed from the provided--cluster-paththen a new test cluster will be deployed.--live-deploy- OCS-CI will use live content to deploy OCS.--teardown- if this is given the testing cluster will be destroyed after the test have completed, regardless of if the tests passed or failed.--html- to generate html reports of the test run--self-contained-html- creates self-contained html file containing all necessary styles and scripts--email- to send the email reports of the test run which was generated by –html option. MUST specify –html to send email reports.--squad-analysis- Include Squad Analysis to email report. Applicable only in combination with –email option.--bugzilla- allows you to skip tests with unresolved bug (test case needs to be properly decorated as you can see in documentation). You will also need to create configuration file forpytest_marker_bugzillaplugin. See the plugin documentation or example of/etc/bugzilla.cfgfile:[DEFAULT] bugzilla_url = https://bugzilla.redhat.com/xmlrpc.cgi bugzilla_username = kerberos@redhat.com bugzilla_password = yourPassword
--collect-logs- to collect OCS logs for failed test cases.--collect-logs-on-success-run- Collect must gather logs at the end of the execution (also when no failure in the tests)--io-in-bg- If passed, IO will be running in the test background.--io-load- IOs throughput target percentage. The value should be between 0 to 100. If not provided, the default is 30 (30%)--log-cluster-utilization- If passed, metrics of the cluster utilization will be printed every 20 seconds--csv-change- Allows changes in the OCS CSV. For example, usage of custom image, like MCG or RHCS. The format should be: <pattern_to_replace_from::pattern_to_replace_to>, while ‘::’ is the delimiter--dev-mode- Runs in development mode. Skip the checks like collecting cluster versions, collection ocs versions, health checks etc.--ceph-debug- Deploy with Ceph in debug log level. This option is available starting OCS 4.7--re-trigger-failed-tests- Path to the xunit file for xml junit report from the previous execution. If the file is provided, the execution will remove all the test cases which passed and will run only those test cases which were skipped / failed / or had error in the provided report.
Examples¶
Deployment and teardown of the test cluster can be done automatically with
the --deploy and --teardown arguments. The --cluster-path must always be
provided and if given without the --deploy argument, it must contain information
that can be used to access an existing cluster.
In case you lost your cluster dir, the destroy can be done with
ci-cleanupcli that should be invoked with cluster-tag from AWS.
Deployment of cluster¶
If you would like to deploy new cluster you can run following command:
run-ci -m deployment --ocsci-conf conf/path_to_config_to_be_used.yaml \
--cluster-name kerberos_ID-ocs-deployment \
--cluster-path /home/my_user/my-ocs-dir tests/ \
--deploy
of course you can omit –cluster-name if you would like to use default values.
Note that during deployment, openshift command line tools like oc and
openshift-install are installed into bin directory of the
repository. These tools are then available to both deployment and test
code because run-ci wrapper includes the bin directory into PATH
environment variable.
Deployment configurations¶
encryption at REST - to enable encryption at REST use this configuration file: conf/ocsci/encryption_at_rest.yaml
FIPS - to enable FIPS, use this configuration file: conf/ocsci/fips.yaml
Deployment of cluster on vSphere Platform¶
terraform and jq is needed for deployment of OCS on vSphere platform.
Change the vsphere_upi_vars.yaml.example to vsphere_upi_vars.yaml and update the values accordingly. Check for vsphere_upi_vars.yaml.skeleton(../conf/ocsci/vsphere_upi_vars.yaml.skeleton) for more options.
After filling all the required parameters, run the following command:
run-ci -m deployment --ocsci-conf conf/ocsci/vsphere_upi.yaml \
--cluster-name kerberos_ID-ocs-deployment \
--cluster-path /home/my_user/my-ocs-dir tests/ \
--deploy
Deployment via UI¶
To enable UI deployment please pass --ocsci-conf conf/ocsci/ui_deployment.yaml
At the moment, UI deployment is possible for the following platforms:
AWS
vSphere
Running tests on deployed environment¶
run-ci -m "tier1 and manage" \
--cluster-name kerberos_ID-ocs-deployment \
--cluster-path /home/my_user/my-ocs-dir tests/
Running tests on deployed environment and sending reports¶
If you would like to send the test run results to email you can run following command:
run-ci tests/
--cluster-name kerberos_ID-ocs-deployment \
--cluster-path /home/my_user/my-ocs-dir \
--html=report.html --self-contained-html \
--email=<emailid>
If you want to send reports to multiple email ID’s, use comma separated email ID’s like below
run-ci tests/
--cluster-name kerberos_ID-ocs-deployment \
--cluster-path /home/my_user/my-ocs-dir \
--html=report.html --self-contained-html \
--email=<emailid1>,<emailid2>,<emailid3>
Running tests with background IO load¶
If you would like to run tests with IO load of 75% of the cluster throughput limit,
in the tests background, append these arguments to the run-ci command:
--io-in-bg --io-load 75
If you would like metrics of cluster utilization to be logged, every 10 seconds, during
the test execution, append the --log-cluster-utilization argument to the run-ci command
Destroy of cluster¶
If you would like to destroy existing cluster you can run following command:
run-ci -m deployment \
--cluster-name kerberos_ID-ocs-deployment \
--cluster-path /home/my_user/my-ocs-dir tests/ \
--teardown