--- /dev/null
+upgrade-sequence:
+ sequential:
+ - install.upgrade:
+ mon.a:
+ - print: "**** done install.upgrade mon.a to the version from teuthology-suite arg"
+ - install.upgrade:
+ mon.b:
+ - print: "**** done install.upgrade mon.b to the version from teuthology-suite arg"
+ - ceph.restart:
+ daemons: [mon.a]
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [mon.b]
+ - sleep:
+ duration: 60
+ - ceph.restart: [mon.c]
+ - sleep:
+ duration: 60
+ - ceph.restart: [osd.0]
+ - sleep:
+ duration: 60
+ - ceph.restart: [osd.1]
+ - sleep:
+ duration: 60
+ - ceph.restart: [osd.2]
+ - sleep:
+ duration: 60
+ - ceph.restart: [osd.3]
+ - sleep:
+ duration: 60
+ - ceph.restart: [mds.a]
+ - exec:
+ mon.a:
+ - ceph osd crush tunables firefly
--- /dev/null
+upgrade-sequence:
+ sequential:
+ - install.upgrade:
+ mon.a:
+ - print: "**** done install.upgrade mon.a to the version from teuthology-suite arg"
+ - install.upgrade:
+ mon.b:
+ - print: "**** done install.upgrade mon.b to the version from teuthology-suite arg"
+ - ceph.restart:
+ daemons: [mon.a, mon.b, mon.c]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.0, osd.1, osd.2, osd.3]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart: [mds.a]
+ - sleep:
+ duration: 60
+ - exec:
+ mon.a:
+ - ceph osd crush tunables firefly
--- /dev/null
+Purpose
+=======
+
+This suite tests upgrades of a ceph cluster from firefly (current
+branch) to giant (current branch), and then to a later specified
+version (version x, e.g. for example ‘next’ or ‘master’). It runs the
+last upgrade (steps in 3-giant-upgrade) in parallel with firefly
+client tests.
+
+
+Structure
+=========
+
+Generally the flow is:
+- install firefly
+- test it
+- upgrade cluster and clients to giant
+- test giant while upgrading cluster to version x
+- upgrade clients
+- test with version x clients
+
+0-cluster
+---------
+
+Defines the cluster layout - two nodes run ceph daemons, and a third
+acts as a client. (This is under 'roles:' section in the final yaml)
+
+1-firefly-install
+------------------
+
+Installs firefly and runs correctness tests from the 'workload' section
+
+2-workload
+----------
+
+Defines the 'workload' section - correctness tests to run on firefly
+“+” is used to construct a single yaml load from all tests in this directory
+
+3-giant-upgrade
+-----------------
+
+First upgrades everything to giant. Then upgrades the cluster to
+version x while running correctness tests (from the 'workload2'
+section) on giant clients in parallel. This upgrade is done by the
+'upgrade-sequence' section, defined later. Once the cluster is
+upgraded and these tests complete, upgrades the clients to version x
+as well.
+
+Clients are upgraded last to avoid running newer tests that don't work
+against giant, and to verify that giant clients can continue
+working with a newer cluster.
+
+4-workload
+----------
+
+Defines the 'workload2' section - correctness tests to run during the
+upgrade from giant to version x.
+“+” is used to construct a single yaml load from all tests in this directory
+
+5-upgrade-sequence
+------------------
+
+Defines the 'upgrade-sequence' section - the order in which the
+upgrade from giant to version x is done. Note that leaving the
+version unspecified here is what makes it upgrade to version x,
+which is set as an override when this suite is scheduled.
+
+6-final-workload
+----------------
+
+Runs some final correctness tests of version x clients.
+“+” is used to construct a single yaml load from all tests in this directory