Example Playbook
##############################
Robusta needs rules to tell it what to do. These rules are called "playbooks".
On this page, we configure a new playbook that monitors deployments. It will notify in Slack every time the
number of replicas changes.
Enabling the playbook
------------------------
Playbooks are configured with the ``customPlaybooks`` helm value.
1. Add the following to ``generated_values.yaml``:
.. code-block:: yaml
customPlaybooks:
- triggers:
- on_deployment_update: {}
actions:
- resource_babysitter:
fields_to_monitor: ["spec.replicas"]
2. Perform an upgrade with Helm to apply the new configuration
.. code-block:: bash
helm upgrade robusta robusta/robusta --values=generated_values.yaml
Seeing the Playbook in action
----------------------------------
1. Scale one of your deployments:
.. code-block:: python
kubectl scale --replicas NEW_REPLICAS_COUNT deployments/DEPLOYMENT_NAME
2. Check the slack channel you configured when installing Robusta:
.. image:: ../images/replicas_change.png
:width: 600
:align: center
If you setup `Robusta UI `_, it will appear in the timeline of all alerts and changes:
.. image:: ../images/ui-timeline.png
:width: 600
:align: center
You can click to see the diff:
.. image:: ../images/ui-diff.png
:width: 600
:align: center
How the playbook works
----------------------------------
Every playbook configuration has three parts.
triggers:
We chose ``on_deployment_update`` so our playbook runs every time deployments are updated
actions:
We chose :ref:`Resource babysitter` which is a builtin action. That action has a parameter ``fields_to_monitor``.
sinks:
We didn't configure any sinks, so output is sent to the default sink. This is usually Slack and/or the `Robusta UI `_.
Further customization
------------------------
Try changing the configuration to monitors changes to a deployment\'s image tag.