rally-openstack/rally-jobs/rally.yaml

1516 lines
30 KiB
YAML
Executable File

---
KeystoneBasic.create_user:
-
args:
name_length: 10
runner:
type: "constant"
times: 10
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.create_delete_user:
-
args:
name_length: 10
runner:
type: "constant"
times: 10
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.create_and_list_tenants:
-
args:
name_length: 10
runner:
type: "constant"
times: 10
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.get_entities:
-
runner:
type: "constant"
times: 100
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.create_and_list_users:
-
args:
name_length: 10
runner:
type: "constant"
times: 10
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.create_tenant:
-
args:
name_length: 10
runner:
type: "constant"
times: 10
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.create_tenant_with_users:
-
args:
name_length: 10
users_per_tenant: 10
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 3
sla:
failure_rate:
max: 0
KeystoneBasic.create_delete_user:
-
args:
name_length: 10
runner:
type: "constant"
times: 10
concurrency: 10
sla:
failure_rate:
max: 0
KeystoneBasic.create_and_delete_service:
-
runner:
type: "constant"
times: 10
concurrency: 5
sla:
failure_rate:
max: 0
KeystoneBasic.create_and_list_services:
-
runner:
type: "constant"
times: 10
concurrency: 5
sla:
failure_rate:
max: 0
CeilometerAlarms.create_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerAlarms.create_and_delete_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerAlarms.create_and_list_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerAlarms.create_and_update_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerAlarms.create_alarm_and_get_history:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
state: "ok"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 5
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
CeilometerAlarms.list_alarms:
-
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerMeters.list_meters:
-
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerResource.list_resources:
-
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
Dummy.dummy:
-
args:
sleep: 0.25
runner:
type: "constant"
times: 20
concurrency: 5
sla:
failure_rate:
max: 0
-
args:
sleep: 0.1
runner:
type: "constant_for_duration"
duration: 5
concurrency: 5
sla:
failure_rate:
max: 0
-
args:
sleep: 0.001
runner:
type: "rps"
times: 2000
rps: 200
sla:
failure_rate:
max: 0
-
args:
sleep: 0.001
runner:
type: "rps"
times: 200
rps: 20
max_concurrency: 10
sla:
failure_rate:
max: 0
-
args:
sleep: 0.1
runner:
type: "serial"
times: 20
sla:
failure_rate:
max: 0
-
args:
sleep: 0.01
runner:
type: "constant"
times: 1
concurrency: 1
context:
quotas:
nova:
instances: 200
cores: 200
ram: -1
floating_ips: 200
fixed_ips: 200
metadata_items: -1
injected_files: -1
injected_file_content_bytes: -1
injected_file_path_bytes: -1
key_pairs: 500
security_groups: 400
security_group_rules: 600
cinder:
gigabytes: -1
snapshots: -1
volumes: -1
sla:
failure_rate:
max: 0
-
args:
sleep: 0.01
runner:
type: "constant"
times: 1
concurrency: 1
context:
users:
tenants: 30
users_per_tenant: 15
sla:
failure_rate:
max: 0
Dummy.dummy_exception:
-
args:
size_of_message: 5
runner:
type: "constant"
times: 20
concurrency: 5
Dummy.dummy_exception_probability:
-
args:
exception_probability: 0.5
runner:
type: "constant"
times: 100
concurrency: 1
-
args:
exception_probability: 0.05
runner:
type: "constant"
times: 2042
concurrency: 1
-
args:
exception_probability: 0.5
runner:
type: "constant"
times: 100
concurrency: 1
sla:
failure_rate:
min: 20
max: 80
Dummy.dummy_with_scenario_output:
-
runner:
type: "constant"
times: 20
concurrency: 10
sla:
failure_rate:
max: 0
Dummy.dummy_random_fail_in_atomic:
-
args:
exception_probability: 0.5
runner:
type: "constant"
times: 50
concurrency: 10
FakePlugin.testplugin:
-
runner:
type: "constant"
times: 4
concurrency: 4
sla:
failure_rate:
max: 0
CeilometerStats.create_meter_and_get_stats:
-
args:
user_id: "user-id"
resource_id: "resource-id"
counter_volume: 1.0
counter_unit: ""
counter_type: "cumulative"
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerQueries.create_and_query_alarms:
-
args:
filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]}
orderby: !!null
limit: 10
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerQueries.create_and_query_alarm_history:
-
args:
orderby: !!null
limit: !!null
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
CeilometerQueries.create_and_query_samples:
-
args:
filter: {"=": {"counter_unit": "instance"}}
orderby: !!null
limit: 10
counter_name: "cpu_util"
counter_type: "gauge"
counter_unit: "instance"
counter_volume: "1.0"
resource_id: "resource_id"
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
HeatStacks.create_and_list_stack:
-
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
HeatStacks.create_and_delete_stack:
-
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
-
args:
template_path: "/home/jenkins/.rally/extra/server_with_volume.yaml.template"
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
HeatStacks.create_check_delete_stack:
-
args:
template_path: "/home/jenkins/.rally/extra/random_strings.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
HeatStacks.create_update_delete_stack:
-
args:
template_path: "/home/jenkins/.rally/extra/random_strings.yaml.template"
updated_template_path: "/home/jenkins/.rally/extra/updated_random_strings_add.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
-
args:
template_path: "/home/jenkins/.rally/extra/random_strings.yaml.template"
updated_template_path: "/home/jenkins/.rally/extra/updated_random_strings_delete.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
-
args:
template_path: "/home/jenkins/.rally/extra/random_strings.yaml.template"
updated_template_path: "/home/jenkins/.rally/extra/updated_random_strings_replace.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
-
args:
template_path: "/home/jenkins/.rally/extra/autoscaling_policy.yaml.template"
updated_template_path: "/home/jenkins/.rally/extra/updated_autoscaling_policy_inplace.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
-
args:
template_path: "/home/jenkins/.rally/extra/resource_group.yaml.template"
updated_template_path: "/home/jenkins/.rally/extra/updated_resource_group_increase.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
-
args:
template_path: "/home/jenkins/.rally/extra/resource_group.yaml.template"
updated_template_path: "/home/jenkins/.rally/extra/updated_resource_group_reduce.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
HeatStacks.list_stacks_and_resources:
-
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
stacks:
stacks_per_tenant: 2
resources_per_stack: 10
sla:
failure_rate:
max: 0
HeatStacks.create_suspend_resume_delete_stack:
-
args:
template_path: "/home/jenkins/.rally/extra/random_strings.yaml.template"
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
Authenticate.keystone:
-
runner:
type: "constant"
times: 40
concurrency: 20
context:
users:
tenants: 2
users_per_tenant: 10
sla:
failure_rate:
max: 0
SaharaNodeGroupTemplates.create_and_list_node_group_templates:
-
args:
flavor:
name: "m1.small"
runner:
type: "constant"
times: 20
concurrency: 20
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
SaharaNodeGroupTemplates.create_delete_node_group_templates:
-
args:
flavor:
name: "m1.small"
runner:
type: "constant"
times: 20
concurrency: 20
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
Authenticate.validate_cinder:
-
args:
repetitions: 2
runner:
type: "constant"
times: 10
concurrency: 5
context:
users:
tenants: 3
users_per_tenant: 5
sla:
failure_rate:
max: 0
Authenticate.validate_glance:
-
args:
repetitions: 2
runner:
type: "constant"
times: 10
concurrency: 5
context:
users:
tenants: 3
users_per_tenant: 5
sla:
failure_rate:
max: 0
Authenticate.validate_heat:
-
args:
repetitions: 2
runner:
type: "constant"
times: 10
concurrency: 5
context:
users:
tenants: 3
users_per_tenant: 5
sla:
failure_rate:
max: 0
Authenticate.validate_nova:
-
args:
repetitions: 2
runner:
type: "constant"
times: 10
concurrency: 5
context:
users:
tenants: 3
users_per_tenant: 5
sla:
failure_rate:
max: 0
Quotas.cinder_update_and_delete:
-
args:
max_quota: 1024
runner:
type: "constant"
times: 4
concurrency: 1
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
Quotas.cinder_update:
-
args:
max_quota: 1024
runner:
type: "constant"
times: 10
concurrency: 2
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
Quotas.nova_update_and_delete:
-
args:
max_quota: 1024
runner:
type: "constant"
times: 4
concurrency: 1
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
Quotas.nova_update:
-
args:
max_quota: 1024
runner:
type: "constant"
times: 10
concurrency: 2
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
GlanceImages.create_and_delete_image:
-
args:
image_location: "http://download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img"
container_format: "bare"
disk_format: "qcow2"
runner:
type: "constant"
times: 5
concurrency: 5
context:
users:
tenants: 2
users_per_tenant: 3
sla:
failure_rate:
max: 0
GlanceImages.create_and_list_image:
-
args:
image_location: "/home/jenkins/.rally/extra/fake-image.img"
container_format: "bare"
disk_format: "qcow2"
runner:
type: "constant"
times: 6
concurrency: 6
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
GlanceImages.create_image_and_boot_instances:
-
args:
image_location: "http://download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img"
container_format: "bare"
disk_format: "qcow2"
flavor:
name: "m1.tiny"
number_instances: 2
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
sla:
failure_rate:
max: 0
GlanceImages.list_images:
-
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 2
users_per_tenant: 2
images:
image_url: "http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img"
image_type: "qcow2"
image_container: "bare"
images_per_tenant: 2
sla:
failure_rate:
max: 0
NovaServers.boot_and_delete_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 2
network:
start_cidr: "10.2.0.0/24"
networks_per_tenant: 2
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
force_delete: true
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
NovaServers.boot_and_list_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
detailed: True
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
sla:
failure_rate:
max: 0
NovaServers.suspend_and_resume_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
sla:
failure_rate:
max: 0
NovaServers.pause_and_unpause_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
sla:
failure_rate:
max: 0
NovaServers.boot_and_rebuild_server:
-
args:
flavor:
name: "m1.tiny"
from_image:
name: {{image_name}}
to_image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
sla:
failure_rate:
max: 0
NovaServers.list_servers:
-
args:
detailed: True
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
servers:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
servers_per_tenant: 2
sla:
failure_rate:
max: 0
NovaServers.resize_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
to_flavor:
name: "m1.small"
confirm: true
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 1
sla:
failure_rate:
max: 0
NovaServers.boot_and_bounce_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
actions:
-
hard_reboot: 1
-
stop_start: 1
-
rescue_unrescue: 1
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 1
sla:
failure_rate:
max: 0
NovaServers.boot_server_from_volume_and_delete:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
volume_size: 1
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 3
sla:
failure_rate:
max: 0
NovaServers.boot_server_from_volume:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
volume_size: 1
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
NovaServers.snapshot_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
NovaServers.boot_server:
-
args:
flavor:
name: "^ram64$"
image:
name: {{image_name}}
auto_assign_nics: false
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 2
flavors:
-
name: "ram64"
ram: 64
sla:
failure_rate:
max: 0
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
VMTasks.boot_runcommand_delete:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
floating_network: "public"
use_floatingip: true
script: "/home/jenkins/.rally/extra/instance_dd_test.sh"
interpreter: "/bin/sh"
username: "cirros"
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
volume_args:
size: 2
use_floatingip: true
script: "/home/jenkins/.rally/extra/instance_dd_test.sh"
interpreter: "/bin/sh"
username: "cirros"
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
use_floatingip: false
script: "/home/jenkins/.rally/extra/instance_dd_test.sh"
interpreter: "/bin/sh"
username: "cirros"
runner:
type: "constant"
times: 2
concurrency: 2
context:
users:
tenants: 1
users_per_tenant: 1
sla:
failure_rate:
max: 0
Requests.check_response:
-
args:
url: "http://www.google.com"
response: 200
runner:
type: "constant"
times: 5
concurrency: 5
NovaSecGroup.create_and_delete_secgroups:
-
args:
security_group_count: 5
rules_per_security_group: 5
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 3
users_per_tenant: 2
quotas:
nova:
security_groups: -1
security_group_rules: -1
sla:
failure_rate:
max: 0
NovaSecGroup.create_and_list_secgroups:
-
args:
security_group_count: 5
rules_per_security_group: 5
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 3
users_per_tenant: 2
quotas:
nova:
security_groups: -1
security_group_rules: -1
sla:
failure_rate:
max: 0
NovaSecGroup.boot_and_delete_server_with_secgroups:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
security_group_count: 5
rules_per_security_group: 5
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 3
users_per_tenant: 2
network:
start_cidr: "10.2.0.0/24"
quotas:
nova:
security_groups: -1
security_group_rules: -1
NovaKeypair.create_and_delete_keypair:
-
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
NovaKeypair.create_and_list_keypairs:
-
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
NovaKeypair.boot_and_delete_server_with_keypair:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 4
concurrency: 4
context:
users:
tenants: 3
users_per_tenant: 2
network:
start_cidr: "10.2.0.0/24"
sla:
failure_rate:
max: 0
EC2Servers.boot_server:
-
args:
flavor:
name: "m1.tiny"
image:
name: {{image_name}}
runner:
type: "constant"
times: 3
concurrency: 3
context:
users:
tenants: 3
users_per_tenant: 1
sla:
failure_rate:
max: 0
HeatStacks.list_stacks_and_events:
-
runner:
type: "constant"
times: 6
concurrency: 3
context:
users:
tenants: 2
users_per_tenant: 3
stacks:
stacks_per_tenant: 2
resources_per_stack: 10
sla:
failure_rate:
max: 0