Orchestrates and reactors
Change-Id: I9e48e113656dd9f1ce644e98650276b36e444009
diff --git a/README.rst b/README.rst
index edd6208..5f528fd 100644
--- a/README.rst
+++ b/README.rst
@@ -163,7 +163,7 @@
master:
state_output: changes
-Salt Reactor system sample
+Salt synchronise node pillar and modules after start
.. code-block:: yaml
@@ -171,9 +171,25 @@
master:
reactor:
salt/minion/*/start:
- - salt://reactor/minion-started.sls
+ - salt://salt/reactor/node_start.sls
-Run any orchestration pipeline from custom event
+Trigger basic node install
+
+.. code-block:: yaml
+
+ salt:
+ master:
+ reactor:
+ salt/minion/install:
+ - salt://salt/reactor/node_install.sls
+
+Sample event to trigger the node installation
+
+.. code-block:: bash
+
+ salt-call event.send 'salt/minion/install'
+
+Run any orchestration pipeline
.. code-block:: yaml
@@ -183,13 +199,13 @@
salt/orchestrate/start:
- salt://salt/reactor/orchestrate_start.sls
-Sample event to trigger the basic orchestration pipeline
+Event to trigger the orchestration pipeline
.. code-block:: bash
- salt-call event.send 'salt/orchestrate/start' "{'orchestrate': 'salt/orchestrate/infra_install.sls'}
+ salt-call event.send 'salt/orchestrate/start' "{'orchestrate': 'salt/orchestrate/infra_install.sls'}"
-Classify node from custom event
+Classify node after start
.. code-block:: yaml
@@ -199,7 +215,7 @@
reclass/minion/classify:
- salt://reclass/reactor/node_register.sls
-Sample event to trigger the classification
+Event to trigger the node classification
.. code-block:: bash
diff --git a/salt/orchestrate/infra_install.sls b/salt/orchestrate/infra_install.sls
index 94a820f..61fe224 100644
--- a/salt/orchestrate/infra_install.sls
+++ b/salt/orchestrate/infra_install.sls
@@ -1,28 +1,10 @@
-salt_state_config_node:
- salt.state:
- - tgt: 'salt:master'
- - tgt_type: pillar
- - sls: salt.master
- - queue: True
-
-reclass_state_config_nodes
- salt.state:
- - tgt: 'reclass:storage'
- - tgt_type: pillar
- - sls: reclass
- - queue: True
- - requires:
- - salt: salt_state_config_node
-
linux_state_all_nodes:
salt.state:
- tgt: 'linux:system'
- tgt_type: pillar
- sls: linux
- queue: True
- - requires:
- - salt: reclass_state_config_nodes
salt_state_all_nodes:
salt.state:
@@ -30,14 +12,23 @@
- tgt_type: pillar
- sls: salt.minion
- queue: True
- - requires:
+ - require:
- salt: linux_state_all_nodes
-ntp_ssh_state_all_nodes:
+openssh_state_all_nodes:
salt.state:
- - tgt: 'salt:minion'
+ - tgt: 'openssh:server'
- tgt_type: pillar
- - sls: ntp,openssh
+ - sls: openssh
- queue: True
- - requires:
+ - require:
+ - salt: salt_state_all_nodes
+
+ntp_state_all_nodes:
+ salt.state:
+ - tgt: 'ntp:client'
+ - tgt_type: pillar
+ - sls: ntp
+ - queue: True
+ - require:
- salt: salt_state_all_nodes
diff --git a/salt/orchestrate/master_update.sls b/salt/orchestrate/master_update.sls
new file mode 100644
index 0000000..89876b2
--- /dev/null
+++ b/salt/orchestrate/master_update.sls
@@ -0,0 +1,16 @@
+
+salt_state_config_node:
+ salt.state:
+ - tgt: 'salt:master'
+ - tgt_type: pillar
+ - sls: salt.master
+ - queue: True
+
+reclass_state_config_nodes
+ salt.state:
+ - tgt: 'reclass:storage'
+ - tgt_type: pillar
+ - sls: reclass
+ - queue: True
+ - require:
+ - salt: salt_state_config_node
diff --git a/salt/orchestrate/node_install.sls b/salt/orchestrate/node_install.sls
new file mode 100644
index 0000000..c66b4e2
--- /dev/null
+++ b/salt/orchestrate/node_install.sls
@@ -0,0 +1,23 @@
+{%- set node_name = salt['pillar.get']('event_originator') %}
+
+linux_state:
+ salt.state:
+ - tgt: '{{ node_name }}'
+ - sls: linux
+ - queue: True
+
+salt_state:
+ salt.state:
+ - tgt: '{{ node_name }}'
+ - sls: salt.minion
+ - queue: True
+ - require:
+ - salt: linux_state
+
+misc_states:
+ salt.state:
+ - tgt: '{{ node_name }}'
+ - sls: ntp,openssh
+ - queue: True
+ - require:
+ - salt: salt_state
diff --git a/salt/reactor/infra_install.sls b/salt/reactor/infra_install.sls
new file mode 100644
index 0000000..17e7d9c
--- /dev/null
+++ b/salt/reactor/infra_install.sls
@@ -0,0 +1,5 @@
+
+orchestrate_infra_install:
+ runner.state.orchestrate:
+ - mods: salt://salt/orchestrate/infra_install.sls
+ - queue: True
diff --git a/salt/reactor/node_install.sls b/salt/reactor/node_install.sls
new file mode 100644
index 0000000..96e3c3b
--- /dev/null
+++ b/salt/reactor/node_install.sls
@@ -0,0 +1,7 @@
+
+orchestrate_node_install:
+ runner.state.orchestrate:
+ - mods: salt://salt/orchestrate/node_install.sls
+ - queue: True
+ - pillar:
+ event_originator: {{ data.id }}
diff --git a/salt/reactor/node_start.sls b/salt/reactor/node_start.sls
new file mode 100644
index 0000000..904822c
--- /dev/null
+++ b/salt/reactor/node_start.sls
@@ -0,0 +1,8 @@
+
+node_sync_all:
+ local.saltutil.sync_all:
+ - tgt: {{ data.id }}
+
+node_refresh_pillar:
+ local.saltutil.refresh_pillar:
+ - tgt: {{ data.id }}