Commit Graph

159 Commits

Author SHA1 Message Date
Zuul b454d258ed Merge "Storage Automation with Pbench-fio" 2023-09-29 06:31:14 +00:00
rajeshP524 03f1300e2e Storage Automation with Pbench-fio
Added a new workload in browbeat, where in it runs fio
benchmarks against vms attached with cinder volumes(backed by ceph)
and collects the results

Change-Id: I3bfe96fcf3242a0f88c50be35fe9d6368910fab8
2023-09-28 14:47:41 +05:30
Masco 8632866417 add ilm policies to handle the life of the es indices
two policies are added to handle short and long term indices.

life of the indices can be configured using the 'elasticsearch.life'
field at browbeat-config.yml file
shortterm will have: 125 days
longterm will have 2 years

the policy and the policy based templates can be created using the
'es-template' install playbook.

Change-Id: I0f4a4a9acc03092fd582ae4ff50f688850def953
2023-09-07 15:29:11 +05:30
Zuul 99512c928e Merge "Add workload for Hybrid Computes" 2023-07-06 03:58:45 +00:00
Sanjay Chari 04032a49ab Add workload for Hybrid Computes
This patch adds a workload which boots VMs with the following specifications.
1. On non-NFV compute nodes : 1 port in a tenant network, 1 port in a provider network
2. On DPDK compute nodes: 1 SR-IOV/tenant network port, 1 DPDK port
3. On OvS Hardware Offload compute nodes: 1 SR-IOV/tenant network port, 1 Hardware Offload port

Change-Id: I76d468c333f919219db9525f0df2ac911f1a719f
2023-07-05 14:50:02 +05:30
Sanjay Chari 6743c29f90 Dynamic Workloads : Add stress-ng
This patch adds the stress-ng workload to dynamic workloads.
Multiple client VMs are created in each iteration and stress-ng
is run on the client VMs from a jumphost created on the same network.

Depends-On: https://review.opendev.org/c/x/browbeat/+/860226
Depends-On: https://review.opendev.org/c/x/browbeat/+/860202
Change-Id: I16bb8e1d2760e0b433cdc0fb469b6cb65ca70b82
2023-07-05 14:47:19 +05:30
Sanjay Chari 6fc3f0fe75 Add num_tenants to nova_boot_in_batches_with_delay
This patch adds a parameter in browbeat-config.yaml for the
number of tenants to use in nova_boot_in_batches_with_delay.
This is required in scale testing.

Change-Id: Ic7ca0b55a106251390e8e2987774a1c442d0d1fe
2022-12-05 18:08:27 +05:30
Zuul 2ceb50afdb Merge "Add option to create Grafana annotations" 2022-11-30 11:14:26 +00:00
Zuul f3fc851492 Merge "Refactor stress-ng workload" 2022-11-28 11:28:20 +00:00
Zuul 7cc0532013 Merge "Remove option all in dynamic workloads" 2022-11-18 07:56:40 +00:00
Sanjay Chari b20acab937 Remove option all in dynamic workloads
Dynamic workloads has an option all in browbeat-config.yaml,
which doesn't really makes sense because it runs only VM and trunk
dynamic workloads. This patch replaces all with an option called
all_vm_and_trunk, for better readability.

Change-Id: I9e3a73a9fb98fe46c830ad56b6a3cdd4a8c2b863
2022-11-18 11:11:01 +05:30
Sanjay Chari dbc84267c3 Fix Dynamic Workloads Min
dynamic-workloads-min was failing because of recent changes
to Nova API version pinning. This patch fixes the issue.

Change-Id: Ie9e906a69187d0483680e85dc0ed7310111715f4
2022-11-15 16:39:29 +05:30
Sanjay Chari 0c8e4cba04 Add option to create Grafana annotations
This patch adds an option in browbeat-config.yaml to create annotations
on a Grafana dashboard for a Browbeat scenario. This would be useful for
CI as it provides information on Grafana about what Browbeat scenario was
running at a particular time.

Change-Id: I83a9c74a56379da35ec9466a7492aecc2ee64ea9
2022-10-17 11:22:59 +05:30
Sanjay Chari 9c70924dc3 Refactor stress-ng workload
This patch refactors the stress-ng workload code
to make it easier to integrate with dynamic workloads.
A parameter has been added for nova_api_version as this is required
in dynamic workloads to use tags for VMs.
The file stress-ng.py has been renamed to stress_ng.py
and stress-ng.yml to stress_ng.yml, in order to adhere to Python
module naming conventions. Without this change, a syntax error occurs
while importing the module. Common code that can be used for dynamic
workloads has been moved to a new file called stress_ng_utils.py.

