From 48aa60803013c605f5debde2f29eda422754fca3 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 30 Apr 2026 06:17:24 +0000 Subject: [PATCH 01/32] docs: hide outdated CLI install paths, reframe as Robusta Classic The robusta CLI install flow (robusta gen-config / pipx / docker) is outdated. Drop those paths from the install docs in favor of the SaaS signup wizard, and reframe non-Holmes/non-SaaS content as Robusta Classic so the primary docs focus on the AI agent + Robusta Platform (with HolmesGPT OSS docs living separately at holmesgpt.dev). - Rename "Other Features" toctree caption to "Robusta Classic" - Consolidate install pages into a single Install Robusta page (drop the all-in-one Prometheus and Build-from-Source variants; Holmes users always have an existing observability stack) - Strip robusta gen-config / robusta-cli references from the Slack sink, multi-cluster, and help/troubleshooting pages - Update conf.py redirects for removed pages https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/conf.py | 7 +- .../configuration/sinks/sinks-development.rst | 2 +- docs/configuration/sinks/slack.rst | 4 +- docs/help.rst | 54 +-------- docs/index.rst | 2 +- .../installation/_generate_config.jinja | 66 ----------- .../_helm_install_with_prometheus.inc.rst | 109 ----------------- .../installation/all-in-one-installation.rst | 36 ------ docs/setup-robusta/installation/dev-setup.rst | 110 ------------------ docs/setup-robusta/installation/index.rst | 54 +++++---- .../installation/standalone-installation.rst | 26 ----- docs/setup-robusta/multi-cluster.rst | 9 +- 12 files changed, 48 insertions(+), 431 deletions(-) delete mode 100644 docs/setup-robusta/installation/_generate_config.jinja delete mode 100644 docs/setup-robusta/installation/_helm_install_with_prometheus.inc.rst delete mode 100644 docs/setup-robusta/installation/all-in-one-installation.rst delete mode 100644 docs/setup-robusta/installation/dev-setup.rst delete mode 100644 docs/setup-robusta/installation/standalone-installation.rst diff --git a/docs/conf.py b/docs/conf.py index 4853c12b1..ec2f69437 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -71,7 +71,10 @@ "developer-guide/actions/findings-api.html": "/master/playbook-reference/actions/develop-actions/findings-api.html", "tutorials/my-first-custom-action.html": "/master/playbook-reference/actions/develop-actions/index.html", "user-guide/self-hosting.html": "/master/how-it-works/oss-vs-saas.html", - "getting-started/installation.html": "/master/setup-robusta/installation/all-in-one-installation.html", + "getting-started/installation.html": "/master/setup-robusta/installation/index.html", + "setup-robusta/installation/all-in-one-installation.html": "/master/setup-robusta/installation/index.html", + "setup-robusta/installation/standalone-installation.html": "/master/setup-robusta/installation/index.html", + "setup-robusta/installation/dev-setup.html": "/master/help.html", "tutorials/java-troubleshooting.html": "/master/tutorials/application-troubleshooting-java.html", "catalog/sinks/index.html": "/master/configuration/sinks/index.html", "tutorials/prometheus-enrichment.html": "/master/tutorials/alert-custom-enrichment.html", @@ -216,7 +219,7 @@ "playbook-reference/overview.html": "/master/playbook-reference/index.html", "playbook-reference/defining-playbooks/playbook-basics.html": "/master/playbook-reference/index.html", "how-it-works/alert-builtin-enrichment.html": "/master/playbook-reference/builtin-alert-enrichment.html", - "setup-robusta/installation/extend-prometheus-installation.html": "/master/setup-robusta/installation/standalone-installation.html", + "setup-robusta/installation/extend-prometheus-installation.html": "/master/setup-robusta/installation/index.html", "playbook-reference/defining-playbooks/index.html": "/master/playbook-reference/index.html", "configuration/alertmanager-integration/alert-custom-prometheus.html": "/master/configuration/alertmanager-integration/embedded-prometheus.html#creating-custom-prometheus-alerts", "configuration/alertmanager-integration/index.html": "/master/configuration/index.html", diff --git a/docs/configuration/sinks/sinks-development.rst b/docs/configuration/sinks/sinks-development.rst index 52c9e3f3c..30849b880 100644 --- a/docs/configuration/sinks/sinks-development.rst +++ b/docs/configuration/sinks/sinks-development.rst @@ -27,7 +27,7 @@ Each sink consists of a sink class and a config class. Optionally, helpers are u To implement a new sink you must: -1. :ref:`Build Robusta from source ` +1. Clone the `Robusta repo `_ and follow the README to build from source 2. Add a new Python module inside `src/robusta/core/sinks `_ containing your sink’s source code 3. Implement a sink config class 4. Implement a sink class diff --git a/docs/configuration/sinks/slack.rst b/docs/configuration/sinks/slack.rst index 7f0c43574..bea855591 100644 --- a/docs/configuration/sinks/slack.rst +++ b/docs/configuration/sinks/slack.rst @@ -20,14 +20,14 @@ Quick Start **Option 1: Automatic Setup (Recommended)** -When installing Robusta, run ``robusta gen-config`` and follow the prompts. This automatically configures Slack using our `official +Sign up for a `free Robusta account `_ and connect Slack during the signup wizard. This automatically configures Slack using our `official Slack app `_. Note: Robusta can only write messages and doesn't require read permissions. **Option 2: Manual Configuration** -Generate a Slack API key by running ``robusta integrations slack``, then add to your ``generated_values.yaml``: +Generate a Slack API key on your own, then add it to your ``generated_values.yaml``: .. code-block:: yaml diff --git a/docs/help.rst b/docs/help.rst index d926cad02..ae03332ef 100644 --- a/docs/help.rst +++ b/docs/help.rst @@ -41,54 +41,12 @@ Issues are organized by installation phase to help you quickly find solutions.
Where are you stuck?
- • Phase 1: Configuration Generation - Issues with robusta gen-config
- • Phase 2: Helm Installation - Helm install/upgrade failures
- • Phase 3: Runtime Issues - Alerts not arriving, pods crashing
- • Phase 4: Integration Issues - Slack, Prometheus connection problems + • Phase 1: Helm Installation - Helm install/upgrade failures
+ • Phase 2: Runtime Issues - Alerts not arriving, pods crashing
+ • Phase 3: Integration Issues - Slack, Prometheus connection problems
-Phase 1: Configuration Generation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Issues when running ``robusta gen-config`` or generating initial configuration. - -.. details:: command not found: robusta (CLI not in path) - - 1. Determine where the Robusta-cli binary file is located - - .. code-block:: bash - :name: cb-find-python-cli-loc - - find / -regex '.*/bin/robusta' 2>/dev/null - - 2. Add the path you found (e.g ``/opt/homebrew/bin/``) to your PATH. To do so, find your shell config file ( ~/.profile or ~/.bash_profile or ~/.zshrc etc...) and append the following: - - .. code-block:: bash - :name: add-path-var - - export PATH="$PATH:" - - 3. Reopen the terminal or run: - - .. code-block:: bash - :name: cb-refresh-terminal - - source - - .. admonition:: Alternative Solution - - Instead of modifying PATH, run Robusta commands via the python3 binary: ``python3 -m robusta.cli.main gen-config`` - -.. details:: SSL certificate errors on Mac OS - - This implies a python package with certificates is missing on your system. - - To fix it, run ``/Applications/Python 3.9/Install Certificates.command`` - - For more info see: - https://stackoverflow.com/questions/52805115/certificate-verify-failed-unable-to-get-local-issuer-certificate - -Phase 2: Helm Installation +Phase 1: Helm Installation ^^^^^^^^^^^^^^^^^^^^^^^^^^ Problems when running ``helm install`` command or installing via GitOps. @@ -128,7 +86,7 @@ Problems when running ``helm install`` command or installing via GitOps. Follow this guide for :ref:`upgrading CRDs from an older version `. -Phase 3: Runtime Issues +Phase 2: Runtime Issues ^^^^^^^^^^^^^^^^^^^^^^^ Issues after installation when pods are running but not working correctly. @@ -252,7 +210,7 @@ Holmes See :ref:`Using Existing Secrets ` to configure Holmes to read the ``token`` -Phase 4: Integration Issues +Phase 3: Integration Issues ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Problems with external service integrations after Robusta is running. diff --git a/docs/index.rst b/docs/index.rst index 07725d344..5ff116658 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -43,7 +43,7 @@ .. toctree:: :maxdepth: 4 - :caption: Other Features + :caption: Robusta Classic :hidden: Send Alerts to Robusta diff --git a/docs/setup-robusta/installation/_generate_config.jinja b/docs/setup-robusta/installation/_generate_config.jinja deleted file mode 100644 index 496ed8705..000000000 --- a/docs/setup-robusta/installation/_generate_config.jinja +++ /dev/null @@ -1,66 +0,0 @@ -Generate a Config ------------------------------------ - -Robusta needs settings to work. For example, if you use Slack then Robusta needs a Slack API key. These settings are configured as Helm values. - -Choose a configuration method below: - -.. tab-set:: - - .. tab-item:: Web Installation (recommended) - :name: web-installation-tab - - Create the configuration by signing up `for a free Robusta UI account ↗ `_ - - .. details:: Why configure an Open Source project from a SaaS platform? - - You can use Robusta OSS without any SaaS components, however you'll need integrations like Slack or MS Teams if you want to see Robusta doing anything. - - The configuration for Slack can be difficult to generate on your own, so we provide a free UI to assist. - - You can use the UI to generate Helm values and then disable the UI, or you can use the free tier forever! We also have a paid tier with our most powerful AI agent included. - - .. tab-item:: pipx - :name: pip-cli-tab - - First install `pipx `_. - - Then use pipx to install and run the robusta cli: - - .. code-block:: bash - :name: cb-pip-install - - pipx run robusta-cli gen-config {{ gen_config_flags }} - - .. details:: pipx vs pip - - The ``robusta`` cli can also be installed with pip, but due to Python limitations, this can lead to dependency issues, as pip doesn't install packages in isolated environments. - - But if you prefer pip instead of pipx - install with ``pip install -U robusta-cli --no-cache`` and run with ``robusta gen-config {{ gen_config_flags }}`` - - * Python 3.7 or higher is required. - * Use ``pip3`` on systems with both Python 2 and Python 3. - * A ``command not found: robusta`` error means :ref:`Python's script directory is not in your PATH `. - - .. tab-item:: docker - :name: docker-cli-tab - - Use the ``robusta`` cli tool to generate the Helm values. Run it via the pre-built docker container. - - .. details:: Requirements and Troubleshooting - - A Docker daemon and bash are required. - - On Windows, use bash inside `WSL `_. - - .. code-block:: bash - :name: cb-docker-cli-download - - curl -fsSL -o robusta https://docs.robusta.dev/master/_static/robusta - chmod +x robusta - ./robusta gen-config {{ gen_config_flags }} - -You should now have a ``generated_values.yaml`` file with a Robusta config. **Save this file!** -You'll need it to install Robusta on new clusters. - -This file contains sensitive values. Refer to :ref:`Managing Secrets` for tips on protecting them. diff --git a/docs/setup-robusta/installation/_helm_install_with_prometheus.inc.rst b/docs/setup-robusta/installation/_helm_install_with_prometheus.inc.rst deleted file mode 100644 index 243896776..000000000 --- a/docs/setup-robusta/installation/_helm_install_with_prometheus.inc.rst +++ /dev/null @@ -1,109 +0,0 @@ -.. updated to .inc.rst because of "WARNING: duplicate label" - -Install with Helm ------------------------------- - -Copy the below commands, replacing the ```` placeholder. - -On some clusters this can take a while, so don't panic if it appears stuck: - -.. tab-set:: - - .. tab-item:: Normal Clusters - :name: install-standard - - .. code-block:: bash - :name: cb-helm-install-only-robusta - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= - - .. tab-item:: EKS - :name: install-eks - - To use all Robusta features, ensure storage is enabled on your cluster. If necessary, refer to the EKS documentation and install the `EBS CSI add-on `_ - - .. details:: How do I know if my cluster has storage enabled? - - Try installing Robusta. If storage is not configured, you'll receive an error: - - .. code-block:: - - PreBind plugin "VolumeBinding": binding volumes: timed out waiting for the condition - - Running ``kubectl get pvc -A`` will also show PersistentVolumeClaims in ``Pending`` state. - - In this case, follow the instructions above and enable storage for your cluster. - - .. code-block:: bash - :name: cb-helm-install-eks - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= - - .. tab-item:: GKE Autopilot - :name: install-gke-autopilot - - Due to Autopilot restrictions, some components are disabled. Don't worry, everything will still work. - - .. code-block:: bash - :name: cb-helm-install-gke-autopilot - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml \ - --set clusterName= \ - --set kube-prometheus-stack.coreDns.enabled=false \ - --set kube-prometheus-stack.kubeControllerManager.enabled=false \ - --set kube-prometheus-stack.kubeDns.enabled=false \ - --set kube-prometheus-stack.kubeEtcd.enabled=false \ - --set kube-prometheus-stack.kubeProxy.enabled=false \ - --set kube-prometheus-stack.kubeScheduler.enabled=false \ - --set kube-prometheus-stack.nodeExporter.enabled=false \ - --set kube-prometheus-stack.prometheusOperator.kubeletService.enabled=false - - .. tab-item:: OpenShift - :name: install-openshift - - First :ref:`modify the Helm values to enable OpenShift support`. - - Then install Robusta as usual with Helm: - - .. code-block:: bash - :name: cb-helm-install-openshift - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= - - .. tab-item:: Local/Test Cluster - :name: install-test-clusters - - Test clusters tend to have fewer resources. To lower Robusta's resource requests, set ``isSmallCluster=true``. - - .. code-block:: bash - :name: cb-helm-install-test-clusters - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= --set isSmallCluster=true \ - --set kube-prometheus-stack.prometheus.prometheusSpec.retentionSize=9GB \ - --set kube-prometheus-stack.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=10Gi \ - --set kube-prometheus-stack.prometheus.prometheusSpec.resources.requests.memory=512Mi - --set holmes.resources.requests.memory=512Mi - - .. note:: - If you are using docker desktop you will need to disable prometheus-node-exporter mounting host root, by adding the following to the above command: - - .. code-block:: bash - :name: disable host mount - - --set kube-prometheus-stack.prometheus-node-exporter.hostRootFsMount.enabled=false - -Verifying Installation ------------------------------- - -Confirm that Robusta pods are running with no errors in the logs: - -.. code-block:: bash - :name: cb-get-pods-robusta-logs - - kubectl get pods -A | grep robusta - robusta logs diff --git a/docs/setup-robusta/installation/all-in-one-installation.rst b/docs/setup-robusta/installation/all-in-one-installation.rst deleted file mode 100644 index 1a894b795..000000000 --- a/docs/setup-robusta/installation/all-in-one-installation.rst +++ /dev/null @@ -1,36 +0,0 @@ -:tocdepth: 2 - -.. _install-all-in-one: - -Install Robusta + Prometheus -#################################### -*Estimated time: 5 minutes* - -Setup Kubernetes monitoring from scratch. Install Robusta, Prometheus, and Grafana on Kubernetes using Helm. This is the recommended setup for users that are setting up Kubernetes monitoring from scratch. - -Prerequisites ---------------------- - -* A :ref:`supported Kubernetes cluster ` -* Helm - -.. jinja:: - :inline-ctx: { "gen_config_flags": "--enable-prometheus-stack" } - :header_update_levels: - :file: setup-robusta/installation/_generate_config.jinja - -Enable Prometheus Stack ------------------------------- - -Add the following to your ``generated_values.yaml`` file: - -.. code-block:: yaml - - enablePrometheusStack: true - -.. include:: ./_helm_install_with_prometheus.inc.rst - -Next Steps ---------------------------------- - -:doc:`Investigate your alerts with AI ` diff --git a/docs/setup-robusta/installation/dev-setup.rst b/docs/setup-robusta/installation/dev-setup.rst deleted file mode 100644 index cbc64879d..000000000 --- a/docs/setup-robusta/installation/dev-setup.rst +++ /dev/null @@ -1,110 +0,0 @@ -Build from Source -################################################### - -Install Robusta from source to develop new features for the Robusta Engine (robusta-runner). - -To install Robusta as a user, follow :ref:`install-all-in-one` instead. - -To develop new playbook actions, you don't need to install from source. Refer to :ref:`Developing New Actions`. - -Using Mirrord (Recommended) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Use `mirrord `_ to build and test Robusta on your local machine: - -1. :ref:`Install Robusta normally with Helm ` - -2. Clone Robusta's source code: ``git clone https://github.com/robusta-dev/robusta.git && cd robusta`` - -3. Run Robusta via mirrord ``./run_runner_locally.sh`` and follow the instructions in your terminal. - -Developing Playbooks Locally ---------------------------------- - -1. Run Robusta with mirrord, as described above - -2. Add a local playbooks directory to ``deployment/playbooks/active_playbooks.yaml``: - -.. code-block:: - - # this example shows how to locally develop https://github.com/robusta-dev/kubernetes-chatgpt-bot - playbook_repos: - chatgpt_robusta_actions: - url: "file:///path/to/kubernetes-chatgpt-bot" - -3. To apply changes to your playbook without restarting Robusta, simply run: ``touch deployment/playbooks/active_playbooks.yaml``. - -.. details:: Common Errors - - .. tab-set:: - - .. tab-item:: objc fork() Crash - - This error occurs on macOS devices with Apple Silicon. It's related to security restrictions on multi-threading involving fork() in Python. - - **Solution:** - - To resolve this issue, set the following environment variable in your project's environment variables: - - ``OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES`` - - **Setting the Environment Variable in IDEs:** - - - **PyCharm:** - - In PyCharm, go to 'Run' -> 'Edit Configurations', then find your project's configuration. Under 'Environment variables', add: ``OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES``. - - - **VSCode:** - - In VSCode, modify your `.vscode/launch.json` file by adding the following line to your configuration settings: ``"env": {"OBJC_DISABLE_INITIALIZE_FORK_SAFETY": "YES"}``. - - .. tab-item:: Pillow/libjpeg Errors - - Occurs on Mac OS if dependencies are missing. Run ``brew install libjpeg``. - - .. tab-item:: NotADirectoryError: [Errno 20] - - Sometimes, when attaching a debugger to Robusta the following error occurs: ``NotADirectoryError: [Errno 20] Not a directory`` - - If this occurs, disable the ``Attach to subprocess`` option on your debugger. - -Using Skaffold (Alternative to Using mirrord) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Instead of running Robusta locally with mirrord, you can test Robusta inside a Kubernetes cluster using Skaffold: - -1. ``git clone`` the source code. -2. Install `skaffold `_ and `helm `_ -3. Run ``helm repo add prometheus-community https://prometheus-community.github.io/helm-charts`` -4. Run ``robusta gen-config`` and copy the result to ``deployment/generated_values.yaml`` -5. Run ``skaffold run --tail``. On M1 Macs, add ``-p apple-m1-dev`` - -Alert Simulation -^^^^^^^^^^^^^^^^^^ - -To simulate a Prometheus alerts and cause relevant playbooks to run: - -.. code-block:: - - poetry run robusta demo-alert --alert=Test123 --labels=label1=123,label2=abc - -If running multiple times in a row, change a label value each time so that AlertManager doesn't supress retransmissions. - -CLI Development -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -To develop the ``robusta`` cli: - -1. ``git clone`` the source code -2. ``poetry install`` -3. ``poetry run robusta`` - -.. details:: Alternative method, using pip not poetry - - Install the ``robusta`` cli into your global python environment: - - 1. ``git clone`` the source code - 2. ``pip3 install .`` - -Running Tests -^^^^^^^^^^^^^^^^^^^^ -See ``tests/README.md`` diff --git a/docs/setup-robusta/installation/index.rst b/docs/setup-robusta/installation/index.rst index abb810893..9663cb1fd 100644 --- a/docs/setup-robusta/installation/index.rst +++ b/docs/setup-robusta/installation/index.rst @@ -1,33 +1,43 @@ -:hide-toc: - :hide-footer: +:tocdepth: 2 + .. _install: +.. _install-barebones: + +Install Robusta +================ + +Use Robusta's AI Agent alongside any observability stack — DataDog, NewRelic, Prometheus, SolarWinds, and more. + +Prerequisites +--------------------- + +* A :ref:`supported Kubernetes cluster ` +* Helm + +Generate a Config +----------------------------------- + +Robusta needs settings to work. For example, if you use Slack then Robusta needs a Slack API key. These settings are configured as Helm values. + +Sign up `for a free Robusta account ↗ `_ to generate the configuration. The signup wizard produces a ``generated_values.yaml`` file you'll use with Helm. + +.. details:: Why configure an Open Source project from a SaaS platform? -Installation Guides -==================== + You can use Robusta OSS without any SaaS components, however you'll need integrations like Slack or MS Teams if you want to see Robusta doing anything. -.. toctree:: - :maxdepth: 1 - :hidden: + The configuration for Slack can be difficult to generate on your own, so we provide a free UI to assist. - standalone-installation - all-in-one-installation - dev-setup + You can use the UI to generate Helm values and then disable the UI, or you can use the free tier forever! We also have a paid tier with our most powerful AI agent included. -.. grid:: 1 1 2 2 - :gutter: 2 +**Save this file!** You'll need it to install Robusta on new clusters. It contains sensitive values — refer to :ref:`Managing Secrets` for tips on protecting them. - .. grid-item-card:: Install Robusta - :class-card: sd-bg-text-light - :link: standalone-installation - :link-type: doc +.. include:: ./_helm_install_no_prometheus.inc.rst - Use Robusta's AI Agent alongside any observability stack - DataDog, NewRelic, Prometheus, SolarWinds, and more. - .. grid-item-card:: Install Robusta + Prometheus - :class-card: sd-bg-text-light - :link: all-in-one-installation - :link-type: doc +Next Steps +--------------------------------- - For brand new environments without existing observability. Five minute setup. Great default alerts. +1. :doc:`Send alerts to Robusta ` +2. :doc:`Investigate your alerts with AI ` diff --git a/docs/setup-robusta/installation/standalone-installation.rst b/docs/setup-robusta/installation/standalone-installation.rst deleted file mode 100644 index c2feb08ba..000000000 --- a/docs/setup-robusta/installation/standalone-installation.rst +++ /dev/null @@ -1,26 +0,0 @@ -:tocdepth: 2 - -.. _install-barebones: - -Install Robusta -############### - -Prerequisites ---------------------- - -* A :ref:`supported Kubernetes cluster ` -* Helm - -.. jinja:: - :inline-ctx: {"gen_config_flags": "--no-enable-prometheus-stack"} - :header_update_levels: - :file: setup-robusta/installation/_generate_config.jinja - -.. include:: ./_helm_install_no_prometheus.inc.rst - - -Next Steps ---------------------------------- - -1. :doc:`Send alerts to Robusta ` -2. :doc:`Investigate your alerts with AI ` \ No newline at end of file diff --git a/docs/setup-robusta/multi-cluster.rst b/docs/setup-robusta/multi-cluster.rst index 10d31c24c..a04bfdd1a 100644 --- a/docs/setup-robusta/multi-cluster.rst +++ b/docs/setup-robusta/multi-cluster.rst @@ -21,18 +21,11 @@ Installing Robusta on multiple clusters .. warning:: - Do **not** run ``robusta gen-config`` separately for each cluster. That will give each cluster a unique ``generated_values.yaml`` which you don't want! + Do **not** generate a fresh ``generated_values.yaml`` for each cluster. Each generated config has a unique account ID, and the Robusta UI groups all your clusters by that ID. Reuse the same ``generated_values.yaml`` across clusters so they appear together. Frequently Asked Questions ---------------------------- -Why not run ``robusta gen-config`` separately for each cluster? -****************************************************************** - -Each time you run ``robusta gen-config``, it creates a new account ID. The Robusta UI groups all your clusters by that ID. - -If you run ``robusta gen-config`` once per cluster, you wont be able to view all your clusters together. - Where is my ``generated_values.yaml``? ******************************************************* From e50fc00663a9b630ff4c3b200e156cf319e8d8bd Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 30 Apr 2026 06:29:31 +0000 Subject: [PATCH 02/32] docs: link manual Slack setup to Creating Custom Slack Apps section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses CodeRabbit review comment on PR #2059 — gives readers a direct pointer to the step-by-step manual setup section instead of leaving them to figure it out. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/configuration/sinks/slack.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration/sinks/slack.rst b/docs/configuration/sinks/slack.rst index bea855591..6cbbc2567 100644 --- a/docs/configuration/sinks/slack.rst +++ b/docs/configuration/sinks/slack.rst @@ -27,7 +27,7 @@ Note: Robusta can only write messages and doesn't require read permissions. **Option 2: Manual Configuration** -Generate a Slack API key on your own, then add it to your ``generated_values.yaml``: +Generate a Slack API key on your own (see :ref:`Creating Custom Slack Apps` below), then add it to your ``generated_values.yaml``: .. code-block:: yaml From 113e92c45d00990f6a38851cb124f1287104f6d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 30 Apr 2026 07:55:50 +0000 Subject: [PATCH 03/32] docs: refocus multi-cluster warning on clusterName MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous warning argued against generating a fresh generated_values.yaml per cluster — framing leftover from the CLI era. Replace it with the actionable instruction: set a unique clusterName on each cluster. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/multi-cluster.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup-robusta/multi-cluster.rst b/docs/setup-robusta/multi-cluster.rst index a04bfdd1a..6cbf20ec9 100644 --- a/docs/setup-robusta/multi-cluster.rst +++ b/docs/setup-robusta/multi-cluster.rst @@ -21,7 +21,7 @@ Installing Robusta on multiple clusters .. warning:: - Do **not** generate a fresh ``generated_values.yaml`` for each cluster. Each generated config has a unique account ID, and the Robusta UI groups all your clusters by that ID. Reuse the same ``generated_values.yaml`` across clusters so they appear together. + Set a unique ``clusterName`` on each cluster (via ``--set clusterName=``). The rest of ``generated_values.yaml`` stays the same across all clusters — that's how the Robusta UI groups them under the same account. Frequently Asked Questions ---------------------------- From c6ab7aa538c1c06c490d84ac5430500d78c5ff96 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 30 Apr 2026 07:57:35 +0000 Subject: [PATCH 04/32] docs: scope Classic-only sections, retitle large-cluster page - Manual Upgrade / kube-prometheus-stack CRDs: scope to old Robusta Classic installs with enablePrometheusStack=true; new installs don't need the CRD dance - Replace two robusta logs CLI references in upgrade.rst with kubectl logs - Rename "Monitoring Large Clusters" to "Deploying on Large Clusters" - Move Self-Monitoring page from Installation menu to Robusta Classic - Mark OpenShift debug-permissions section as Classic-only (the python/java/node_disk_analyzer playbooks aren't part of HolmesGPT) https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/index.rst | 1 + docs/setup-robusta/index.rst | 1 - docs/setup-robusta/openshift.rst | 6 +++++- docs/setup-robusta/tuning-performance.rst | 4 ++-- docs/setup-robusta/upgrade.rst | 17 ++++++++--------- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 5ff116658..129ba7727 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -53,6 +53,7 @@ Alert Routing CRDs Monitoring Playbooks + Self-Monitoring .. toctree:: :maxdepth: 4 diff --git a/docs/setup-robusta/index.rst b/docs/setup-robusta/index.rst index f5be5f44d..a30022da4 100644 --- a/docs/setup-robusta/index.rst +++ b/docs/setup-robusta/index.rst @@ -17,7 +17,6 @@ upgrade tuning-performance configuration-secrets - robusta-runner-metrics supported-clusters openshift node-selector diff --git a/docs/setup-robusta/openshift.rst b/docs/setup-robusta/openshift.rst index f479f3af9..d59abfb17 100644 --- a/docs/setup-robusta/openshift.rst +++ b/docs/setup-robusta/openshift.rst @@ -41,7 +41,11 @@ A test installation in OpenShift can use the existing SCC ``anyuid``. Optional: Giving Robusta extra debug permissions --------------------------------------------------------- -Some lesser used Robusta features require more permissions than the baseline SCC provides. +.. note:: + + This section only applies to Robusta Classic. The privileged SCC below is needed for a few Classic playbooks and is not relevant for HolmesGPT-based investigations. + +Some lesser used Robusta Classic features require more permissions than the baseline SCC provides. In order to support the ``python_debugger``, ``java_debugger`` and ``node_disk_analyzer`` playbooks, permission to run a far more privileged container needs to be granted to diff --git a/docs/setup-robusta/tuning-performance.rst b/docs/setup-robusta/tuning-performance.rst index 67fe87175..93dec12b7 100644 --- a/docs/setup-robusta/tuning-performance.rst +++ b/docs/setup-robusta/tuning-performance.rst @@ -1,5 +1,5 @@ -Monitoring Large Clusters -========================= +Deploying on Large Clusters +=========================== Memory Allocation on Big Clusters ---------------------------------- diff --git a/docs/setup-robusta/upgrade.rst b/docs/setup-robusta/upgrade.rst index d9d6a40e3..992d16fdb 100644 --- a/docs/setup-robusta/upgrade.rst +++ b/docs/setup-robusta/upgrade.rst @@ -8,10 +8,7 @@ On rare occasions, in addition to a ``helm upgrade``, some manual steps are requ Does my upgrade require manual steps? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -You will need to perform a :ref:`Manual Upgrade` when both: - -* Robusta's installation fails with a ``com.coreos.monitoring.v1.Prometheus.spec`` error. -* The embedded Prometheus is enabled (``enablePrometheusStack: true``) +A :ref:`Manual Upgrade` is only relevant for older Robusta Classic installs that bundled ``kube-prometheus-stack`` (``enablePrometheusStack: true``). You'll know you need it if ``helm upgrade`` fails with a ``com.coreos.monitoring.v1.Prometheus.spec`` error. In all other cases, you can do a :ref:`Simple Upgrade` and no more. @@ -45,19 +42,21 @@ Verify that Robusta is running and there are no errors in the logs: .. code-block:: bash - robusta logs + kubectl logs -n -l app=robusta-runner Manual Upgrade ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In addition to running ``helm upgrade``, some version updates require additional steps. +.. note:: + + This section only applies to older Robusta Classic installs that bundled ``kube-prometheus-stack`` (``enablePrometheusStack: true``). New installs do not need this. Why are manual upgrades necessary? ------------------------------------ -Robusta bundles kube-prometheus-stack, which uses `CRDs `_. -Helm can't update CRDs, so we update them ourselves. See the `Helm Documentation on CRDs `_ for details. +Older Robusta Classic versions bundled kube-prometheus-stack, which uses `CRDs `_. +Helm can't update CRDs, so we updated them manually. See the `Helm Documentation on CRDs `_ for details. Manual upgrade instructions ---------------------------------- @@ -97,7 +96,7 @@ Manual upgrade instructions .. code-block:: bash - robusta logs + kubectl logs -n -l app=robusta-runner Installing pre-releases ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From c5734343ae7e80bee3ae3616d6f5dc6d5162490f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 1 May 2026 00:16:13 +0000 Subject: [PATCH 05/32] docs: tighten welcome page intro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop the "open source AI agent that pulls evidence and uses LLMs" framing — generic and not differentiating now that AI agents are common. Lead with "SRE agent" instead. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 129ba7727..9854e9c4a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -65,7 +65,7 @@ Welcome to Robusta ==================== -Robusta is an AI-powered SRE agent that automatically investigates alerts and finds root causes. It is built on `HolmesGPT `_, an open source AI agent that pulls evidence from your existing `data sources `_ and uses LLMs to pinpoint what went wrong. +Robusta is an AI-powered SRE agent that automatically investigates alerts and finds root causes. It is built on `HolmesGPT `_. **How it works:** From c5443fff0ff2a3f3d2eef9ce83bffaf22a430edc Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 3 May 2026 08:44:59 +0000 Subject: [PATCH 06/32] docs: drop K8s-only framing and "open source AI agent" boilerplate Same edits applied to the welcome page now applied to architecture and oss-vs-saas: remove the "Kubernetes alerts" qualifier (Robusta investigates more than just K8s alerts) and trim the generic "open source AI agent that uses LLMs" framing now that AI agents are common knowledge. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/architecture.rst | 2 +- docs/how-it-works/oss-vs-saas.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/how-it-works/architecture.rst b/docs/how-it-works/architecture.rst index 03e19da6a..435071094 100644 --- a/docs/how-it-works/architecture.rst +++ b/docs/how-it-works/architecture.rst @@ -1,7 +1,7 @@ Architecture ================== -Robusta uses `HolmesGPT `_, an open source AI agent, to automatically investigate and root-cause Kubernetes alerts. HolmesGPT runs as part of the **in-cluster Agent**, connects to your existing **data sources**, and reports findings through the **Robusta Platform** (SaaS or self-hosted). +Robusta uses `HolmesGPT `_ to automatically investigate and root-cause alerts. HolmesGPT runs as part of the **in-cluster Agent**, connects to your existing **data sources**, and reports findings through the **Robusta Platform** (SaaS or self-hosted). .. image:: ../images/architecture-overview.png :width: 800 diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index 4b99e2e1e..32d78e8cf 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -4,9 +4,9 @@ Open Source vs SaaS HolmesGPT (Open Source) ^^^^^^^^^^^^^^^^^^^^^^^^ -At the core of Robusta is `HolmesGPT `_ — an open source, AI-powered agent that automatically investigates Kubernetes alerts and identifies root causes. +At the core of Robusta is `HolmesGPT `_ — an open source SRE agent that automatically investigates alerts and identifies root causes. -HolmesGPT pulls data from your cluster logs, events, metrics, and external data sources like Prometheus, Grafana, New Relic, and more. It uses LLMs to correlate evidence across sources and produce actionable root cause analysis — turning noisy alerts into clear answers. +HolmesGPT pulls evidence from your existing data sources — logs, events, metrics, and external tools like Prometheus, Grafana, and New Relic — to produce actionable root cause analysis. HolmesGPT is MIT-licensed and can be used standalone or as part of the Robusta platform. From d87a258dfaea30213820e7431749f7bf18297dee Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 3 May 2026 14:25:37 +0000 Subject: [PATCH 07/32] docs: mention MCP servers in welcome page data sources bullet https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 9854e9c4a..e3b4321f0 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -70,7 +70,7 @@ Robusta is an AI-powered SRE agent that automatically investigates alerts and fi **How it works:** * **Automatic investigation** — every alert is analyzed with AI-powered root cause analysis -* **Your data sources** — HolmesGPT connects to your existing monitoring, ITSM, and cloud tools to gather evidence +* **Your data sources** — HolmesGPT connects to your existing monitoring, ITSM, cloud tools, and MCP servers to gather evidence * **Chat with your agent** — tag HolmesGPT in Slack or Teams to investigate issues on demand * **Centralized control** — the `Robusta Platform `_ gives you a single place to manage your SRE agents, triage alerts, and review investigation timelines From b90c609373eccb1542130b6c3e0b0edd5061ee8b Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 3 May 2026 14:27:39 +0000 Subject: [PATCH 08/32] docs: reframe oss-vs-saas page as Deployment Options - Rename page title and sidebar links from "Open Source vs SaaS" to "Deployment Options" - Lead with SaaS and Self-Hosted (the paths most users will pick) instead of opening with the Open Source / HolmesGPT pitch - Move OSS HolmesGPT to a brief mention near the end pointing standalone users to holmesgpt.dev - Reorder welcome-page sentence so "SaaS" comes before "open source" Filename oss-vs-saas.rst kept to preserve URLs and existing redirects. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/index.rst | 6 ++--- docs/how-it-works/oss-vs-saas.rst | 37 +++++++++++++++++-------------- docs/index.rst | 2 +- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/docs/how-it-works/index.rst b/docs/how-it-works/index.rst index 5833d1ff9..3e2c069d2 100644 --- a/docs/how-it-works/index.rst +++ b/docs/how-it-works/index.rst @@ -13,16 +13,16 @@ Overview How Robusta's components work together — the Agent, HolmesGPT, data sources, and the Platform. - .. grid-item-card:: :octicon:`package;1em;` Open Source vs SaaS + .. grid-item-card:: :octicon:`package;1em;` Deployment Options :class-card: sd-bg-light sd-bg-text-light :link: oss-vs-saas :link-type: doc - Compare deployment options: open source HolmesGPT, SaaS, and self-hosted. + SaaS, self-hosted, or open source HolmesGPT. .. toctree:: :maxdepth: 1 :hidden: Architecture - Open Source vs SaaS + Deployment Options diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index 32d78e8cf..19a23b646 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -1,33 +1,36 @@ -Open Source vs SaaS +Deployment Options ################################ -HolmesGPT (Open Source) -^^^^^^^^^^^^^^^^^^^^^^^^ +Robusta is delivered through the **Robusta Platform** — a centralized place to control your SRE agents, triage alerts, and review investigation timelines. The Platform is available as **SaaS** (hosted by Robusta) or **Self-Hosted** (for organizations with dedicated infrastructure requirements). -At the core of Robusta is `HolmesGPT `_ — an open source SRE agent that automatically investigates alerts and identifies root causes. +SaaS (Hosted) +^^^^^^^^^^^^^^ -HolmesGPT pulls evidence from your existing data sources — logs, events, metrics, and external tools like Prometheus, Grafana, and New Relic — to produce actionable root cause analysis. +The hosted Platform runs in Robusta's infrastructure. You install the in-cluster Agent, sign up at `platform.robusta.dev `_, and your alerts and investigations stream into the hosted UI. -HolmesGPT is MIT-licensed and can be used standalone or as part of the Robusta platform. +- :doc:`Centralized alert management and triage <../configuration/exporting/robusta-pro-features>` +- Multi-cluster visibility and historical timelines +- HolmesGPT Slack and Teams bot +- No infrastructure to run for the Platform itself -Deployment Options -^^^^^^^^^^^^^^^^^^^ +Most teams use SaaS — it's the fastest path to the complete feature set. -- **Open Source Only**: Run HolmesGPT on its own. No web UI. CLI interface and HTTP API on OSS. -- **SaaS**: HolmesGPT + Robusta's hosted web UI with :doc:`additional features <../configuration/exporting/robusta-pro-features>` including centralized alert management, multi-cluster visibility, and historical timelines. -- **Self-Hosted**: HolmesGPT + on-premise web UI for organizations that require dedicated infrastructure (enterprise plans). +Self-Hosted +^^^^^^^^^^^^ -**Which should I choose?** +The same Platform, deployed inside your own infrastructure. Intended for organizations that require dedicated infrastructure (regulatory, data residency, or air-gapped requirements). -Most teams use the **SaaS** option for the complete feature set without infrastructure overhead. +Self-hosted deployments are available on enterprise plans — contact support@robusta.dev. Pricing ^^^^^^^^^^^^ -HolmesGPT is and always will be free. It is a CNCF sandbox project. -The Robusta Platform UI is `free to get started `_ on our SaaS. If you want to self-host the UI, you'll need an enterprise plan. +The SaaS Platform is `free to get started `_, with paid tiers for larger teams and advanced features. Self-hosted deployments require an enterprise plan. + +Open Source +^^^^^^^^^^^^ -Contact support@robusta.dev for questions. +`HolmesGPT `_ — the SRE agent at the core of Robusta — is MIT-licensed and a CNCF sandbox project. It can be used standalone via CLI or HTTP API, without the Platform UI. See `holmesgpt.dev `_ for standalone usage. Robusta Classic ^^^^^^^^^^^^^^^^ @@ -38,5 +41,5 @@ If you are running Robusta Classic, upgrading to HolmesGPT is a configuration ch Learn More ^^^^^^^^^^^^ -- `HolmesGPT on GitHub `_ - AI-powered root cause analysis for Kubernetes - `Pricing Plans `_ - Compare pricing options and start a free trial +- `HolmesGPT on GitHub `_ diff --git a/docs/index.rst b/docs/index.rst index e3b4321f0..e5f632de8 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -74,7 +74,7 @@ Robusta is an AI-powered SRE agent that automatically investigates alerts and fi * **Chat with your agent** — tag HolmesGPT in Slack or Teams to investigate issues on demand * **Centralized control** — the `Robusta Platform `_ gives you a single place to manage your SRE agents, triage alerts, and review investigation timelines -Robusta is available as **open source**, **SaaS**, or **self-hosted**. See :doc:`how-it-works/oss-vs-saas` for details. +Robusta is available as **SaaS**, **self-hosted**, or **open source**. See :doc:`how-it-works/oss-vs-saas` for details. Ready to get started? --------------------- From 5f3a88b2a90102fe7fa48d610520f92a55cc31ac Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 3 May 2026 15:05:25 +0000 Subject: [PATCH 09/32] docs: drop Classic-era feature bullets from SaaS section These bullets (centralized alert management, multi-cluster visibility, Slack/Teams bot, no infra) lean on Robusta Classic framing. Keep this detail under Classic-specific pages, not the main Deployment Options overview. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/oss-vs-saas.rst | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index 19a23b646..cf07988f4 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -8,11 +8,6 @@ SaaS (Hosted) The hosted Platform runs in Robusta's infrastructure. You install the in-cluster Agent, sign up at `platform.robusta.dev `_, and your alerts and investigations stream into the hosted UI. -- :doc:`Centralized alert management and triage <../configuration/exporting/robusta-pro-features>` -- Multi-cluster visibility and historical timelines -- HolmesGPT Slack and Teams bot -- No infrastructure to run for the Platform itself - Most teams use SaaS — it's the fastest path to the complete feature set. Self-Hosted From 7a0ef339e0e5c8998a426837aec7afb3634fed59 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 3 May 2026 15:06:54 +0000 Subject: [PATCH 10/32] docs: add OSS-vs-Platform comparison, drop Learn More section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reframe the Open Source section to clarify what HolmesGPT OSS is (CLI/HTTP API only) and what the Robusta Platform adds (web UI, Slack/Teams bots, automatic alert triage and grouping). Drop the trailing Learn More section — its links already appear elsewhere on the page. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/oss-vs-saas.rst | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index cf07988f4..39f6a75c2 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -25,7 +25,13 @@ The SaaS Platform is `free to get started `_, Open Source ^^^^^^^^^^^^ -`HolmesGPT `_ — the SRE agent at the core of Robusta — is MIT-licensed and a CNCF sandbox project. It can be used standalone via CLI or HTTP API, without the Platform UI. See `holmesgpt.dev `_ for standalone usage. +`HolmesGPT `_ — the SRE agent at the core of Robusta — is MIT-licensed and a CNCF sandbox project. Standalone HolmesGPT is CLI- and HTTP-API-only. See `holmesgpt.dev `_ for standalone usage. + +The Robusta Platform (SaaS or Self-Hosted) adds on top: + +- A web interface for alert triage and investigation history +- HolmesGPT bots for Slack and Microsoft Teams +- Automatic alert triage and grouping Robusta Classic ^^^^^^^^^^^^^^^^ @@ -33,8 +39,3 @@ Robusta Classic Before HolmesGPT, Robusta's open source engine focused on rule-based automation — enriching alerts with extra context (logs, pod status, resource graphs) and routing them to Slack, Teams, and other sinks using configurable playbooks. This is sometimes referred to as **Robusta Classic**. If you are running Robusta Classic, upgrading to HolmesGPT is a configuration change — no migration required. - -Learn More -^^^^^^^^^^^^ -- `Pricing Plans `_ - Compare pricing options and start a free trial -- `HolmesGPT on GitHub `_ From 4be856aebf7d596a54e44d5cd29245d39a51f4e9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 3 May 2026 15:41:20 +0000 Subject: [PATCH 11/32] docs: restructure OSS section as bullets, drop redundant link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make the OSS-vs-Platform comparison more scannable by giving each side its own bullet list (CLI/HTTP API on one side, web UI / bots / triage on the other). Remove the duplicate holmesgpt.dev link — the GitHub link earlier in the paragraph is enough. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/oss-vs-saas.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index 39f6a75c2..bb927e21d 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -25,7 +25,12 @@ The SaaS Platform is `free to get started `_, Open Source ^^^^^^^^^^^^ -`HolmesGPT `_ — the SRE agent at the core of Robusta — is MIT-licensed and a CNCF sandbox project. Standalone HolmesGPT is CLI- and HTTP-API-only. See `holmesgpt.dev `_ for standalone usage. +`HolmesGPT `_ — the SRE agent at the core of Robusta — is MIT-licensed and a CNCF sandbox project. + +Standalone HolmesGPT: + +- CLI only — no web UI +- HTTP API for programmatic access The Robusta Platform (SaaS or Self-Hosted) adds on top: From e92f958ab8c414c2bdb6c88b9120c695463f5ebe Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:33:49 +0000 Subject: [PATCH 12/32] docs: note SOC 2 compliance and SaaS regions https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/oss-vs-saas.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index bb927e21d..e8a84f1b4 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -8,6 +8,8 @@ SaaS (Hosted) The hosted Platform runs in Robusta's infrastructure. You install the in-cluster Agent, sign up at `platform.robusta.dev `_, and your alerts and investigations stream into the hosted UI. +The SaaS Platform is **SOC 2 compliant** and available in multiple regions, including the **US**, **EU**, and **Asia Pacific**. + Most teams use SaaS — it's the fastest path to the complete feature set. Self-Hosted From f700a64ebdf4ff89bc1b93b1038034e06694d56b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:34:32 +0000 Subject: [PATCH 13/32] docs: shorten web interface bullet, add background agents bullet https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/oss-vs-saas.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/how-it-works/oss-vs-saas.rst b/docs/how-it-works/oss-vs-saas.rst index e8a84f1b4..a7161b4db 100644 --- a/docs/how-it-works/oss-vs-saas.rst +++ b/docs/how-it-works/oss-vs-saas.rst @@ -36,9 +36,10 @@ Standalone HolmesGPT: The Robusta Platform (SaaS or Self-Hosted) adds on top: -- A web interface for alert triage and investigation history +- A web interface - HolmesGPT bots for Slack and Microsoft Teams - Automatic alert triage and grouping +- Background agents that proactively investigate and surface issues Robusta Classic ^^^^^^^^^^^^^^^^ From 6d7d4733c665690adcdd2770ebd4864159522d41 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:34:55 +0000 Subject: [PATCH 14/32] docs: tighten the Kubernetes change-tracking bullet in architecture https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/architecture.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/how-it-works/architecture.rst b/docs/how-it-works/architecture.rst index 435071094..14c914ea5 100644 --- a/docs/how-it-works/architecture.rst +++ b/docs/how-it-works/architecture.rst @@ -15,7 +15,7 @@ Agent (In-Cluster) The Robusta Agent runs inside your Kubernetes cluster. It includes HolmesGPT and is responsible for: - Fetching data from external `data sources `_ -- Optional: for customers troubleshooting issues on Kubernetes itself, track new deploys and changes to Kubernetes and query Kubernetes events +- Optional: tracking Kubernetes deploys, changes, and events for teams troubleshooting Kubernetes itself The Agent keeps your data secure — it fetches data from your data sources directly, so there is no direct connection from the Robusta Platform to your data sources. From 473f60143d3dab584be7a616a69149a5ec5d5fad Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:35:51 +0000 Subject: [PATCH 15/32] docs: drop Classic-era sinks bullet from Security & Networking The "data stays in cluster unless sent to sinks" bullet relates to Robusta Classic's notification routing, not the Holmes architecture. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/how-it-works/architecture.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/how-it-works/architecture.rst b/docs/how-it-works/architecture.rst index 14c914ea5..696535dc9 100644 --- a/docs/how-it-works/architecture.rst +++ b/docs/how-it-works/architecture.rst @@ -44,7 +44,6 @@ Security & Networking - The Agent runs entirely within your cluster with configurable RBAC permissions - Data sources are accessed only by the in-cluster Agent, never by the Platform - SaaS connectivity is outbound-only — no inbound access is required -- All data remains in your cluster unless explicitly sent to configured sinks or the Robusta Platform Next Steps ^^^^^^^^^^ From 89dc32fe6e738d2cc24d66306c7323378a168c07 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:36:19 +0000 Subject: [PATCH 16/32] docs: remove the OSS-vs-SaaS apologia from the install page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're not orienting docs around OSS anymore — the SaaS signup flow is the canonical install path, no need to defend it. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/installation/index.rst | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/setup-robusta/installation/index.rst b/docs/setup-robusta/installation/index.rst index 9663cb1fd..0cb8b14de 100644 --- a/docs/setup-robusta/installation/index.rst +++ b/docs/setup-robusta/installation/index.rst @@ -23,14 +23,6 @@ Robusta needs settings to work. For example, if you use Slack then Robusta needs Sign up `for a free Robusta account ↗ `_ to generate the configuration. The signup wizard produces a ``generated_values.yaml`` file you'll use with Helm. -.. details:: Why configure an Open Source project from a SaaS platform? - - You can use Robusta OSS without any SaaS components, however you'll need integrations like Slack or MS Teams if you want to see Robusta doing anything. - - The configuration for Slack can be difficult to generate on your own, so we provide a free UI to assist. - - You can use the UI to generate Helm values and then disable the UI, or you can use the free tier forever! We also have a paid tier with our most powerful AI agent included. - **Save this file!** You'll need it to install Robusta on new clusters. It contains sensitive values — refer to :ref:`Managing Secrets` for tips on protecting them. .. include:: ./_helm_install_no_prometheus.inc.rst From f22ec759620386cc0553b21c30a95371be44b12b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:37:05 +0000 Subject: [PATCH 17/32] docs: defer install steps to the platform wizard Strip Helm commands, per-cluster install tabs, verification steps, and Next Steps from the install page. The platform signup wizard now produces tailored install commands for each cluster, so the docs page just points users there. Delete the unused _helm_install_no_prometheus.inc.rst include. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- .../_helm_install_no_prometheus.inc.rst | 97 ------------------- docs/setup-robusta/installation/index.rst | 19 +--- 2 files changed, 5 insertions(+), 111 deletions(-) delete mode 100644 docs/setup-robusta/installation/_helm_install_no_prometheus.inc.rst diff --git a/docs/setup-robusta/installation/_helm_install_no_prometheus.inc.rst b/docs/setup-robusta/installation/_helm_install_no_prometheus.inc.rst deleted file mode 100644 index 9a7d20ab3..000000000 --- a/docs/setup-robusta/installation/_helm_install_no_prometheus.inc.rst +++ /dev/null @@ -1,97 +0,0 @@ -.. updated to .inc.rst because of "WARNING: duplicate label" - -Install with Helm ------------------------------- - -Copy the below commands, replacing the ```` placeholder. - -On some clusters this can take a while, so don't panic if it appears stuck: - -.. tab-set:: - - .. tab-item:: Normal Clusters - :name: install-standard - - .. code-block:: bash - :name: cb-helm-install-only-robusta - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= - - .. tab-item:: EKS - :name: install-eks - - To use all Robusta features, ensure storage is enabled on your cluster. If necessary, refer to the EKS documentation and install the `EBS CSI add-on `_ - - .. details:: How do I know if my cluster has storage enabled? - - Try installing Robusta. If storage is not configured, you'll receive an error: - - .. code-block:: - - PreBind plugin "VolumeBinding": binding volumes: timed out waiting for the condition - - Running ``kubectl get pvc -A`` will also show PersistentVolumeClaims in ``Pending`` state. - - In this case, follow the instructions above and enable storage for your cluster. - - .. code-block:: bash - :name: cb-helm-install-eks - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= - - .. tab-item:: GKE Autopilot - :name: install-gke-autopilot - - Due to Autopilot restrictions, some components are disabled. Don't worry, everything will still work. - - .. code-block:: bash - :name: cb-helm-install-gke-autopilot - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml \ - --set clusterName= \ - --set kube-prometheus-stack.coreDns.enabled=false \ - --set kube-prometheus-stack.kubeControllerManager.enabled=false \ - --set kube-prometheus-stack.kubeDns.enabled=false \ - --set kube-prometheus-stack.kubeEtcd.enabled=false \ - --set kube-prometheus-stack.kubeProxy.enabled=false \ - --set kube-prometheus-stack.kubeScheduler.enabled=false \ - --set kube-prometheus-stack.nodeExporter.enabled=false \ - --set kube-prometheus-stack.prometheusOperator.kubeletService.enabled=false - - .. tab-item:: OpenShift - :name: install-openshift - - First :ref:`modify the Helm values to enable OpenShift support`. - - Then install Robusta as usual with Helm: - - .. code-block:: bash - :name: cb-helm-install-openshift - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= - - .. tab-item:: Local/Test Cluster - :name: install-test-clusters - - Test clusters tend to have fewer resources. To lower Robusta's resource requests, set ``isSmallCluster=true``. - - .. code-block:: bash - :name: cb-helm-install-test-clusters - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm install robusta robusta/robusta -f ./generated_values.yaml --set clusterName= --set isSmallCluster=true --set holmes.resources.requests.memory=512Mi - -Verifying Installation ------------------------------- - -Confirm that Robusta pods are running with no errors in the logs: - -.. code-block:: bash - :name: cb-get-pods-robusta-logs - - kubectl get pods -A | grep robusta - robusta logs diff --git a/docs/setup-robusta/installation/index.rst b/docs/setup-robusta/installation/index.rst index 0cb8b14de..6f582dc3c 100644 --- a/docs/setup-robusta/installation/index.rst +++ b/docs/setup-robusta/installation/index.rst @@ -16,20 +16,11 @@ Prerequisites * A :ref:`supported Kubernetes cluster ` * Helm -Generate a Config ------------------------------------ - -Robusta needs settings to work. For example, if you use Slack then Robusta needs a Slack API key. These settings are configured as Helm values. - -Sign up `for a free Robusta account ↗ `_ to generate the configuration. The signup wizard produces a ``generated_values.yaml`` file you'll use with Helm. - -**Save this file!** You'll need it to install Robusta on new clusters. It contains sensitive values — refer to :ref:`Managing Secrets` for tips on protecting them. - -.. include:: ./_helm_install_no_prometheus.inc.rst +Sign Up and Install +--------------------- +Sign up `for a free Robusta account ↗ `_ and follow the install wizard. It generates a ``generated_values.yaml`` file and provides the Helm install commands tailored to your cluster. -Next Steps ---------------------------------- +.. note:: -1. :doc:`Send alerts to Robusta ` -2. :doc:`Investigate your alerts with AI ` + **Save your generated_values.yaml file** — you'll need it to install Robusta on new clusters or upgrade. It contains sensitive values; refer to :ref:`Managing Secrets` for tips on protecting them. From 3d5d966b3c53642c79186885105dd80e03a982b2 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 06:37:31 +0000 Subject: [PATCH 18/32] docs: drop slack_sink example from GitOps values The example generated_values.yaml in argocd.rst and flux.rst showed a slack_sink config alongside robusta_sink. Drop the slack_sink to keep the example focused on what's necessary for the GitOps install (robusta_sink + cluster knobs). https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/gitops/argocd.rst | 4 ---- docs/setup-robusta/gitops/flux.rst | 4 ---- 2 files changed, 8 deletions(-) diff --git a/docs/setup-robusta/gitops/argocd.rst b/docs/setup-robusta/gitops/argocd.rst index 3b69bc273..c2ad443a4 100644 --- a/docs/setup-robusta/gitops/argocd.rst +++ b/docs/setup-robusta/gitops/argocd.rst @@ -28,10 +28,6 @@ Example ``generated_values.yaml``: signing_key: xxxxxx account_id: xxxxxx sinksConfig: - - slack_sink: - name: main_slack_sink - slack_channel: robusta-staging-alerts - api_key: xxxxxx - robusta_sink: name: robusta_ui_sink token: xxxxxx diff --git a/docs/setup-robusta/gitops/flux.rst b/docs/setup-robusta/gitops/flux.rst index e42c3cb74..f53841687 100644 --- a/docs/setup-robusta/gitops/flux.rst +++ b/docs/setup-robusta/gitops/flux.rst @@ -29,10 +29,6 @@ Example ``generated_values.yaml``: signing_key: xxxxxx account_id: xxxxxx sinksConfig: - - slack_sink: - name: main_slack_sink - slack_channel: robusta-staging-alerts - api_key: xxxxxx - robusta_sink: name: robusta_ui_sink token: xxxxxx From 0df08e4ac7b3fe27ecaf31111d08cfb69dc2d23c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 09:09:15 +0000 Subject: [PATCH 19/32] docs: drop isSmallCluster line from GitOps example values https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/gitops/argocd.rst | 1 - docs/setup-robusta/gitops/flux.rst | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/setup-robusta/gitops/argocd.rst b/docs/setup-robusta/gitops/argocd.rst index c2ad443a4..6d2f477d9 100644 --- a/docs/setup-robusta/gitops/argocd.rst +++ b/docs/setup-robusta/gitops/argocd.rst @@ -23,7 +23,6 @@ Example ``generated_values.yaml``: .. code-block:: yaml clusterName: my_cluster_name # <- This is the line to be added - isSmallCluster: false # <- Optional. Set this on test clusters to lower Robusta's resource usage. globalConfig: signing_key: xxxxxx account_id: xxxxxx diff --git a/docs/setup-robusta/gitops/flux.rst b/docs/setup-robusta/gitops/flux.rst index f53841687..17b040272 100644 --- a/docs/setup-robusta/gitops/flux.rst +++ b/docs/setup-robusta/gitops/flux.rst @@ -24,7 +24,6 @@ Example ``generated_values.yaml``: .. code-block:: yaml clusterName: my_cluster_name # <- This is the line to be added - isSmallCluster: false # <- Optional. Set this on test clusters to lower Robusta's resource usage. globalConfig: signing_key: xxxxxx account_id: xxxxxx From 56265de534f43bbf4d2d60a4b27b3d687a88929e Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 09:10:07 +0000 Subject: [PATCH 20/32] docs: drop Configuring Argo Links section from ArgoCD page https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/gitops/argocd.rst | 43 ---------------------------- 1 file changed, 43 deletions(-) diff --git a/docs/setup-robusta/gitops/argocd.rst b/docs/setup-robusta/gitops/argocd.rst index 6d2f477d9..5f25d8bf4 100644 --- a/docs/setup-robusta/gitops/argocd.rst +++ b/docs/setup-robusta/gitops/argocd.rst @@ -152,46 +152,3 @@ Then create an Argo Application which references that values file: - repoURL: "git@github.com:my-user/example-repo.git" targetRevision: HEAD ref: values - - -Configuring Argo Links ------------------------------------------ - -For faster Kubernetes troubleshooting, add Robusta links to ArgoCD. - -.. image:: /images/argocd_external_urls.png - -Add an annotation to each Kubernetes resource with Robusta's URL: - -.. code-block:: - - apiVersion: apps/v1 - kind: Deployment - metadata: - name: my-deployment - annotations: - link.argocd.argoproj.io/external-link: "https://platform.robusta.dev/" - -Or link applications to their specific Robusta pages: - -.. code-block:: - - apiVersion: apps/v1 - kind: Deployment #workload type - metadata: - name: my-deployment #workload name - annotations: - link.argocd.argoproj.io/external-link: "https://platform.robusta.dev/?namespace=%22default%22&type=%22Deployment%22&name=%22some-deployment%22&cluster=%22robusta-cluster-name%22" - -.. details:: What is the right Robusta URL for each application? - - It's easiest to open the workload in RobustaUI and copy the URL from the browser. - - You can also build the URL by hand. Edit the above URL, replacing: - - * ``default`` with the workload's namespace - * ``Deployment`` with the workload type. Ex: ``StatefulSets`` - * ``some-deployment`` with the workload's name. Ex: ``my-deployment`` - * ``robusta-cluster-name`` with your cluster's name, as defined in the Robusta Helm value ``clusterName`` - -For more details, refer to the `Argo Documentation on External URLs. `_ From fb5fdfef7678aaa313e21e68a34c3b6465239d65 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 09:11:13 +0000 Subject: [PATCH 21/32] docs: remove Supported Clusters page Robusta runs on any Kubernetes distribution; the dedicated page added little beyond the list. Drop the file, remove it from the toctree, relax the install-page prerequisite to "A Kubernetes cluster", and add a redirect for the old URL. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/conf.py | 1 + docs/setup-robusta/index.rst | 1 - docs/setup-robusta/installation/index.rst | 2 +- docs/setup-robusta/supported-clusters.rst | 22 ---------------------- 4 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 docs/setup-robusta/supported-clusters.rst diff --git a/docs/conf.py b/docs/conf.py index ec2f69437..34479d70d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -75,6 +75,7 @@ "setup-robusta/installation/all-in-one-installation.html": "/master/setup-robusta/installation/index.html", "setup-robusta/installation/standalone-installation.html": "/master/setup-robusta/installation/index.html", "setup-robusta/installation/dev-setup.html": "/master/help.html", + "setup-robusta/supported-clusters.html": "/master/setup-robusta/installation/index.html", "tutorials/java-troubleshooting.html": "/master/tutorials/application-troubleshooting-java.html", "catalog/sinks/index.html": "/master/configuration/sinks/index.html", "tutorials/prometheus-enrichment.html": "/master/tutorials/alert-custom-enrichment.html", diff --git a/docs/setup-robusta/index.rst b/docs/setup-robusta/index.rst index a30022da4..c348b9a49 100644 --- a/docs/setup-robusta/index.rst +++ b/docs/setup-robusta/index.rst @@ -17,7 +17,6 @@ upgrade tuning-performance configuration-secrets - supported-clusters openshift node-selector proxies diff --git a/docs/setup-robusta/installation/index.rst b/docs/setup-robusta/installation/index.rst index 6f582dc3c..10ef78996 100644 --- a/docs/setup-robusta/installation/index.rst +++ b/docs/setup-robusta/installation/index.rst @@ -13,7 +13,7 @@ Use Robusta's AI Agent alongside any observability stack — DataDog, NewRelic, Prerequisites --------------------- -* A :ref:`supported Kubernetes cluster ` +* A Kubernetes cluster * Helm Sign Up and Install diff --git a/docs/setup-robusta/supported-clusters.rst b/docs/setup-robusta/supported-clusters.rst deleted file mode 100644 index a955824d8..000000000 --- a/docs/setup-robusta/supported-clusters.rst +++ /dev/null @@ -1,22 +0,0 @@ -Supported Clusters -################################ - -Robusta supports all Kubernetes distributions other than Minikube, including: - -* EKS -* GKE -* AKS -* Civo Cloud -* Digital Ocean -* KIND -* RKE -* :ref:`Openshift ` - -Minikube -========== -We don't recommend installing Robusta on Minikube, due to a Minikube bug. For more details, refer to `this GitHub issue `_. - -Instead, we recommend testing Robusta with KIND. - - -.. TODO add details here about silencing for specific providers From 2fd7b1e5a4367e311ed04042c19df72caf8cbddd Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 09:13:23 +0000 Subject: [PATCH 22/32] docs: relocate Censoring section, trim FAQ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move "Censoring Sensitive Data" from privacy-and-security.rst to playbook-reference/builtin-alert-enrichment.rst — censoring relies on Classic playbook actions (logs_enricher, report_crash_loop) and fits under the Robusta Classic / Playbooks menu - Drop FAQ entries: - "Can I install Robusta without the cli?" — CLI is no longer the canonical install path - "Does Robusta support Thanos/Cortex/Mimir/VictoriaMetrics?" — answer was a single sentence pointing back to docs - Stale "robusta cli --namespace" warning under the namespace FAQ https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- .../builtin-alert-enrichment.rst | 59 +++++++++++++++++++ docs/setup-robusta/installation-faq.rst | 25 -------- docs/setup-robusta/privacy-and-security.rst | 59 ------------------- 3 files changed, 59 insertions(+), 84 deletions(-) diff --git a/docs/playbook-reference/builtin-alert-enrichment.rst b/docs/playbook-reference/builtin-alert-enrichment.rst index 46c9729f7..c0f6956dc 100644 --- a/docs/playbook-reference/builtin-alert-enrichment.rst +++ b/docs/playbook-reference/builtin-alert-enrichment.rst @@ -58,3 +58,62 @@ Get started with these examples: prometheus-examples/bash-alert-enrichment prometheus-examples/link-alert-enrichment + +Censoring Sensitive Data +************************* + +Pod logs gathered by Robusta can be censored using `Python regular expressions `_. For example, a payment processing pod might have credit card numbers or other sensitive information in its logs. These can be automatically sanitized before they appear in notifications. + +How to Enable Log Censoring for All Logs +----------------------------------------- + +To censor sensitive information in all logs, add the following to your Helm values file: + +.. code-block:: yaml + + globalConfig: + regex_replacement_style: SAME_LENGTH_ASTERISKS # Alternative: NAMED + regex_replacer_patterns: + - name: CreditCard + regex: "[0-9]{4}[- ][0-9]{4}[- ][0-9]{4}[- ][0-9]{4}" + - name: Email + regex: "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}" + - name: UUID + regex: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + +After adding these values, perform a Helm upgrade: + +.. code-block:: bash + + helm upgrade robusta robusta/robusta -f values.yaml + +Example: Before and After Censoring +------------------------------------ + +Given the following pod log: + +.. code-block:: + + # Original pod log: + 2022-07-28 08:24:45.283 INFO user's uuid: '193836d9-9cce-4df9-a454-c2edcf2e80e5' + 2022-07-28 08:35:00.762 INFO Customer email: user@example.com + 2022-07-28 08:35:01.090 INFO Payment processed with card: 4111-1111-1111-1111 + +The censored output will appear as: + +.. code-block:: + + # Using SAME_LENGTH_ASTERISKS style: + 2022-07-28 08:24:45.283 INFO user's uuid: '************************************' + 2022-07-28 08:35:00.762 INFO Customer email: **************** + 2022-07-28 08:35:01.090 INFO Payment processed with card: ******************* + + # Using NAMED style: + 2022-07-28 08:24:45.283 INFO user's uuid: '[UUID]' + 2022-07-28 08:35:00.762 INFO Customer email: [Email] + 2022-07-28 08:35:01.090 INFO Payment processed with card: [CreditCard] + +**Note:** This censoring applies to logs displayed in Robusta's built-in notifications, including those shown by the following Robusta actions: + +- :code:`logs_enricher` - Shows container logs in various alerts +- :code:`report_crash_loop` - Shows container logs for crashing pods diff --git a/docs/setup-robusta/installation-faq.rst b/docs/setup-robusta/installation-faq.rst index ef63a248d..18428cf3f 100644 --- a/docs/setup-robusta/installation-faq.rst +++ b/docs/setup-robusta/installation-faq.rst @@ -5,22 +5,6 @@ I have an error installing Robusta ================================================ Please refer to :ref:`Help ` for common errors and solutions. -Can I install Robusta without the cli? -======================================== -Yes, using the cli is optional. It auto-generates helm values, but you can also handwrite them: - -1. Fetch Robusta's default **Helm values**: - -.. code-block:: bash - :name: cb-helm-repo-add-show-values - - helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update - helm show values robusta/robusta - -2. Modify those values to your heart's content. Refer to the :doc:`Send Alerts ` documentation for details. - -3. Do a ``helm install``. - The helm chart in GitHub doesn't work. Why? ======================================================== It has certain placeholders. For example, ``runner.image`` is set during our release workflow. @@ -45,12 +29,3 @@ Verify success by checking that Robusta pods are running: :name: cb-get-pods-robusta-logs-custom kubectl get pods -n robusta - -.. warning:: - - Make sure you add the ``--namespace`` flag to future ``robusta`` cli commands. - -Does Robusta support Thanos/Cortex/Mimir/VictoriaMetrics? -============================================================ -Any Prometheus-compatible solution is fine. Just follow instructions in the :doc:`Send Alerts ` documentation. - diff --git a/docs/setup-robusta/privacy-and-security.rst b/docs/setup-robusta/privacy-and-security.rst index ac1799774..1d2cdd400 100644 --- a/docs/setup-robusta/privacy-and-security.rst +++ b/docs/setup-robusta/privacy-and-security.rst @@ -39,65 +39,6 @@ Handling Secrets in Robusta's Helm Values ****************************************** Refer to :ref:`Managing Secrets`. -Censoring Sensitive Data -************************* - -Pod logs gathered by Robusta can be censored using `Python regular expressions `_. For example, a payment processing pod might have credit card numbers or other sensitive information in its logs. These can be automatically sanitized before they appear in notifications. - -How to Enable Log Censoring for All Logs ------------------------------------------ - -To censor sensitive information in all logs, add the following to your Helm values file: - -.. code-block:: yaml - - globalConfig: - regex_replacement_style: SAME_LENGTH_ASTERISKS # Alternative: NAMED - regex_replacer_patterns: - - name: CreditCard - regex: "[0-9]{4}[- ][0-9]{4}[- ][0-9]{4}[- ][0-9]{4}" - - name: Email - regex: "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}" - - name: UUID - regex: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" - -After adding these values, perform a Helm upgrade: - -.. code-block:: bash - - helm upgrade robusta robusta/robusta -f values.yaml - -Example: Before and After Censoring ------------------------------------- - -Given the following pod log: - -.. code-block:: - - # Original pod log: - 2022-07-28 08:24:45.283 INFO user's uuid: '193836d9-9cce-4df9-a454-c2edcf2e80e5' - 2022-07-28 08:35:00.762 INFO Customer email: user@example.com - 2022-07-28 08:35:01.090 INFO Payment processed with card: 4111-1111-1111-1111 - -The censored output will appear as: - -.. code-block:: - - # Using SAME_LENGTH_ASTERISKS style: - 2022-07-28 08:24:45.283 INFO user's uuid: '************************************' - 2022-07-28 08:35:00.762 INFO Customer email: **************** - 2022-07-28 08:35:01.090 INFO Payment processed with card: ******************* - - # Using NAMED style: - 2022-07-28 08:24:45.283 INFO user's uuid: '[UUID]' - 2022-07-28 08:35:00.762 INFO Customer email: [Email] - 2022-07-28 08:35:01.090 INFO Payment processed with card: [CreditCard] - -**Note:** This censoring applies to logs displayed in Robusta's built-in notifications, including those shown by the following Robusta actions: - -- :code:`logs_enricher` - Shows container logs in various alerts -- :code:`report_crash_loop` - Shows container logs for crashing pods - Limiting Robusta's Access in Your Cluster ******************************************* From 34c833aa9b41e149bbd04d2e134341f3f5753bd6 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:12:55 +0000 Subject: [PATCH 23/32] =?UTF-8?q?docs:=20drop=20monitorHelmReleases=20bull?= =?UTF-8?q?et=20=E2=80=94=20default=20is=20now=20false?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bullet told users to set monitorHelmReleases: false to reduce permissions. Since the default has changed to false, the guidance is no longer needed. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/privacy-and-security.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/setup-robusta/privacy-and-security.rst b/docs/setup-robusta/privacy-and-security.rst index 1d2cdd400..cb2df47db 100644 --- a/docs/setup-robusta/privacy-and-security.rst +++ b/docs/setup-robusta/privacy-and-security.rst @@ -44,7 +44,6 @@ Limiting Robusta's Access in Your Cluster To reduce the permissions that Robusta needs in your cluster: -1. Set ``monitorHelmReleases: false`` in Robusta's Helm values file. (Monitoring helm releases is an optional feature that requires granting Robusta access to K8s secrets containing helm metadata.) -2. On OpenShift you can deploy Robusta with a limited SCC - refer to :ref:`OpenShift` +- On OpenShift you can deploy Robusta with a limited SCC - refer to :ref:`OpenShift` To further limit Robusta's permissions, :ref:`speak to our team for guidance `. From 815be9e74d141d77b01333e695b9120a222f50c9 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:15:14 +0000 Subject: [PATCH 24/32] docs: move Using Existing Secrets to Managing Secrets, drop SRE Agent menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Using Existing Secrets section (HolmesGPT reading the Robusta UI token from a Kubernetes secret) belongs alongside the rest of the secrets handling guidance. Move it to configuration-secrets.rst and preserve the inbound anchor reference. Drop the SRE Agent toctree caption from the welcome page — the entire docs site is about the SRE agent now, no need to carve out a separate menu for it. The underlying pages (main-features, getting-started, holmesgpt-docs) remain accessible via existing inbound links. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- .../configuration/holmesgpt/getting-started.rst | 17 ----------------- docs/index.rst | 9 --------- docs/setup-robusta/configuration-secrets.rst | 17 +++++++++++++++++ 3 files changed, 17 insertions(+), 26 deletions(-) diff --git a/docs/configuration/holmesgpt/getting-started.rst b/docs/configuration/holmesgpt/getting-started.rst index 40332545c..bd8f8b3d4 100644 --- a/docs/configuration/holmesgpt/getting-started.rst +++ b/docs/configuration/holmesgpt/getting-started.rst @@ -47,23 +47,6 @@ Using Your Own AI Provider Instead of Robusta AI, you can bring your own LLM provider (OpenAI, Azure, AWS Bedrock, Anthropic, and more). See the `AI Providers documentation `_ for setup instructions. -.. _Reading the Robusta UI Token from a secret in HolmesGPT: - -Using Existing Secrets ----------------------- - -If you store the Robusta UI token in a Kubernetes secret (instead of directly in Helm values), you need to pass it to HolmesGPT: - -.. code-block:: yaml - - holmes: - additionalEnvVars: - - name: ROBUSTA_UI_TOKEN - valueFrom: - secretKeyRef: - name: my-robusta-secrets # Your existing secret - key: ui-token # Your existing key - Next Steps ---------- diff --git a/docs/index.rst b/docs/index.rst index e5f632de8..3068ef7c1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,15 +16,6 @@ setup-robusta/index -.. toctree:: - :maxdepth: 4 - :caption: SRE Agent - :hidden: - - configuration/holmesgpt/main-features - configuration/holmesgpt/getting-started - HolmesGPT Docs - .. toctree:: :maxdepth: 4 :caption: HTTP APIs diff --git a/docs/setup-robusta/configuration-secrets.rst b/docs/setup-robusta/configuration-secrets.rst index 755e14940..1985f89c8 100644 --- a/docs/setup-robusta/configuration-secrets.rst +++ b/docs/setup-robusta/configuration-secrets.rst @@ -63,3 +63,20 @@ You can now reference the environment variable elsewhere in your configuration u grafana_url: http://grafana.namespace.svc This setup keeps sensitive values out of your Helm files and version control, while still allowing them to be dynamically injected at runtime. + +.. _Reading the Robusta UI Token from a secret in HolmesGPT: + +Using an Existing Secret for the Robusta UI Token +-------------------------------------------------------- + +If you store the Robusta UI token in a Kubernetes secret (instead of directly in Helm values), you need to pass it to HolmesGPT: + +.. code-block:: yaml + + holmes: + additionalEnvVars: + - name: ROBUSTA_UI_TOKEN + valueFrom: + secretKeyRef: + name: my-robusta-secrets # Your existing secret + key: ui-token # Your existing key From 1cc87addbb7b16681b2f39e0cdff0d85f8303a17 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:17:40 +0000 Subject: [PATCH 25/32] docs: delete SRE Agent stub pages, redirect to holmesgpt.dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SRE Agent menu was already dropped from the welcome page nav. Now delete the three underlying pages — main-features (a stub), getting-started (Quick Setup is now wizard-driven), and the holmesgpt-docs redirect-stub — and point inbound references at holmesgpt.dev or platform.robusta.dev. - Update conf.py redirects: main-features.html, getting-started.html, holmesgpt-docs.html, plus the existing ai-analysis.html and holmesgpt/index.html — all now go to holmesgpt.dev - Update inbound refs in metric-providers-external.rst, builtin-alert-enrichment.rst, and playbook-reference/index.rst to external links instead of internal :doc: references https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/conf.py | 7 ++- .../holmesgpt/getting-started.rst | 53 ------------------- .../holmesgpt/holmesgpt-docs.rst | 6 --- .../configuration/holmesgpt/main-features.rst | 17 ------ .../metric-providers-external.rst | 2 +- .../builtin-alert-enrichment.rst | 2 +- docs/playbook-reference/index.rst | 2 +- 7 files changed, 8 insertions(+), 81 deletions(-) delete mode 100644 docs/configuration/holmesgpt/getting-started.rst delete mode 100644 docs/configuration/holmesgpt/holmesgpt-docs.rst delete mode 100644 docs/configuration/holmesgpt/main-features.rst diff --git a/docs/conf.py b/docs/conf.py index 34479d70d..781aebd18 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -134,8 +134,11 @@ "tutorials/alert-custom-prometheus.html": "/master/configuration/alertmanager-integration/alert-custom-prometheus.html", "catalog/triggers/prometheus.html": "/master/configuration/alertmanager-integration/index.html", "playbook-reference/prometheus-examples/alert-remediation.html": "/master/playbook-reference/automatic-remediation-examples/index.html", - "configuration/ai-analysis.html": "/master/configuration/holmesgpt/main-features.html", - "configuration/holmesgpt/index.html": "/master/configuration/holmesgpt/main-features.html", + "configuration/ai-analysis.html": "https://holmesgpt.dev/", + "configuration/holmesgpt/index.html": "https://holmesgpt.dev/", + "configuration/holmesgpt/main-features.html": "https://holmesgpt.dev/", + "configuration/holmesgpt/getting-started.html": "https://holmesgpt.dev/installation/?tab=robusta-helm-chart", + "configuration/holmesgpt/holmesgpt-docs.html": "https://holmesgpt.dev/", # AI Analysis pages redirects to holmesgpt.dev (docs have moved there) "configuration/holmesgpt/builtin_toolsets.html": "https://holmesgpt.dev/data-sources/builtin-toolsets/?tab=robusta-helm-chart", "configuration/holmesgpt/permissions.html": "https://holmesgpt.dev/data-sources/permissions/?tab=robusta-helm-chart", diff --git a/docs/configuration/holmesgpt/getting-started.rst b/docs/configuration/holmesgpt/getting-started.rst deleted file mode 100644 index bd8f8b3d4..000000000 --- a/docs/configuration/holmesgpt/getting-started.rst +++ /dev/null @@ -1,53 +0,0 @@ -Getting Started -=============== - -Set up AI-powered alert analysis in 5 minutes. - -Prerequisites -------------- - -.. raw:: html - -
- ✓ Robusta SaaS account (free or paid)
- ✓ Robusta version 0.22.0 or higher -
- -Quick Setup (Recommended) --------------------------- - -Use Robusta's hosted AI service with frontier models from Anthropic, OpenAI, and more: - -1. **Add to your Helm values:** - - .. code-block:: yaml - - enableHolmesGPT: true - holmes: - additionalEnvVars: - - name: ROBUSTA_AI - value: "true" - -2. **Apply the changes:** - - .. code-block:: bash - - helm upgrade robusta robusta/robusta -f generated_values.yaml - -3. **Enable Slack integration** (optional): - - - Go to `platform.robusta.dev `_ - - Navigate to **Settings** → **AI Assistant** - - Toggle "Enable Holmes" and connect your Slack workspace - -That's it! HolmesGPT will now analyze your alerts automatically. - -Using Your Own AI Provider ---------------------------- - -Instead of Robusta AI, you can bring your own LLM provider (OpenAI, Azure, AWS Bedrock, Anthropic, and more). See the `AI Providers documentation `_ for setup instructions. - -Next Steps ----------- - -* `Configure Data Sources `_ - Add more context for better analysis \ No newline at end of file diff --git a/docs/configuration/holmesgpt/holmesgpt-docs.rst b/docs/configuration/holmesgpt/holmesgpt-docs.rst deleted file mode 100644 index d854d8ff1..000000000 --- a/docs/configuration/holmesgpt/holmesgpt-docs.rst +++ /dev/null @@ -1,6 +0,0 @@ -HolmesGPT Documentation -======================== - -For comprehensive HolmesGPT documentation, please visit the official HolmesGPT documentation site at `holmesgpt.dev `_. - -For Robusta-specific setup instructions, see :doc:`getting-started`. \ No newline at end of file diff --git a/docs/configuration/holmesgpt/main-features.rst b/docs/configuration/holmesgpt/main-features.rst deleted file mode 100644 index d25c42536..000000000 --- a/docs/configuration/holmesgpt/main-features.rst +++ /dev/null @@ -1,17 +0,0 @@ -Main Features -============= - -Robusta integrates `HolmesGPT `_ to provide AI-powered root cause analysis for Kubernetes alerts and issues. - -See HolmesGPT in Action ------------------------ - -See demos and up-to-date videos on the `Robusta homepage `_. - -Next Steps ----------- - -* `Sign up for Robusta `_ - Get started with the full platform -* :doc:`getting-started` - Set up HolmesGPT in 5 minutes -* `Available Data Sources `_ - See all supported integrations -* `Helm Configuration Reference `_ - Advanced HolmesGPT settings for Robusta deployments \ No newline at end of file diff --git a/docs/configuration/metric-providers-external.rst b/docs/configuration/metric-providers-external.rst index f7fc5fa9c..334224961 100644 --- a/docs/configuration/metric-providers-external.rst +++ b/docs/configuration/metric-providers-external.rst @@ -185,5 +185,5 @@ Next Steps ---------- - Configure :doc:`alert routing
` -- Set up :doc:`AI-powered insights ` +- `Set up AI-powered insights `_ - Learn about :doc:`common configuration options ` \ No newline at end of file diff --git a/docs/playbook-reference/builtin-alert-enrichment.rst b/docs/playbook-reference/builtin-alert-enrichment.rst index c0f6956dc..415169978 100644 --- a/docs/playbook-reference/builtin-alert-enrichment.rst +++ b/docs/playbook-reference/builtin-alert-enrichment.rst @@ -7,7 +7,7 @@ Ever feel overwhelmed by alerts that lack context? Robusta enriches alerts autom .. note:: - **Looking for automatic AI enrichment?** Check out :doc:`HolmesGPT ` for zero-configuration AI-powered alert enrichment that automatically investigates alerts and provides root cause analysis. + **Looking for automatic AI enrichment?** Check out `HolmesGPT `_ for zero-configuration AI-powered alert enrichment that automatically investigates alerts and provides root cause analysis. Builtin Alert Enrichment ********************************* diff --git a/docs/playbook-reference/index.rst b/docs/playbook-reference/index.rst index 373dbbb90..c71db435d 100644 --- a/docs/playbook-reference/index.rst +++ b/docs/playbook-reference/index.rst @@ -18,7 +18,7 @@ Playbooks Basics Playbooks are deterministic rules for responding to alerts and unhealthy conditions in a Kubernetes cluster. -Playbooks are recommended for advanced use cases. Most users should start with :doc:`SRE Agent ` of alerts first, which requires far less configuration. +Playbooks are recommended for advanced use cases. Most users should start with the `Robusta SRE Agent `_, which requires far less configuration. How Playbooks Work ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From 920e947e8666f7b7d8b37a437bacb058c3c68195 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:20:07 +0000 Subject: [PATCH 26/32] docs: redirect deleted SRE Agent pages to robusta.dev Update the redirects added in the prior commit to point at robusta.dev (the marketing site) rather than holmesgpt.dev. Same for the alert-enrichment "Looking for automatic AI enrichment" inline link. (Pre-existing toolset redirects to holmesgpt.dev are left alone since they target real toolset pages on that site.) https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/conf.py | 10 +++++----- docs/playbook-reference/builtin-alert-enrichment.rst | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 781aebd18..c77090951 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -134,11 +134,11 @@ "tutorials/alert-custom-prometheus.html": "/master/configuration/alertmanager-integration/alert-custom-prometheus.html", "catalog/triggers/prometheus.html": "/master/configuration/alertmanager-integration/index.html", "playbook-reference/prometheus-examples/alert-remediation.html": "/master/playbook-reference/automatic-remediation-examples/index.html", - "configuration/ai-analysis.html": "https://holmesgpt.dev/", - "configuration/holmesgpt/index.html": "https://holmesgpt.dev/", - "configuration/holmesgpt/main-features.html": "https://holmesgpt.dev/", - "configuration/holmesgpt/getting-started.html": "https://holmesgpt.dev/installation/?tab=robusta-helm-chart", - "configuration/holmesgpt/holmesgpt-docs.html": "https://holmesgpt.dev/", + "configuration/ai-analysis.html": "https://robusta.dev/", + "configuration/holmesgpt/index.html": "https://robusta.dev/", + "configuration/holmesgpt/main-features.html": "https://robusta.dev/", + "configuration/holmesgpt/getting-started.html": "https://robusta.dev/", + "configuration/holmesgpt/holmesgpt-docs.html": "https://robusta.dev/", # AI Analysis pages redirects to holmesgpt.dev (docs have moved there) "configuration/holmesgpt/builtin_toolsets.html": "https://holmesgpt.dev/data-sources/builtin-toolsets/?tab=robusta-helm-chart", "configuration/holmesgpt/permissions.html": "https://holmesgpt.dev/data-sources/permissions/?tab=robusta-helm-chart", diff --git a/docs/playbook-reference/builtin-alert-enrichment.rst b/docs/playbook-reference/builtin-alert-enrichment.rst index 415169978..4d29e36b1 100644 --- a/docs/playbook-reference/builtin-alert-enrichment.rst +++ b/docs/playbook-reference/builtin-alert-enrichment.rst @@ -7,7 +7,7 @@ Ever feel overwhelmed by alerts that lack context? Robusta enriches alerts autom .. note:: - **Looking for automatic AI enrichment?** Check out `HolmesGPT `_ for zero-configuration AI-powered alert enrichment that automatically investigates alerts and provides root cause analysis. + **Looking for automatic AI enrichment?** Check out `Robusta `_ for zero-configuration AI-powered alert enrichment that automatically investigates alerts and provides root cause analysis. Builtin Alert Enrichment ********************************* From 0d36d37efded59a99836a09656ea8899ebd44e84 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:22:00 +0000 Subject: [PATCH 27/32] docs: move Classic-era APIs to Robusta Classic menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move Managed Prometheus Alerts (alertsui), Namespace Resources API, and Prometheus Query API from the HTTP APIs menu to the Robusta Classic menu — they're Classic-era functionality that fits better under that section. Drop the moved entries from the HTTP APIs Overview page bullet list. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/configuration/exporting/robusta-pro-features.rst | 2 -- docs/index.rst | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/configuration/exporting/robusta-pro-features.rst b/docs/configuration/exporting/robusta-pro-features.rst index 5998c66e1..5aa584a57 100644 --- a/docs/configuration/exporting/robusta-pro-features.rst +++ b/docs/configuration/exporting/robusta-pro-features.rst @@ -19,9 +19,7 @@ Data Export and Reporting * :doc:`Alert Reporting API `: Get aggregated statistics and counts for different alert types * :doc:`Send Alerts API `: Send alerts programmatically from external systems * :doc:`Configuration Changes API `: Track configuration changes in your environment -* :doc:`Namespace Resources API `: Query namespace-level resource information * :doc:`RBAC Configuration API `: Programmatically manage role-based access control configurations -* :doc:`Prometheus Query API `: Run PromQL queries against Prometheus in your connected clusters Getting Started --------------- diff --git a/docs/index.rst b/docs/index.rst index 3068ef7c1..d6d3013cd 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -23,14 +23,11 @@ Overview Holmes Chat API - setup-robusta/alertsui configuration/exporting/send-alerts-api configuration/exporting/configuration-changes-api configuration/exporting/alert-export-api configuration/exporting/alert-statistics-api - configuration/exporting/namespace-resources-api configuration/exporting/rbac-api - configuration/exporting/prometheus-query-api .. toctree:: :maxdepth: 4 @@ -45,6 +42,9 @@ CRDs Monitoring Playbooks Self-Monitoring + Managed Prometheus Alerts + Namespace Resources API + Prometheus Query API .. toctree:: :maxdepth: 4 From 4b77a8638a99cfe7fc6fc4b29736237e1e1dffd3 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:42:19 +0000 Subject: [PATCH 28/32] docs: drop "when does Robusta need internet" preamble from proxies page https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/proxies.rst | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/setup-robusta/proxies.rst b/docs/setup-robusta/proxies.rst index fae25a68e..0fbedd71f 100644 --- a/docs/setup-robusta/proxies.rst +++ b/docs/setup-robusta/proxies.rst @@ -1,11 +1,6 @@ Deploying Behind Proxies ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Robusta requires internet access in the following cases: - -* Robusta SaaS is enabled -* Robusta is configured to send notifications to services such as Slack (via :ref:`sinks `) - If your Kubernetes cluster is behind an HTTP proxy or firewall, follow the instructions below to ensure Robusta and HolmesGPT has the necessary access. Configuring Proxy Settings for Robusta From c4341a3436ef57852d5a0c37fad82be7bfdd5f16 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:42:40 +0000 Subject: [PATCH 29/32] =?UTF-8?q?docs:=20flatten=20proxy=20config=20?= =?UTF-8?q?=E2=80=94=20single=20block=20covering=20runner=20+=20holmes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Combine the separate "Configuring Proxy Settings for Robusta" and "... for HolmesGPT" sections into one. Show a single Helm-values example that sets HTTP_PROXY/HTTPS_PROXY on both deployments at once, and keep the env_froms note as a brief follow-up for many-at-once overrides. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/proxies.rst | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/docs/setup-robusta/proxies.rst b/docs/setup-robusta/proxies.rst index 0fbedd71f..670818f7a 100644 --- a/docs/setup-robusta/proxies.rst +++ b/docs/setup-robusta/proxies.rst @@ -3,24 +3,28 @@ Deploying Behind Proxies If your Kubernetes cluster is behind an HTTP proxy or firewall, follow the instructions below to ensure Robusta and HolmesGPT has the necessary access. -Configuring Proxy Settings for Robusta +Configuring Proxy Settings ---------------------------------------- -Outbound traffic from Robusta is handled by the `robusta-runner` deployment. +Set the ``HTTP_PROXY`` and ``HTTPS_PROXY`` environment variables in your Helm values: -To configure proxy settings for `robusta-runner`, set the `HTTP_PROXY` and `HTTPS_PROXY` environment variables. You can do so with one of the following Helm values: +.. code-block:: yaml -* ``runner.additional_env_vars`` - to set one environment variable at a time -* ``runner.additional_env_froms`` - to set many environment variables at once + runner: + additional_env_vars: + - name: HTTP_PROXY + value: "http://your-proxy:port" + - name: HTTPS_PROXY + value: "http://your-proxy:port" -Configuring Proxy Settings for HolmesGPT ----------------------------------------- - -Set the `HTTP_PROXY` and `HTTPS_PROXY` environment variables. You can do so with the following Helm values: - -* ``holmes.additionalEnvVars`` - to set one environment variable at a time + holmes: + additionalEnvVars: + - name: HTTP_PROXY + value: "http://your-proxy:port" + - name: HTTPS_PROXY + value: "http://your-proxy:port" -Either Helm value can be used, depending on your preference. See `this GitHub issue for details and an example configuration `_. +To set many variables at once, ``runner.additional_env_froms`` accepts a Kubernetes ``envFrom`` source. See `this GitHub issue `_ for details and examples. Domains Used by Robusta Saas UI --------------------------------- From d1a8d9075fb83dfef7a99b0b160ecc0d99d61fea Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:42:54 +0000 Subject: [PATCH 30/32] docs: replace air-gapped section with contact-us pointer The previous bullets implied air-gapped support was just a configuration toggle. Replace with a direct pointer to contact support for self-hosted options that actually work in air-gapped or offline environments. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/proxies.rst | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/setup-robusta/proxies.rst b/docs/setup-robusta/proxies.rst index 670818f7a..d88eafdcd 100644 --- a/docs/setup-robusta/proxies.rst +++ b/docs/setup-robusta/proxies.rst @@ -38,7 +38,4 @@ If you are using Robusta SaaS, ensure that your network allows access to the fol Running Robusta in Air-Gapped or Offline Environments ------------------------------------------------------------------------------ -You can run Robusta entirely offline if the following conditions are met: - -* No external sinks are configured (e.g., services on the public internet). -* The Robusta UI is either disabled or running on-premise. +Contact support@robusta.dev for self-hosted deployment options that work in air-gapped or offline environments. From 149e0cd16e66186d61aead94807dd54272ba445f Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:43:42 +0000 Subject: [PATCH 31/32] docs: remove Classic-era Data Privacy / SaaS UI section The Data Privacy section described what the Robusta Classic OSS sends to sinks (Slack, MS Teams, etc.) and the SaaS UI's role relative to that pipeline. Both are Classic-era framing. https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/setup-robusta/privacy-and-security.rst | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/docs/setup-robusta/privacy-and-security.rst b/docs/setup-robusta/privacy-and-security.rst index cb2df47db..710826995 100644 --- a/docs/setup-robusta/privacy-and-security.rst +++ b/docs/setup-robusta/privacy-and-security.rst @@ -8,27 +8,6 @@ Robusta was designed with security in mind. Our four guiding security principles 3. **Design for security:** Secure systems are designed to be secure from day one. Discuss security when planning new features. 4. **Experience matters:** Hire engineers who have built secure enterprise platforms before. Make security a core part of company culture. -Data Privacy -******************** -The Robusta Open Source doesn't store persistent information itself. -Information is sent to destinations (sinks) like Slack or MSTeams, and they are responsible for storing it. - -By default, the following data is sent to sinks. It can be customized if necessary. - -- Prometheus alerts -- Alert enrichments, or insights. (Example: an alert for high memory usage will include a memory graph.) -- Technical events from Kubernetes itself. (Example: notifications on crashing pods, K8s warning events.) -- Logs from unhealthy pods. (Note: Robusta does *not* gather logs continuously, rather only from crashing or misbehaving pods.) - -SaaS UI ----------- -When the Robusta SaaS platform is enabled (optional), it receives the above data, as well as metadata about nodes and workloads in your cluster. -This is used, for example, to show you when deployments were updated and what YAML fields changed. - -All data in the SaaS platform is encrypted at rest and stored in accordance with industry standards. - -If necessary, the SaaS UI can be run on-prem as part of our paid plans. Contact support@robusta.dev for details. - Running Robusta in Airgapped Environments ****************************************** Refer to :ref:`Deploying Behind Proxies`. From 26d276000b35cf577c5ad63a7c87e69d12357309 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:45:16 +0000 Subject: [PATCH 32/32] docs: remove Additional Settings page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page held a single "Global Config" section describing clusterName/account_id/signing_key — values the platform wizard generates. Drop the page from the toctree, redirect old URLs to the install page, and rewire two stale "Alert Label Mapping" inbound refs to the page that actually documents that (customize-labels-priorities.rst). https://claude.ai/code/session_019GQrc8wVq14if8f7F3pp4f --- docs/conf.py | 7 +++-- .../_testing_integration.rst | 2 +- .../exporting/send-alerts-api.rst | 2 +- docs/setup-robusta/additional-settings.rst | 28 ------------------- docs/setup-robusta/index.rst | 1 - 5 files changed, 6 insertions(+), 34 deletions(-) delete mode 100644 docs/setup-robusta/additional-settings.rst diff --git a/docs/conf.py b/docs/conf.py index c77090951..4ee9e6978 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -101,7 +101,8 @@ "configuration/defining-playbooks/playbook-basics.html": "/master/playbook-reference/index.html", "configuration/defining-playbooks/trigger-action-binding.html": "/master/playbook-reference/index.html#matching-actions-to-triggers", "playbook-reference/defining-playbooks/trigger-action-binding.html": "/master/playbook-reference/index.html#matching-actions-to-triggers", - "configuration/additional-settings.html": "/master/setup-robusta/additional-settings.html", + "configuration/additional-settings.html": "/master/setup-robusta/installation/index.html", + "setup-robusta/additional-settings.html": "/master/setup-robusta/installation/index.html", "developer-guide/writing-playbooks.html": "/master/playbook-reference/defining-playbooks/index.html", "user-guide/slack.html": "/master/configuration/sinks/slack.html", "user-guide/elasticsearch.html": "/master/playbook-reference/triggers/elasticsearch.html", @@ -171,12 +172,12 @@ "tutorials/more-tutorials.html": "/master/help.html", "common-errors.html": "/master/help.html#common-errors", "user-guide/defining-playbooks.html": "/master/playbook-reference/defining-playbooks/index.html", - "user-guide/global-config.html": "/master/setup-robusta/additional-settings.html#global-config", + "user-guide/global-config.html": "/master/setup-robusta/installation/index.html", "user-guide/configuration-secrets.html": "master/setup-robusta/configuration-secrets.html", "user-guide/additional-playbooks.html": "/master/playbook-reference/defining-playbooks/external-playbook-repositories.html", "user-guide/embedded-prometheus.html": "/master/configuration/alertmanager-integration/embedded-prometheus.html#enabling-the-embedded-prometheus", "user-guide/node-selector.html": "/master/setup-robusta/node-selector.html", - "user-guide/interactivity.html": "/master/setup-robusta/additional-settings.html#two-way-interactivity", + "user-guide/interactivity.html": "/master/setup-robusta/installation/index.html", "user-guide/flow-control.html": "/master/playbook-reference/index.html#using-filters-to-restrict-triggers", "catalog/triggers/index.html": "/master/playbook-reference/triggers/index.html", "catalog/triggers/kubernetes.html": "/master/playbook-reference/triggers/kubernetes.html", diff --git a/docs/configuration/alertmanager-integration/_testing_integration.rst b/docs/configuration/alertmanager-integration/_testing_integration.rst index 20b1f831f..b9e5c80ac 100644 --- a/docs/configuration/alertmanager-integration/_testing_integration.rst +++ b/docs/configuration/alertmanager-integration/_testing_integration.rst @@ -56,4 +56,4 @@ If everything is setup properly, this alert will reach Robusta. It will show up Robusta enriches alerts with Kubernetes and log data using Prometheus labels for mapping. Standard label names are used by default. If your setup differs, you can - `customize this mapping `_ to fit your environment. + `customize this mapping `_ to fit your environment. diff --git a/docs/configuration/exporting/send-alerts-api.rst b/docs/configuration/exporting/send-alerts-api.rst index 77c6bb65e..f4461fc58 100644 --- a/docs/configuration/exporting/send-alerts-api.rst +++ b/docs/configuration/exporting/send-alerts-api.rst @@ -261,7 +261,7 @@ Troubleshooting **Alerts arriving but missing Kubernetes context?** - Check :doc:`Alert Label Mapping ` to customize how Prometheus labels map to Kubernetes resources. + Check :doc:`Customize Labels and Priorities ` to customize how Prometheus labels map to Kubernetes resources. Testing Your Integration ------------------------ diff --git a/docs/setup-robusta/additional-settings.rst b/docs/setup-robusta/additional-settings.rst deleted file mode 100644 index 61a833371..000000000 --- a/docs/setup-robusta/additional-settings.rst +++ /dev/null @@ -1,28 +0,0 @@ -:hide-toc: - -Additional Settings -======================= - -Global Config --------------------------- - -The ``globalConfig`` Helm value defines global variables re-used across Robusta. - -Robusta also expects several parameters to always be defined in ``globalConfig``: - -cluster_name - Unique for each cluster in your organization. Cluster Name be human-readable and need not be secret - -account_id - Keep secret! The Account ID uniquely identifies your cluster with Robusta cloud (if enabled). Should never be the - same for different organizations. Together, ``cluster_name`` and ``account_id`` uniquely identify every cluster - running Robusta in the world - -signing_key - Keep secret! The Signing Key is used to authenticate requests to run playbooks from outside the cluster (if enabled). - -These values are generated automatically when setting up Robusta with the CLI. If you install Robusta on additional -clusters, make sure you change ``cluster_name`` accordingly. The other values should remain the same. - -If you need to generate the secret values yourself, use cryptographically secure strings with at least 128 bits of -randomness. diff --git a/docs/setup-robusta/index.rst b/docs/setup-robusta/index.rst index c348b9a49..777bf902e 100644 --- a/docs/setup-robusta/index.rst +++ b/docs/setup-robusta/index.rst @@ -21,7 +21,6 @@ node-selector proxies privacy-and-security - additional-settings installation-faq \ No newline at end of file