From 2bea70aa8da84eb6b78e99d34d631d3e65d4a12b Mon Sep 17 00:00:00 2001 From: Yuri Weinstein Date: Mon, 17 Feb 2025 08:17:47 -0800 Subject: [PATCH] qa/tests: added initial squid-x suite Signed-off-by: Yuri Weinstein --- qa/suites/upgrade/squid-x/.qa | 1 + qa/suites/upgrade/squid-x/parallel/% | 0 qa/suites/upgrade/squid-x/parallel/.qa | 1 + .../upgrade/squid-x/parallel/0-random-distro$ | 1 + .../upgrade/squid-x/parallel/0-start.yaml | 53 +++++++ .../upgrade/squid-x/parallel/1-tasks.yaml | 47 ++++++ .../upgrade/squid-x/parallel/mon_election | 1 + .../parallel/overrides/ignorelist_health.yaml | 19 +++ .../squid-x/parallel/upgrade-sequence.yaml | 16 ++ qa/suites/upgrade/squid-x/parallel/workload/+ | 0 .../upgrade/squid-x/parallel/workload/.qa | 1 + .../parallel/workload/ec-rados-default.yaml | 25 ++++ .../squid-x/parallel/workload/rados_api.yaml | 14 ++ .../parallel/workload/rados_loadgenbig.yaml | 12 ++ .../parallel/workload/rbd_import_export.yaml | 14 ++ .../parallel/workload/test_rbd_api.yaml | 14 ++ .../parallel/workload/test_rbd_python.yaml | 20 +++ qa/suites/upgrade/squid-x/stress-split/% | 0 qa/suites/upgrade/squid-x/stress-split/.qa | 1 + .../upgrade/squid-x/stress-split/0-distro | 1 + .../upgrade/squid-x/stress-split/0-roles.yaml | 31 ++++ .../upgrade/squid-x/stress-split/1-start.yaml | 140 ++++++++++++++++++ .../stress-split/2-first-half-tasks/.qa | 1 + .../2-first-half-tasks/radosbench.yaml | 19 +++ .../2-first-half-tasks/rbd-cls.yaml | 12 ++ .../2-first-half-tasks/rbd-import-export.yaml | 12 ++ .../2-first-half-tasks/rbd_api.yaml | 12 ++ .../2-first-half-tasks/readwrite.yaml | 16 ++ .../2-first-half-tasks/snaps-few-objects.yaml | 18 +++ .../squid-x/stress-split/3-stress-tasks/+ | 0 .../squid-x/stress-split/3-stress-tasks/.qa | 1 + .../3-stress-tasks/radosbench.yaml | 25 ++++ .../stress-split/3-stress-tasks/rbd-cls.yaml | 12 ++ .../3-stress-tasks/rbd-import-export.yaml | 12 ++ .../stress-split/3-stress-tasks/rbd_api.yaml | 12 ++ .../3-stress-tasks/readwrite.yaml | 16 ++ .../3-stress-tasks/snaps-few-objects.yaml | 18 +++ .../stress-split/4-second-half-tasks/.qa | 1 + .../4-second-half-tasks/radosbench.yaml | 16 ++ .../rbd-import-export.yaml | 12 ++ .../upgrade/squid-x/stress-split/mon_election | 1 + .../overrides/ignorelist_health.yaml | 19 +++ 42 files changed, 647 insertions(+) create mode 120000 qa/suites/upgrade/squid-x/.qa create mode 100644 qa/suites/upgrade/squid-x/parallel/% create mode 120000 qa/suites/upgrade/squid-x/parallel/.qa create mode 120000 qa/suites/upgrade/squid-x/parallel/0-random-distro$ create mode 100644 qa/suites/upgrade/squid-x/parallel/0-start.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/1-tasks.yaml create mode 120000 qa/suites/upgrade/squid-x/parallel/mon_election create mode 100644 qa/suites/upgrade/squid-x/parallel/overrides/ignorelist_health.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/upgrade-sequence.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/+ create mode 120000 qa/suites/upgrade/squid-x/parallel/workload/.qa create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/ec-rados-default.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/rados_api.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/rados_loadgenbig.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/rbd_import_export.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/test_rbd_api.yaml create mode 100644 qa/suites/upgrade/squid-x/parallel/workload/test_rbd_python.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/% create mode 120000 qa/suites/upgrade/squid-x/stress-split/.qa create mode 120000 qa/suites/upgrade/squid-x/stress-split/0-distro create mode 100644 qa/suites/upgrade/squid-x/stress-split/0-roles.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/1-start.yaml create mode 120000 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/.qa create mode 100644 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/radosbench.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-cls.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-import-export.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd_api.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/readwrite.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/snaps-few-objects.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/+ create mode 120000 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/.qa create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/radosbench.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-cls.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-import-export.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd_api.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/readwrite.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/snaps-few-objects.yaml create mode 120000 qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/.qa create mode 100644 qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/radosbench.yaml create mode 100644 qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/rbd-import-export.yaml create mode 120000 qa/suites/upgrade/squid-x/stress-split/mon_election create mode 100644 qa/suites/upgrade/squid-x/stress-split/overrides/ignorelist_health.yaml diff --git a/qa/suites/upgrade/squid-x/.qa b/qa/suites/upgrade/squid-x/.qa new file mode 120000 index 0000000000000..fea2489fdf6d9 --- /dev/null +++ b/qa/suites/upgrade/squid-x/.qa @@ -0,0 +1 @@ +../.qa \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/parallel/% b/qa/suites/upgrade/squid-x/parallel/% new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/qa/suites/upgrade/squid-x/parallel/.qa b/qa/suites/upgrade/squid-x/parallel/.qa new file mode 120000 index 0000000000000..a602a0353e751 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/.qa @@ -0,0 +1 @@ +../.qa/ \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/parallel/0-random-distro$ b/qa/suites/upgrade/squid-x/parallel/0-random-distro$ new file mode 120000 index 0000000000000..66187855738ef --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/0-random-distro$ @@ -0,0 +1 @@ +.qa/distros/supported-container-hosts \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/parallel/0-start.yaml b/qa/suites/upgrade/squid-x/parallel/0-start.yaml new file mode 100644 index 0000000000000..62fb6427f7223 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/0-start.yaml @@ -0,0 +1,53 @@ +roles: +- - mon.a + - mon.c + - mgr.y + - mds.a + - osd.0 + - osd.1 + - osd.2 + - osd.3 + - client.0 + - node-exporter.a + - alertmanager.a +- - mon.b + - mds.b + - mgr.x + - osd.4 + - osd.5 + - osd.6 + - osd.7 + - client.1 + - prometheus.a + - grafana.a + - node-exporter.b +openstack: +- volumes: # attached to each instance + count: 4 + size: 10 # GB +overrides: + ceph: + create_rbd_pool: true + conf: + osd: + osd shutdown pgref assert: true + log-ignorelist: + - do not have an application enabled + - application not enabled + - or freeform for custom applications + - POOL_APP_NOT_ENABLED + - is down + - OSD_DOWN + - mons down + - mon down + - MON_DOWN + - out of quorum + - PG_AVAILABILITY + - PG_DEGRADED + - Reduced data availability + - Degraded data redundancy + - pg .* is stuck inactive + - pg .* is .*degraded + - FS_DEGRADED + - OSDMAP_FLAGS + - OSD_UPGRADE_FINISHED diff --git a/qa/suites/upgrade/squid-x/parallel/1-tasks.yaml b/qa/suites/upgrade/squid-x/parallel/1-tasks.yaml new file mode 100644 index 0000000000000..55b307cfc4391 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/1-tasks.yaml @@ -0,0 +1,47 @@ +overrides: + ceph: + log-ignorelist: + - Telemetry requires re-opt-in + - telemetry module includes new collections +tasks: +- install: + branch: squid + exclude_packages: + - ceph-volume +- print: "**** done install task..." +- print: "**** done start installing squid cephadm ..." +- cephadm: + image: quay.ceph.io/ceph-ci/ceph:squid + compiled_cephadm_branch: reef + conf: + osd: + #set config option for which cls modules are allowed to be loaded / used + osd_class_load_list: "*" + osd_class_default_list: "*" +- print: "**** done end installing squid cephadm ..." + +- print: "**** done start cephadm.shell ceph config set mgr..." +- cephadm.shell: + mon.a: + - ceph config set mgr mgr/cephadm/use_repo_digest true --force +- print: "**** done cephadm.shell ceph config set mgr..." + +- print: "**** done start telemetry squid..." +- workunit: + clients: + client.0: + - test_telemetry_squid.sh +- print: "**** done end telemetry squid..." + +- print: "**** done start parallel" +- parallel: + - workload + - upgrade-sequence +- print: "**** done end parallel" + +- print: "**** done start telemetry x..." +- workunit: + clients: + client.0: + - test_telemetry_squid_x.sh +- print: "**** done end telemetry x..." diff --git a/qa/suites/upgrade/squid-x/parallel/mon_election b/qa/suites/upgrade/squid-x/parallel/mon_election new file mode 120000 index 0000000000000..3f331e6214c4c --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/mon_election @@ -0,0 +1 @@ +.qa/mon_election \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/parallel/overrides/ignorelist_health.yaml b/qa/suites/upgrade/squid-x/parallel/overrides/ignorelist_health.yaml new file mode 100644 index 0000000000000..fa93b2f2ece29 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/overrides/ignorelist_health.yaml @@ -0,0 +1,19 @@ +overrides: + ceph: + log-ignorelist: + - MDS_ALL_DOWN + - MDS_UP_LESS_THAN_MAX + - OSD_SLOW_PING_TIME + - reached quota + - running out of quota + - overall HEALTH_ + - CACHE_POOL_NO_HIT_SET + - pool\(s\) full + - POOL_FULL + - SMALLER_PGP_NUM + - SLOW_OPS + - CACHE_POOL_NEAR_FULL + - OBJECT_MISPLACED + - slow request + - noscrub + - nodeep-scrub diff --git a/qa/suites/upgrade/squid-x/parallel/upgrade-sequence.yaml b/qa/suites/upgrade/squid-x/parallel/upgrade-sequence.yaml new file mode 100644 index 0000000000000..3aec52ce12643 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/upgrade-sequence.yaml @@ -0,0 +1,16 @@ +# renamed tasks: to upgrade-sequence: +upgrade-sequence: + sequential: + - print: "**** done start upgrade, wait" + - cephadm.shell: + env: [sha1] + mon.a: + - ceph config set global log_to_journald false --force + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + - ceph orch ps + - ceph versions + - ceph versions | jq -e '.overall | length == 1' + - ceph versions | jq -e '.overall | keys' | grep $sha1 + - print: "**** done end upgrade, wait..." + diff --git a/qa/suites/upgrade/squid-x/parallel/workload/+ b/qa/suites/upgrade/squid-x/parallel/workload/+ new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/qa/suites/upgrade/squid-x/parallel/workload/.qa b/qa/suites/upgrade/squid-x/parallel/workload/.qa new file mode 120000 index 0000000000000..a602a0353e751 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/.qa @@ -0,0 +1 @@ +../.qa/ \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/parallel/workload/ec-rados-default.yaml b/qa/suites/upgrade/squid-x/parallel/workload/ec-rados-default.yaml new file mode 100644 index 0000000000000..67a0f39c5da58 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/ec-rados-default.yaml @@ -0,0 +1,25 @@ +meta: +- desc: | + run run randomized correctness test for rados operations + on an erasure-coded pool +workload: + full_sequential: + - print: "**** done start ec-rados-default.yaml" + - rados: + clients: [client.0] + ops: 4000 + objects: 50 + ec_pool: true + write_append_excl: false + op_weights: + read: 100 + write: 0 + append: 100 + delete: 50 + snap_create: 50 + snap_remove: 50 + rollback: 50 + copy_from: 50 + setattr: 25 + rmattr: 25 + - print: "**** done end ec-rados-default.yaml" diff --git a/qa/suites/upgrade/squid-x/parallel/workload/rados_api.yaml b/qa/suites/upgrade/squid-x/parallel/workload/rados_api.yaml new file mode 100644 index 0000000000000..7cc6b316b5c1c --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/rados_api.yaml @@ -0,0 +1,14 @@ +meta: +- desc: | + object class functional tests +workload: + full_sequential: + - print: "**** done start rados_api.yaml" + - workunit: + branch: squid + clients: + client.0: + - cls + env: + CLS_RBD_GTEST_FILTER: '-TestClsRbd.group_snap_set:TestClsRbd.group_snap_remove' + - print: "**** done end rados_api.yaml" diff --git a/qa/suites/upgrade/squid-x/parallel/workload/rados_loadgenbig.yaml b/qa/suites/upgrade/squid-x/parallel/workload/rados_loadgenbig.yaml new file mode 100644 index 0000000000000..9cadc68011277 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/rados_loadgenbig.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + generate read/write load with rados objects ranging from 1MB to 25MB +workload: + full_sequential: + - print: "**** done start rados_loadgenbig.yaml" + - workunit: + branch: squid + clients: + client.0: + - rados/load-gen-big.sh + - print: "**** done end rados_loadgenbig.yaml" diff --git a/qa/suites/upgrade/squid-x/parallel/workload/rbd_import_export.yaml b/qa/suites/upgrade/squid-x/parallel/workload/rbd_import_export.yaml new file mode 100644 index 0000000000000..f9739e009abbf --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/rbd_import_export.yaml @@ -0,0 +1,14 @@ +meta: +- desc: | + run basic import/export cli tests for rbd +workload: + full_sequential: + - print: "**** done start rbd_import_export.yaml" + - workunit: + branch: squid + clients: + client.1: + - rbd/import_export.sh + env: + RBD_CREATE_ARGS: --new-format + - print: "**** done end rbd_import_export.yaml" diff --git a/qa/suites/upgrade/squid-x/parallel/workload/test_rbd_api.yaml b/qa/suites/upgrade/squid-x/parallel/workload/test_rbd_api.yaml new file mode 100644 index 0000000000000..2a02e06eb09e4 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/test_rbd_api.yaml @@ -0,0 +1,14 @@ +meta: +- desc: | + librbd C and C++ api tests +workload: + full_sequential: + - print: "**** done start test_rbd_api.yaml" + - workunit: + branch: squid + clients: + client.0: + - rbd/test_librbd.sh + env: + RBD_FEATURES: "61" + - print: "**** done end test_rbd_api.yaml" diff --git a/qa/suites/upgrade/squid-x/parallel/workload/test_rbd_python.yaml b/qa/suites/upgrade/squid-x/parallel/workload/test_rbd_python.yaml new file mode 100644 index 0000000000000..d37d4602c40b5 --- /dev/null +++ b/qa/suites/upgrade/squid-x/parallel/workload/test_rbd_python.yaml @@ -0,0 +1,20 @@ +meta: +- desc: | + librbd python api tests +overrides: + install: + ceph: + extra_system_packages: + - python3-pytest +workload: + full_sequential: + - print: "**** done start test_rbd_python.yaml" + - workunit: + branch: squid + clients: + client.0: + - rbd/test_librbd_python.sh + env: + RBD_FEATURES: "61" + - print: "**** done end test_rbd_python.yaml" + diff --git a/qa/suites/upgrade/squid-x/stress-split/% b/qa/suites/upgrade/squid-x/stress-split/% new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/qa/suites/upgrade/squid-x/stress-split/.qa b/qa/suites/upgrade/squid-x/stress-split/.qa new file mode 120000 index 0000000000000..a602a0353e751 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/.qa @@ -0,0 +1 @@ +../.qa/ \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/stress-split/0-distro b/qa/suites/upgrade/squid-x/stress-split/0-distro new file mode 120000 index 0000000000000..66187855738ef --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/0-distro @@ -0,0 +1 @@ +.qa/distros/supported-container-hosts \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/stress-split/0-roles.yaml b/qa/suites/upgrade/squid-x/stress-split/0-roles.yaml new file mode 100644 index 0000000000000..ad3ee43d38e49 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/0-roles.yaml @@ -0,0 +1,31 @@ +roles: +- - mon.a + - mon.c + - mgr.y + - osd.0 + - osd.1 + - osd.2 + - osd.3 + - client.0 + - node-exporter.a + - alertmanager.a +- - mon.b + - mgr.x + - osd.4 + - osd.5 + - osd.6 + - osd.7 + - client.1 + - prometheus.a + - grafana.a + - node-exporter.b +openstack: +- volumes: # attached to each instance + count: 4 + size: 10 # GB +overrides: + ceph: + create_rbd_pool: true + conf: + osd: + osd shutdown pgref assert: true diff --git a/qa/suites/upgrade/squid-x/stress-split/1-start.yaml b/qa/suites/upgrade/squid-x/stress-split/1-start.yaml new file mode 100644 index 0000000000000..59ccfe2cd0242 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/1-start.yaml @@ -0,0 +1,140 @@ +overrides: + ceph: + log-ignorelist: + - do not have an application enabled + - application not enabled + - or freeform for custom applications + - POOL_APP_NOT_ENABLED + - is down + - OSD_DOWN + - mons down + - mon down + - MON_DOWN + - out of quorum + - PG_AVAILABILITY + - PG_DEGRADED + - Reduced data availability + - Degraded data redundancy + - pg .* is stuck inactive + - pg .* is .*degraded + - FS_DEGRADED + - OSDMAP_FLAGS + - OSD_UPGRADE_FINISHED +tasks: +- install: + branch: reef + exclude_packages: + - ceph-volume + +- cephadm: + image: quay.ceph.io/ceph-ci/ceph:reef + compiled_cephadm_branch: reef + conf: + osd: + #set config option for which cls modules are allowed to be loaded / used + osd_class_load_list: "*" + osd_class_default_list: "*" + +- cephadm.shell: + mon.a: + - ceph fs volume create foo + - ceph config set mon mon_warn_on_insecure_global_id_reclaim false --force + - ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false --force + +- ceph.healthy: + +- print: "**** upgrading first half of cluster, with stress ****" +- parallel: + - first-half-tasks + - first-half-sequence +- print: "**** done upgrading first half of cluster ****" + +- ceph.healthy: + +- print: "**** applying stress + thrashing to mixed-version cluster ****" + +- parallel: + - stress-tasks + +- ceph.healthy: + +- print: "**** finishing upgrade ****" +- parallel: + - second-half-tasks + - second-half-sequence + +- ceph.healthy: + + +################# + +first-half-sequence: +- cephadm.shell: + env: [sha1] + mon.a: + - ceph config set mgr mgr/cephadm/daemon_cache_timeout 60 + - ceph config set global log_to_journald false --force + + - echo wait for mgr daemons to upgrade + # upgrade the mgr daemons first + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 --daemon-types mgr + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + + - echo wait for minority of mons to upgrade + # upgrade 1 of 3 mon daemons, then wait 60 seconds + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 --daemon-types mon --limit 1 + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + - sleep 60 + + - echo wait for majority of mons to upgrade + # upgrade one more mon daemon (to get us to 2/3 upgraded) and wait 60 seconds + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 --daemon-types mon --limit 1 + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + - sleep 60 + + - echo wait for all mons to upgrade + # upgrade final mon daemon and wait 60 seconds + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 --daemon-types mon + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + - sleep 60 + + - echo wait for half of osds to upgrade + # upgrade 4 of the 8 OSDs + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 --daemon-types osd --limit 4 + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + + +################# + +stress-tasks: +- thrashosds: + timeout: 1200 + chance_pgnum_grow: 1 + chance_pgpnum_fix: 1 + chance_thrash_cluster_full: 0 + chance_thrash_pg_upmap: 0 + chance_thrash_pg_upmap_items: 0 + disable_objectstore_tool_tests: true + chance_force_recovery: 0 + aggressive_pg_num_changes: false + + +################# + +second-half-sequence: + sequential: + - cephadm.shell: + env: [sha1] + mon.a: + - sleep 60 + + - echo wait for upgrade to complete + # upgrade whatever is left + - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1 + - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph orch upgrade status ; sleep 30 ; done + + - echo upgrade complete + - ceph orch ps + - ceph versions + - ceph versions | jq -e '.overall | length == 1' + - ceph versions | jq -e '.overall | keys' | grep $sha1 diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/.qa b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/.qa new file mode 120000 index 0000000000000..a602a0353e751 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/.qa @@ -0,0 +1 @@ +../.qa/ \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/radosbench.yaml b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/radosbench.yaml new file mode 100644 index 0000000000000..3816ca38c985a --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/radosbench.yaml @@ -0,0 +1,19 @@ +meta: +- desc: | + run randomized correctness test for rados operations + generate write load with rados bench +first-half-tasks: +- full_sequential: + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 +- print: "**** done end radosbench.yaml" diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-cls.yaml b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-cls.yaml new file mode 100644 index 0000000000000..012b546dbd5ae --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-cls.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + run basic cls tests for rbd +first-half-tasks: +- workunit: + branch: squid + clients: + client.0: + - cls/test_cls_rbd.sh + env: + CLS_RBD_GTEST_FILTER: '-TestClsRbd.group_snap_set:TestClsRbd.group_snap_remove' +- print: "**** done cls/test_cls_rbd.sh 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-import-export.yaml b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-import-export.yaml new file mode 100644 index 0000000000000..9b6e9ce6eca50 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd-import-export.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + run basic import/export cli tests for rbd +first-half-tasks: +- workunit: + branch: squid + clients: + client.0: + - rbd/import_export.sh + env: + RBD_CREATE_ARGS: --new-format +- print: "**** done rbd/import_export.sh 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd_api.yaml b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd_api.yaml new file mode 100644 index 0000000000000..00a16ab3e825e --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/rbd_api.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + librbd C and C++ api tests +first-half-tasks: +- workunit: + branch: squid + clients: + client.0: + - rbd/test_librbd.sh + env: + RBD_FEATURES: "61" +- print: "**** done rbd/test_librbd.sh 7-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/readwrite.yaml b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/readwrite.yaml new file mode 100644 index 0000000000000..21a9f379a9ec9 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/readwrite.yaml @@ -0,0 +1,16 @@ +meta: +- desc: | + randomized correctness test for rados operations on a replicated pool, + using only reads, writes, and deletes +first-half-tasks: +- full_sequential: + - rados: + clients: [client.0] + ops: 4000 + objects: 500 + write_append_excl: false + op_weights: + read: 45 + write: 45 + delete: 10 +- print: "**** done rados/readwrite 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/snaps-few-objects.yaml b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/snaps-few-objects.yaml new file mode 100644 index 0000000000000..6447c2245fb5a --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/2-first-half-tasks/snaps-few-objects.yaml @@ -0,0 +1,18 @@ +meta: +- desc: | + randomized correctness test for rados operations on a replicated pool with snapshot operations +first-half-tasks: +- full_sequential: + - rados: + clients: [client.0] + ops: 4000 + objects: 50 + write_append_excl: false + op_weights: + read: 100 + write: 100 + delete: 50 + snap_create: 50 + snap_remove: 50 + rollback: 50 +- print: "**** done rados/snaps-few-objects 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/+ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/+ new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/.qa b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/.qa new file mode 120000 index 0000000000000..a602a0353e751 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/.qa @@ -0,0 +1 @@ +../.qa/ \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/radosbench.yaml b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/radosbench.yaml new file mode 100644 index 0000000000000..9058bd804a6cf --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/radosbench.yaml @@ -0,0 +1,25 @@ +meta: +- desc: | + run randomized correctness test for rados operations + generate write load with rados bench +stress-tasks: +- full_sequential: + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 +- print: "**** done end radosbench.yaml" diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-cls.yaml b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-cls.yaml new file mode 100644 index 0000000000000..15b02e45874ec --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-cls.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + run basic cls tests for rbd +stress-tasks: +- workunit: + branch: squid + clients: + client.0: + - cls/test_cls_rbd.sh + env: + CLS_RBD_GTEST_FILTER: '-TestClsRbd.group_snap_set:TestClsRbd.group_snap_remove' +- print: "**** done cls/test_cls_rbd.sh 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-import-export.yaml b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-import-export.yaml new file mode 100644 index 0000000000000..de0d3a819438b --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd-import-export.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + run basic import/export cli tests for rbd +stress-tasks: +- workunit: + branch: squid + clients: + client.0: + - rbd/import_export.sh + env: + RBD_CREATE_ARGS: --new-format +- print: "**** done rbd/import_export.sh 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd_api.yaml b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd_api.yaml new file mode 100644 index 0000000000000..ee938dfded6e7 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/rbd_api.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + librbd C and C++ api tests +stress-tasks: +- workunit: + branch: squid + clients: + client.0: + - rbd/test_librbd.sh + env: + RBD_FEATURES: "61" +- print: "**** done rbd/test_librbd.sh 7-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/readwrite.yaml b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/readwrite.yaml new file mode 100644 index 0000000000000..41e34d6d7d32a --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/readwrite.yaml @@ -0,0 +1,16 @@ +meta: +- desc: | + randomized correctness test for rados operations on a replicated pool, + using only reads, writes, and deletes +stress-tasks: +- full_sequential: + - rados: + clients: [client.0] + ops: 4000 + objects: 500 + write_append_excl: false + op_weights: + read: 45 + write: 45 + delete: 10 +- print: "**** done rados/readwrite 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/snaps-few-objects.yaml b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/snaps-few-objects.yaml new file mode 100644 index 0000000000000..f56d0de0f745b --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/3-stress-tasks/snaps-few-objects.yaml @@ -0,0 +1,18 @@ +meta: +- desc: | + randomized correctness test for rados operations on a replicated pool with snapshot operations +stress-tasks: +- full_sequential: + - rados: + clients: [client.0] + ops: 4000 + objects: 50 + write_append_excl: false + op_weights: + read: 100 + write: 100 + delete: 50 + snap_create: 50 + snap_remove: 50 + rollback: 50 +- print: "**** done rados/snaps-few-objects 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/.qa b/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/.qa new file mode 120000 index 0000000000000..a602a0353e751 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/.qa @@ -0,0 +1 @@ +../.qa/ \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/radosbench.yaml b/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/radosbench.yaml new file mode 100644 index 0000000000000..7268cb170cadc --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/radosbench.yaml @@ -0,0 +1,16 @@ +meta: +- desc: | + run randomized correctness test for rados operations + generate write load with rados bench +second-half-tasks: +- full_sequential: + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 + - radosbench: + clients: [client.0] + time: 90 +- print: "**** done end radosbench.yaml" diff --git a/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/rbd-import-export.yaml b/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/rbd-import-export.yaml new file mode 100644 index 0000000000000..47c0733fd5218 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/4-second-half-tasks/rbd-import-export.yaml @@ -0,0 +1,12 @@ +meta: +- desc: | + run basic import/export cli tests for rbd +second-half-tasks: +- workunit: + branch: squid + clients: + client.0: + - rbd/import_export.sh + env: + RBD_CREATE_ARGS: --new-format +- print: "**** done rbd/import_export.sh 5-workload" diff --git a/qa/suites/upgrade/squid-x/stress-split/mon_election b/qa/suites/upgrade/squid-x/stress-split/mon_election new file mode 120000 index 0000000000000..3f331e6214c4c --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/mon_election @@ -0,0 +1 @@ +.qa/mon_election \ No newline at end of file diff --git a/qa/suites/upgrade/squid-x/stress-split/overrides/ignorelist_health.yaml b/qa/suites/upgrade/squid-x/stress-split/overrides/ignorelist_health.yaml new file mode 100644 index 0000000000000..fa93b2f2ece29 --- /dev/null +++ b/qa/suites/upgrade/squid-x/stress-split/overrides/ignorelist_health.yaml @@ -0,0 +1,19 @@ +overrides: + ceph: + log-ignorelist: + - MDS_ALL_DOWN + - MDS_UP_LESS_THAN_MAX + - OSD_SLOW_PING_TIME + - reached quota + - running out of quota + - overall HEALTH_ + - CACHE_POOL_NO_HIT_SET + - pool\(s\) full + - POOL_FULL + - SMALLER_PGP_NUM + - SLOW_OPS + - CACHE_POOL_NEAR_FULL + - OBJECT_MISPLACED + - slow request + - noscrub + - nodeep-scrub -- 2.39.5