Browbeat results and logs :
http://perfscale.perf.lab.eng.bos.redhat.com/pub/schari/browbeat_logs/stressng_refactoring/

Change-Id: Ifdcdd1e91658f48d6b19275446f1fb3df4e9575f
2022-10-07 12:16:20 +05:30
Sanjay Chari 95b67935df Dynamic Workloads:Enhance Nova API Version Pinning
This patch moves the pinning of Nova API version to
2.52(required for tags) from the Python code to the rally
yaml specification file. This reduces duplication of code
from Rally and makes it easier to maintain in the future.

Browbeat logs and results :
http://perfscale.perf.lab.eng.bos.redhat.com/pub/schari/browbeat_logs/nova_api_version/

Change-Id: I2c9535da355c343949ddef44274035b1b590ef75
2022-10-06 15:33:19 +05:30
Zuul 0ed5a8d0bc Merge "Install Ocp on Osp" 2022-09-23 07:34:54 +00:00
rajeshP524 0ae5a7cebc Install Ocp on Osp
This patch introduces a new workload called "ocp_on_osp".
This workload installs Openshift cluster on Openstack as
a part of Dynamic Workloads.

Change-Id: I5c0a1ef04bf0e82563e7d17fdd9688f938d1e33f
2022-09-22 13:28:31 +05:30
Zuul e10f2a1881 Merge "Add nova_boot_from_context_provider_networks_ping workload" 2022-09-19 06:58:09 +00:00
Sanjay Chari 68f7a46722 Add nova_boot_from_context_provider_networks_ping workload
This patch adds a workload which creates provider networks as part
of Rally context, and boots VMs on the provider networks in round
robin order.

Co-authored-by: Jaison Raju <jraju@redhat.com>
Change-Id: I00999c81eaf78bbd72933df524bf55cf452d40fc
2022-09-19 11:44:31 +05:30
Zuul 61dc15961e Merge "Add swift Scenarios - create-container-and-object-then-delete-all - create-container-and-object-then-list-objects - list-objects-in-containers" 2022-08-22 06:50:34 +00:00
Asma Syed Hameed c5261e1fd0 Add swift Scenarios
- create-container-and-object-then-delete-all
- create-container-and-object-then-list-objects
- list-objects-in-containers

Change-Id: Ib0acf997f55504515f0de37056afc0d724ada58e
2022-08-19 11:29:40 +05:30
rajeshP524 964c2faf2c fix osp17 inventory file
overcloud group is not present in the OSP-17 inventory file, adding it manually

Change-Id: I232098eeb9f5a66f35c6dca3f99e22b027dc96af
2022-08-17 15:33:32 +05:30
Sanjay Chari c00ff2d45a Add nova_boot_in_batches_with_delay workload
This patch adds a workload which adds a delay
after booting a given number of servers.

Change-Id: Icb92782d487a67f146c395c03a86034418ff9dc7
2022-07-29 10:39:16 +05:30
Asma Syed Hameed 96ce2c8686 Add boot_vm_attach_detach_volume scenario
This patch adds support for the scenario boot_vm_attach_detach_volume
- Boots a VM
- Waits for the VM to be pingable
- Creates a Volume
- Attaches the Volume to VM, then
- Detaches the Volume from VM
- Deletes the VM

Change-Id: I37a1a6d5a661973b1b249045f9261316c380f7e6
2022-07-13 15:29:53 +05:30
Zuul 2830c0b05f Merge "made changes that are required for openstack-rally-2.2.0" 2022-07-08 08:52:52 +00:00
rajeshP524 36a2d685d8 made changes that are required for openstack-rally-2.2.0
Change-Id: I651f32f7264eda20dabd6022cbb47eac38492856
2022-07-08 13:59:50 +05:30
rajeshP524 f9eca00aa2 update the flavor to m1.tiny-cirros for all cirro5 images.
few scenarios in simple plugins related to floation IP having issues
while VM is booting with flavor that is being used. so changed the flavor
and also updated it as a default for all cirro5 images.

Change-Id: Ie1e6acc7b0e8f9c9365902d91c20829213dedc91
2022-07-07 02:16:18 +00:00
Zuul 38a589e729 Merge "Add cidr prefix parameter in dynamic workloads" 2022-06-22 07:14:13 +00:00
Sanjay Chari 7e45cad2a1 Add cidr prefix parameter in dynamic workloads
This patch adds a parameter in dynamic workloads for the cidr prefix of
the multiple external networks that are created as part of rally context.
This cidr prefix was hardcoded as 172.31 before, but it should be accepted
as a parameter from the user.

