[rally] Add Rally role#3996
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 16m 50s |
|
Build failed (check pipeline). Post ❌ openstack-k8s-operators-content-provider FAILURE in 7m 00s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 39m 19s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 23m 47s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 11m 55s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 20m 46s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 15m 22s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 22m 37s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 21m 42s |
Testproject MRA testproject MR has been added to validate this implementation end-to-end Test ResultsThis POC confirms that the implementation is working correctly. Cinder workload: One test failure observed, but it appears to be a Rally bug, not an issue with the integration itself. Manila workload: The failures seen are configuration-related only and are not caused by the Rally role or its wiring into the test_operator framework. |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 31m 07s |
43000e6 to
9ba4734
Compare
|
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
|
Build failed (check pipeline). Post ❌ openstack-k8s-operators-content-provider FAILURE in 4m 24s |
| @@ -0,0 +1,15 @@ | |||
| --- | |||
There was a problem hiding this comment.
couldn't hooks/playbooks/manila_create_default_resources.yml be used instead, after overriding some variables?
There was a problem hiding this comment.
yes, we can use it.
rally only requires the share type, the same as tempest, so we can reuse this playbook with the required variable overrides.
Thanks for the suggestion!
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 52m 58s |
|
recheck |
|
/retest |
| rally task report --out {{ _cifmw_rally_container_reports_dir }}/rally-report.html || true | ||
| rally task report --json \ | ||
| --out {{ _cifmw_rally_container_reports_dir }}/rally-report.json || true | ||
| exit ${RALLY_TASK_RC:-0} |
There was a problem hiding this comment.
(non-blocking) suggestion: I'd better initialize this variable at the start. And the move this to be exit RALLY_TASK_RC
| mode: "0755" | ||
|
|
||
| - name: Create rally deployment configuration | ||
| ansible.builtin.include_tasks: create-deployment.yml |
There was a problem hiding this comment.
(non-blocking) Suggestion: Should this be called better prepare-deployment.yml? or prepare-rally-credentials.yaml?
There was a problem hiding this comment.
Make sense
I changed it to prepare-rally-credentials.yaml
| --ram 512 --disk 1 --vcpus 1 --public | ||
|
|
||
| - name: Create lvmdriver-1 volume type if missing | ||
| ansible.builtin.shell: | |
There was a problem hiding this comment.
(blocking) suggestion: same as above
| openstack volume type create lvmdriver-1 --public | ||
|
|
||
| - name: Check if cirros image already exists | ||
| ansible.builtin.shell: | |
There was a problem hiding this comment.
(blocking) suggestion: I'd move here to k8s_exec.
Add a new `rally` Ansible role that runs OpenStack Rally benchmarks
inside a podman container (quay.io/airshipit/xrally-openstack:3.0.0).
The role auto-discovers OpenStack credentials from the cluster's
KeystoneAPI resource and appends the deployment CA to the trust bundle
so SSL verification works without any manual configuration.
The role supports two execution modes:
* Single run (default): `cifmw_rally_runs: []` — uses the top-level
`cifmw_rally_*` variables, artifacts stored in
`cifmw_rally_artifacts_basedir/`.
* Multi-run: set `cifmw_rally_runs` to a list of dicts, each with a
`name` key and optional `cifmw_rally_*` overrides. Artifacts for each
run are namespaced under `cifmw_rally_artifacts_basedir/<name>/`.
This is modelled after `cifmw_test_operator_stages` and replaces the
former test_operator-based wiring (Rally is not a test-operator CRD).
A `hooks/playbooks/rally_run.yaml` entry point is provided so jobs can
invoke Rally via the ci-framework hooks system, e.g.:
post_tests_90_rally_run:
type: playbook
source: rally_run.yaml
Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: lkuchlan <lkuchlan@redhat.com>
…ling
When extra_specs is passed via extra_vars on the command line
(e.g. -e 'extra_specs={}'), Ansible receives it as a string instead
of a dict. The original task-level vars: block evaluated
extra_specs.items() before the when: condition was checked, causing
the play to fail with 'str object has no attribute items'.
Split into a set_fact task guarded by 'extra_specs is mapping' and a
separate command task guarded by 'extra_spec_opt is defined' to handle
both dict and string inputs safely.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: lkuchlan <lkuchlan@redhat.com>
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 01m 12s |
|
recheck |
Add a new `rally` Ansible role that runs OpenStack Rally benchmarks inside a podman
container (`quay.io/airshipit/xrally-openstack:3.0.0`). The role auto-discovers OpenStack
credentials from the cluster's KeystoneAPI resource and appends the deployment CA to the
trust bundle so SSL verification works without any manual configuration.
The role supports two execution modes:
under `cifmw_rally_artifacts_basedir/`.
optional `cifmw_rally_*` overrides. Artifacts are namespaced under
`cifmw_rally_artifacts_basedir//`.
Jobs invoke Rally via the ci-framework hooks system using `hooks/playbooks/rally_run.yaml`:
Key design decisions:
container can verify the Keystone TLS endpoint
Assisted-By: Claude Sonnet 4.6 noreply@anthropic.com