]> git.proxmox.com Git - ceph.git/blobdiff - ceph/qa/suites/upgrade/pacific-x/stress-split/1-start.yaml
import quincy beta 17.1.0
[ceph.git] / ceph / qa / suites / upgrade / pacific-x / stress-split / 1-start.yaml
diff --git a/ceph/qa/suites/upgrade/pacific-x/stress-split/1-start.yaml b/ceph/qa/suites/upgrade/pacific-x/stress-split/1-start.yaml
new file mode 100644 (file)
index 0000000..3daf723
--- /dev/null
@@ -0,0 +1,122 @@
+tasks:
+- install:
+    branch: pacific
+    exclude_packages:
+      - ceph-volume
+
+- cephadm:
+    image: docker.io/ceph/daemon-base:latest-pacific
+    cephadm_branch: pacific
+    cephadm_git_url: https://github.com/ceph/ceph
+    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
+
+      - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1
+      - ceph orch ps
+
+      - echo wait for minority of mons to upgrade
+      - while ! ceph mon versions | grep $sha1 ; do sleep 2 ; done
+      - ceph orch ps
+      - ceph orch upgrade pause
+      - sleep 60
+      - ceph orch upgrade resume
+
+      - echo wait for majority of mons to upgrade
+      - "while ! ceph mon versions | grep $sha1 | egrep ': [23]' ; do sleep 2 ; done"
+      - ceph orch ps
+      - ceph orch upgrade pause
+      - sleep 60
+      - ceph orch upgrade resume
+
+      - echo wait for all mons to upgrade
+      - "while ! ceph mon versions | grep $sha1 | grep ': 3' ; do sleep 2 ; done"
+      - ceph orch ps
+      - ceph orch upgrade pause
+      - sleep 60
+      - ceph orch upgrade resume
+
+      - echo wait for half of osds to upgrade
+      - "while ! ceph osd versions | grep $sha1 | egrep ': [45678]'; do sleep 2 ; done"
+      - ceph orch upgrade pause
+      - ceph orch ps
+
+      - ceph orch ps
+      - ceph versions
+
+
+#################
+
+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:
+          - ceph orch upgrade resume
+          - sleep 60
+
+          - echo wait for upgrade to complete
+          - while ceph orch upgrade status | jq '.in_progress' | grep true ; do ceph orch ps ; ceph versions ; 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