Change-Id: I51a0dd34cb8090cb3ba3afa391c36fc29911ce0e
2022-06-22 10:51:51 +05:30
Sanjay Chari 68283e1f67 Change default image from cirros to cirro5
Browbeat uses cirros as the default image for many scenarios.
In OSP17 we encountered issues with interface creation in cirros version 0.3.5.
This patch changes the default from cirros 0.3.5 to cirros 0.5.1(cirro5).

Change-Id: Idfb0aff3a6b79eef5a6f0252c0f948f3cd207427
2022-06-14 16:44:08 +05:30
Asma Syed Hameed 934eaf78af Add stress-ng plugin to run workloads within vms
The aim of this patch is to not only spawn a bunch of
vm's but also run some stress test inside the vm's.The
patch creates jumphost on network with fip and all
other vm's on the same neutron network so that jumphost
can access the other vm's and run the stress tests.

You need to set the following params to run this plugin:
- specify the external network in browbeat-config.yaml
- In the group_vars/all.yml install_browbeat_workloads: true,
  browbeat_network, in browbeat-workloads enable stress-ng

Change-Id: Ica15af5de0c60916fd89661fb411e4bd10382b8f
2022-03-29 15:58:58 +05:30
Zuul b7f8230149 Merge "Set start_stop_collectd to true by default" 2022-03-11 09:12:29 +00:00
Asma Syed Hameed a217af06f7 Create a NFS share and Access it from the VM
This Scenario:
        - create NFS share
        - launch VM
        - Attach provider network (StorageNFS) to VM
        - authorize VM's ip (StorageNFS) to access the share
        - mount the share inside the VM
        - write to share
        - delete VM
        - delete share

In the browbeat-config.yaml, the user needs to provide the
network id of the provider network(StorageNFS network)
and external network.

Change-Id: I6febed2168a1a5e38569500ddb4dbcfa5b1c097b
2022-03-11 07:52:06 +00:00
Sanjay Chari 9579174835 Set start_stop_collectd to true by default
This patch sets the value of start_stop_collectd to true by default.
This would help in saving storage space by preventing collectd from
running for too long.

Change-Id: I737a8b254ebe70a7a7784d0aa7c0f5b832eca8e3
2022-03-10 10:10:13 +05:30
rajeshP524 7e6e68699c Added heat scenarios from rally
Change-Id: Iaf37b8c8f77a1d14a932df87f65bf9c62cc70010
2022-02-04 19:13:59 +05:30
Asma Syed Hameed 972835d4e0 Manila: Add scenario to create share and and allow and deny access to it
Change-Id: Ie247bb419325761ff80c83cb7b85518dc71f0d13
2022-02-01 18:06:11 +05:30
Asma Syed Hameed 4e99f1d424 Add manila workload scenarios
- create-share-network-and-list
- create-share-network-and-delete
- create-share-and-shrink
- create-share-and-extend

Change-Id: I9e3ec0ed0bd8a5a7f8801f29a80c97ad77d0991a
2022-01-25 12:21:35 +05:30
Zuul 993700480f Merge "Adds a Class DynamicWorkloadMin" 2021-12-22 06:38:30 +00:00
Sanjay Chari bf5a1f3657 Enhance Rally HTML reports
This patch introduces the following changes.
1. We often have multiple executions of the same atomic action in
a single rally iteration. Existing rally charts do not show duration
for duplicate actions in an iteration accurately. This patch introduces
line charts for each occurence of a duplicate atomic action for each
instance, by passing it as additive data.
2. This patch also adds a per iteration stacked area chart that shows
data per iteration for each occurence of all atomic actions in the iteration.
3. This patch also adds a duration line chart for each resource created by
Rally.

Co-authored-by: venkata anil <anilvenkata@redhat.com>
Change-Id: I44dafad69cdbcd6db7c8fd9148f1b35d89924e03
2021-12-08 17:55:14 +05:30
Asma Syed Hameed f78191c1f5 Adds a Class DynamicWorkloadMin
This patch support running dynamic workloads for only VM scenarios
and avoids running other dynamic workloads scenario.

Change-Id: If46822a435495f78d04dda48c73cc97082110721
2021-12-08 16:00:29 +05:30
Zuul 58ab0b3430 Merge "Start and stop collectd containers while running workloads" 2021-11-23 06:46:22 +00:00
Sanjay Chari 8e873e678a Start and stop collectd containers while running workloads
This patch introduces the following changes.
1. Playbooks have been created to start collectd on different hosts.
2. A feature has been added that allows a user to start collectd containers
before running workloads, and stop the collectd containers after running
the workloads. This will help us in minimising the space used for storing
collectd data.

