Add rabbitmq.upgrade states
This patch adds granular upgrade states for rabbitmq service.
Change-Id: I886f0cb096794d411fcd85b5a7b6b77f4acbb3a4
Realted-Prod: PROD-29461
diff --git a/README.rst b/README.rst
index 8ffeab8..973164f 100644
--- a/README.rst
+++ b/README.rst
@@ -231,6 +231,50 @@
to our shutdown script - but that would break any other Erlang apps
running on the system; it's more "global" than RabbitMQ.
+Upgrades
+========
+
+The rabbitmq formula provide set of phases (logical bloks) that will help to
+build flexible upgrade orchestration logic for particular components. The list
+of phases might and theirs descriptions are listed in table below:
+
++-------------------------------+------------------------------------------------------+
+| State | Description |
++===============================+======================================================+
+| <app>.upgrade.service_running | Ensure that all services for particular application |
+| | are enabled for autostart and running |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.service_stopped | Ensure that all services for particular application |
+| | disabled for autostart and dead |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
+| | are installed to latest available version. |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
+| | cloud before running upgrade. |
+| | Only non destructive actions will be applied during |
+| | this phase. Perform service built in service check |
+| | like (rabbitmqctl cluster_status) |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.upgrade.pre | Do nothing for now |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.upgrade | This state will basically upgrade application on |
+| | particular target. Stop services, render |
+| | configuration, install new packages, start services |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.upgrade.post | Do nothing for now |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.post | This phase should be launched only when upgrade of |
+| | the cloud is completed. Cleanup temporary files, |
+| | perform other post upgrade tasks. |
++-------------------------------+------------------------------------------------------+
+| <app>.upgrade.verify | Verify current node is present in running_nodes on |
+| | the cluster. |
++-------------------------------+------------------------------------------------------+
+
+
Read more
=========