Change-Id: I7926884f461e97bc67453f46eef0121c46c7f19e
2021-11-22 13:14:55 +05:30
Sanjay Chari 4f0ae8d20a Multiple external networks for dynamic workloads
This patch introduces the following changes.
1. Multiple external networks are created as part of rally context for dynamic workloads.
These external networks have CIDR 172.31.(2*(i-1)+1).0/23 and gateway 172.31.(2*(i-1)+1).1,
where i is the segmentation ID of the VLAN interface.
2. External networks created as part of context are used in a round robin fashion by the
iterations in dynamic workloads.
3. Swapping floating IPs between servers and trunk subports dynamic workloads are redesigned
to perform swapping within the same external network, as swapping across external networks
leads to reachability issues.

Change-Id: I130c6b524174398d66258a57e7250088992a51b8
2021-10-19 18:13:38 +05:30
Sanjay Chari d4bb0a95a7 Dynamic workloads : Support for multiple OCP clusters
This patch adds support for multiple Openshift clusters in
kube-burner dynamic workloads.

Change-Id: I15a629c43fe359e40a28a75493fe27483e31d1d2
2021-09-15 16:17:22 +05:30
Sanjay Chari 96aff26d80 Shift-on-stack kube-burner dynamic workloads
This patch introduces the following changes.
1. benchmark-operator is deployed during browbeat installation if install_e2e_benchmarking
is set to true in group_vars/all.yml. This is because the same operator can be used for
multiple Rally iterations.
2. A rally plugin to run kube-burner workloads has been created.

Change-Id: I4fb67c4e986a8be589cf1eca615b2bb2748cba55
2021-09-13 12:22:47 +00:00
Sanjay Chari cd4d63554d Stop and start servers dynamic workload
This patch introduces the stop and start servers dynamic workload. 'N' servers with floating
IPs are chosen at random. Each server is stopped, pinged until failure, started, and then
pinged until success.

Change-Id: I87ac507fbe69c78ccc0bb7640afe68457a40893e
2021-09-02 10:53:10 +05:30
Sanjay Chari 90769f6e02 Swap floating IPs between servers dynamic workload
This patch introduces the following changes.
1. ping_subport_fip_from_jumphost has been changed to ping_fip_from_jumphost,
and moved to dynamic_utils.py, so it can be used in VM dynamic scenarios as
well.
2. Swap floating IPs between servers dynamic workload has been introduced in
vm.py.
3. Docstrings have been added for all functions in dynamic_utils.py, and security
group functions have been moved from NovaUtils to NeutronUtils, as they are more
appropriate there.

Change-Id: I9cd5afa3b2238c95d4f758abd95168f3942d3621
2021-08-26 14:13:42 +05:30
Sanjay Chari 235cf5a52d Change in create and delete servers dynamic workload
This patch introduces changes in the create and delete servers dynamic workload.
Instead of creating servers and deleting half of them in the same iteration, we
create servers, and select a fixed number of random servers to delete. This will
mimic the customer environment more accurately.

Change-Id: I1a9299e58f8e0539ef8fd6819864b560847a87b5
2021-08-19 15:49:54 +05:30
Sanjay Chari a0beb38489 Swap floating IPs between 2 random trunk subports dynamic workload
This patch introduces the following changes.
1. 3 new functions have been added in dynamic_utils.py. These functions are used
in trunk dynamic scenarios.
2. Floating IPs are created and associated to subports when required, and dissociated
and deleted after the task is completed.
3. The swap floating IPs between 2 random trunk subports dynamic workload has been added
in trunk.py.

Change-Id: I47ab98a5baf02fbdd22e2b13750d322c734ee6bb
2021-08-19 11:25:49 +05:30
Asma Syed Hameed 76bff93a95 Dynamic workloads: for Provider Network
This patch add support for dynamic workloads for
provider network.
1. provider_netcreate_nova_boot_ping: Creates a
   provider network and boot VM and ping
2. provider_net_nova_boot_ping:  Boot a VM on a
   existing provider network and ping
3. provider_net_nova_delete: Deletes All VM's on
   a provider network and then the network

It also install scapy on the undercloud

Change-Id: Id700c3bcde400398909c8ca9cfd2dd1451b8eb26
2021-08-18 12:45:33 +05:30