From a956c3547fc6add81e0def7951fb04378357aca9 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Sun, 28 Jun 2026 22:52:57 +0530 Subject: [PATCH 01/15] docs(fluxcd): add Limitations section and update controller version - Add a Limitations section to the FluxCD GitOps page (supported strategies, no rollback, no manual sync, manual controller setup, prerequisites) - Update FluxCD controller install command from v0.35.0 to v2.7.5 Co-Authored-By: Claude Fable 5 --- .../user-guide/creating-application/fluxcd.md | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/creating-application/fluxcd.md b/docs/user-guide/creating-application/fluxcd.md index f7bb5ea805..c0d0811dd4 100755 --- a/docs/user-guide/creating-application/fluxcd.md +++ b/docs/user-guide/creating-application/fluxcd.md @@ -128,7 +128,7 @@ You can install FluxCD Controller by any of the following ways: 4. Run the following command to install the FluxCD Controller: ```yaml - kubectl apply -f https://github.com/fluxcd/flux2/releases/download/v0.35.0/install.yaml + kubectl apply -f https://github.com/fluxcd/flux2/releases/download/v2.7.5/install.yaml ``` ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/devtron-v2/resources/gitops-flux-cd/fluxcd-install-controller.gif) @@ -173,4 +173,22 @@ To install FluxCD controller via Chart Store, follow the below steps. 6. Click **Deploy** and the chart will be deployed. -After the chart is successfully deployed, you can deploy applications though GitOps (via FluxCD). \ No newline at end of file +After the chart is successfully deployed, you can deploy applications though GitOps (via FluxCD). + +## Limitations + +Keep the following limitations in mind when using GitOps deployments via FluxCD: + +* **Supported deployment strategies**: Only the `Deployment` and `Rollout` strategies are supported (with the latest chart versions). Other strategies (such as Canary or Blue-Green) are currently not supported. + +* **No rollback**: Rolling back a FluxCD deployment to a previous version from within Devtron is not currently supported. + +* **No manual sync from Devtron**: There is no manual *sync* or *refresh* action for FluxCD applications in Devtron. Deployments reconcile automatically on FluxCD's reconciliation interval. To force an immediate reconcile, use the FluxCD CLI, for example: + + ```bash + flux reconcile helmrelease -n + ``` + +* **Manual controller setup required**: Devtron does not install the FluxCD controller automatically. You must install it in every target cluster (see [Installing FluxCD Controller](#installing-fluxcd-controller-only-for-deployments)) and enable the required feature flags before you can deploy. + +* **Prerequisites**: FluxCD deployments require the [Build and Deploy (CI/CD)](../integrations/build-and-deploy-ci-cd.md) and [GitOps (ArgoCD)](../integrations/argocd.md) integrations to be installed. \ No newline at end of file From e96d4dd140d3bd0bd7ddb112d7e2f460a48baa94 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Sun, 28 Jun 2026 23:07:53 +0530 Subject: [PATCH 02/15] docs(scoop): add Capabilities section and clarify enableResourceList - Add a Capabilities section (pod restart monitoring, event tracking, resource caching) - Expand the enableResourceList flag description to explain the per-cluster resource-caching capability (verified against orchestrator getResourceListV2 path) Co-Authored-By: Claude Fable 5 --- docs/user-guide/resource-browser/scoop-config.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/resource-browser/scoop-config.md b/docs/user-guide/resource-browser/scoop-config.md index d85f00da63..3bb340027d 100644 --- a/docs/user-guide/resource-browser/scoop-config.md +++ b/docs/user-guide/resource-browser/scoop-config.md @@ -4,6 +4,16 @@ To enable **Pod Last Restart Snapshot**, you must configure Scoop in your target cluster. Scoop collects pod restart events from your cluster and sends them to Devtron, allowing the platform to display details such as restart reason, timestamp, and pre-restart logs directly in the Pod Listing view. +## Capabilities + +Scoop runs as a lightweight service inside your target cluster and provides the following capabilities: + +* **Pod restart monitoring** — Tracks application pod restarts and surfaces details such as the restart reason, timestamp, previous-container logs, and node status in the Pod listing view. This powers the **Pod Last Restart Snapshot** feature. + +* **Event tracking** — Watches events across Kubernetes resources in the cluster, so you can observe and act on what is happening to your workloads. + +* **Resource caching** — Caches Kubernetes resources in the target cluster, reducing Kubernetes API fetch times when you browse resources in the **Resource Browser**. This capability is controlled per cluster by the `enableResourceList` flag (see [Update ConfigMap](#4-update-configmap)). + ## Steps to Configure Scoop ### 1. Deploying Scoop Chart @@ -127,7 +137,7 @@ The **orchestrator-cm** ConfigMap will be available only if you have Devtron man | **"1" and "2"** | The cluster IDs of your clusters (as seen in the Resource Browser URL). Each ID represents a unique cluster where Scoop is deployed | | **serviceName** | The name of the Scoop service you noted from the **Service** tab while checking the endpoint | | **passKey** | The value of authentication key (`PASS_KEY`) that you defined (or left as default) during Scoop chart deployment | - | **enableResourceList** | A flag that controls whether resource-level details are fetched. Keep it **false** unless you specifically need that data | + | **enableResourceList** | Enables Scoop's **resource caching** capability for this cluster. When `true`, the Resource Browser serves cached Kubernetes resources from Scoop (faster listing, fewer direct Kubernetes API calls). When `false` (default), resources are fetched directly from the cluster. This is a **per-cluster** flag — enable it only for the clusters where you want cached resource listing | | **namespace** | The namespace of the Scoop service you noted from the **Service** tab while checking the endpoint | | **port** | The port number of the Scoop service you noted from the **Service** tab while checking the endpoint | From 0c3615058ddb5cc5b29acfc402f73814cecf8ca4 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Mon, 29 Jun 2026 11:16:03 +0530 Subject: [PATCH 03/15] docs(ai): add Capabilities section to Devtron Intelligence Document the agentic capabilities of the AI agent (troubleshooting and remediation, cost insights, application & resource Q&A, documentation search), derived from the ai-agent (Athena) backend's MCP tool set. Kept at product level to match the rest of the public page. Co-Authored-By: Claude Fable 5 --- docs/user-guide/devtron-intelligence.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index 434c6d5181..32ead122d6 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -16,6 +16,18 @@ Check out the [Results](#results) section to see where Devtron gives you AI-powe
+## Capabilities + +Devtron Intelligence is an AI agent that can reason over your Devtron-managed Kubernetes estate and assist you across several areas: + +* **Troubleshooting and remediation** — Analyze pod errors, restart snapshots, events, and application status, and suggest remediation steps. + +* **Cost insights** — Answer questions about cost breakdown and cost summary for your applications and clusters. + +* **Application and resource Q&A** — Query applications, environments, projects, jobs, Helm apps, manifests, and resource utilization in natural language. + +* **Documentation search** — Answer product questions grounded in Devtron's documentation. + --- ## Steps to Configure Devtron Intelligence From a873a345abd0f2540618f52190ebee23e23d4cf7 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Mon, 29 Jun 2026 11:49:53 +0530 Subject: [PATCH 04/15] docs(ci): document caching for multi-architecture (BuildX) builds Add a 'Caching for Multi-Architecture Builds' subsection to the Docker Layer Caching docs, covering the orchestrator-cm flags BUILDX_CACHE_MODE_MIN and ASYNC_BUILDX_CACHE_EXPORT and the per-architecture build cache. Verified against orchestrator (CiService.go) and ci-runner (DockerHelper.go). Co-Authored-By: Claude Fable 5 --- .../creating-application/workflow/ci-pipeline.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/user-guide/creating-application/workflow/ci-pipeline.md b/docs/user-guide/creating-application/workflow/ci-pipeline.md index a10e00f863..a53cb26df1 100755 --- a/docs/user-guide/creating-application/workflow/ci-pipeline.md +++ b/docs/user-guide/creating-application/workflow/ci-pipeline.md @@ -817,6 +817,19 @@ You have the option to ignore cache while triggering a build (regardless of the If the caching flags in **Global Settings** are set to false, ignoring cache becomes the default behavior even if you don't select the 'Ignore Cache' checkbox during trigger. ::: +#### Caching for Multi-Architecture Builds + +When you build for multiple [target platforms](../../creating-application/docker-build-configuration.md#set-target-platform-for-the-build) (multi-architecture builds), Devtron uses BuildX and, when caching is enabled, maintains a **separate build cache per target architecture** so that each platform's layers are reused across builds. + +Super-admins can tune multi-architecture build caching using the following additional flags in the `orchestrator-cm` ConfigMap: + +| Flag | Default | Description | +|:---|:---|:---| +| `BUILDX_CACHE_MODE_MIN` | `false` | Controls the BuildX cache mode. When `false`, mode `max` is used — all intermediate layers are cached for maximum reuse, at the cost of a larger cache. When `true`, mode `min` is used — only the final exported layers are cached, resulting in a smaller cache. | +| `ASYNC_BUILDX_CACHE_EXPORT` | `false` | When `true`, the BuildX cache is exported **asynchronously after** the build completes, which can reduce build time. This applies only when using a multi-node BuildX Kubernetes driver. | + +After updating these flags, restart the orchestrator deployment for the changes to take effect. + ### Override Build Configuration **Override Options** in **Build Stage** lets you override **Build Configurations** for each workflow of the same application. You can configure overrides in the build stage of each workflow. From ff8cd2ba0572ffd24ab3ff12a808c404a2f4afba Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Mon, 29 Jun 2026 14:44:37 +0530 Subject: [PATCH 05/15] docs(variables): add usage syntax for predefined (system) variables The predefined variables are not shown in the scoped-variable widget, so users had no example of how to reference them. Add the @{{...}} usage syntax with a DEVTRON_IMAGE example, incl. the double-quoted form for deployment templates. Co-Authored-By: Claude Fable 5 --- docs/user-guide/global-configurations/scoped-variables.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/global-configurations/scoped-variables.md b/docs/user-guide/global-configurations/scoped-variables.md index e3b3f2e42c..5861e36157 100755 --- a/docs/user-guide/global-configurations/scoped-variables.md +++ b/docs/user-guide/global-configurations/scoped-variables.md @@ -361,4 +361,6 @@ There are some system variables that exist by default in Devtron that you can re :::info Currently, these variables do not appear in the scoped variable widget, but you may use them. -::: \ No newline at end of file +::: + +You can reference a predefined variable the same way as any other scoped variable, using `@{{}}` — for example, `@{{DEVTRON_IMAGE}}`. When using it inside a deployment template, encapsulate it in double quotes: `"@{{DEVTRON_IMAGE}}"`. \ No newline at end of file From 9584ba3e4a82726472cb9723a8bc1290c4d6a657 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Tue, 30 Jun 2026 04:38:00 +0530 Subject: [PATCH 06/15] docs(gitops): add API reference for GitOps provider migration Add a new user-facing API-reference page documenting the GitOps-to-GitOps migration endpoints (POST /orchestrator/migration/deploy and /migration/deploy/app-level): request/response schema, gitOpsProviderId target, dryRun, super-admin auth, and recommended workflow. Wire it into the Global Configurations sidebar. Verified against orchestrator deployEntityMigration (apiBean_ent.go, MigrationRestHandler_ent.go). Co-Authored-By: Claude Fable 5 --- .../migrate-gitops-provider.md | 104 ++++++++++++++++++ sidebars.js | 1 + 2 files changed, 105 insertions(+) create mode 100644 docs/user-guide/global-configurations/migrate-gitops-provider.md diff --git a/docs/user-guide/global-configurations/migrate-gitops-provider.md b/docs/user-guide/global-configurations/migrate-gitops-provider.md new file mode 100644 index 0000000000..701715153d --- /dev/null +++ b/docs/user-guide/global-configurations/migrate-gitops-provider.md @@ -0,0 +1,104 @@ +# Migrate GitOps Provider (API) + +Devtron provides APIs to migrate the GitOps configuration of your deployments from one Git provider to another — for example, from **GitHub to GitLab** (or to Bitbucket, Azure, an on-prem Git server, and so on). + +When you trigger a migration, Devtron clones the deployment manifests from the existing GitOps repository and pushes them to a repository on the **target** GitOps provider, then updates the affected deployments to use the new provider. + +:::info This is an API-only feature +There is currently no dashboard UI for GitOps provider migration; it is performed through the REST APIs described below. +::: + +## Prerequisites + +* The **target GitOps provider** must already be configured in **Global Configurations → GitOps**. Note its GitOps configuration `id` — you will pass it as `gitOpsProviderId`. (You can list configured providers via `GET /orchestrator/gitops/config`.) +* The applications/charts you want to migrate must already be deploying through GitOps (`argo_cd` or `flux_cd`). + +## Authorization + +These APIs can only be called by a **super-admin**. Pass your auth token in the `token` header. + +## Endpoints + +| Method | Path | Description | +|:---|:---|:---| +| `POST` | `/orchestrator/migration/deploy` | Migrate the GitOps provider for a set of resources selected by project, environment, and/or application. | +| `POST` | `/orchestrator/migration/deploy/app-level` | Perform the migration at the application level. Uses the same request body. | + +## Request Body + +Both endpoints accept the same JSON body: + +```json +{ + "selectors": [ + { + "projectIds": [1], + "envIds": [2, 3], + "appIds": [10, 11], + "appType": "DevtronApp" + } + ], + "migrateTo": { + "deploymentAppType": "argo_cd", + "gitOpsProviderId": 4 + }, + "dryRun": true +} +``` + +| Field | Type | Description | +|:---|:---|:---| +| `selectors` | array | Scopes the migration. Each selector narrows the set of resources to migrate. | +| `selectors[].projectIds` | array of int | Restrict to these project IDs. | +| `selectors[].envIds` | array of int | Restrict to these environment IDs. | +| `selectors[].appIds` | array of int | Restrict to these application IDs. | +| `selectors[].appType` | string | `DevtronApp` (custom apps) or `DevtronChart` (Helm apps). | +| `migrateTo` | object | The target deployment configuration. | +| `migrateTo.deploymentAppType` | string | The GitOps deployment type of the apps being migrated — `argo_cd` or `flux_cd`. | +| `migrateTo.gitOpsProviderId` | int | The `id` of the target GitOps provider to migrate to (from **Global Configurations → GitOps**). | +| `dryRun` | boolean | When `true`, Devtron evaluates the migration and returns what *would* happen, **without** making any changes. Recommended before running a real migration. | + +## Response + +```json +{ + "message": "migration completed", + "details": [ + { + "pipelineId": 25, + "pipelineName": "cd-1-abcd", + "appName": "my-app", + "envName": "production", + "appId": 10, + "envId": 2, + "currentConfig": { + "deploymentAppType": "argo_cd", + "gitOpsProviderId": 1 + }, + "status": "Success" + } + ] +} +``` + +| Field | Type | Description | +|:---|:---|:---| +| `message` | string | Overall result message. | +| `details` | array | Per-pipeline migration result. | +| `details[].pipelineId` / `pipelineName` | int / string | The CD pipeline that was migrated. | +| `details[].appName` / `appId` | string / int | The application. | +| `details[].envName` / `envId` | string / int | The environment. | +| `details[].currentConfig` | object | The deployment config (`deploymentAppType`, `gitOpsProviderId`) **before** migration. | +| `details[].status` | string | Per-pipeline status of the migration. | + +## Recommended workflow + +1. Configure the target GitOps provider in **Global Configurations → GitOps** and note its `gitOpsProviderId`. +2. Run the migration with **`"dryRun": true`** to preview which pipelines will be affected and validate the target configuration. +3. Review the `details` in the response. +4. Re-run the same request with **`"dryRun": false`** to perform the migration. +5. Verify that the affected applications now point to the new provider's repositories and that subsequent deployments succeed. + +:::caution +GitOps provider migration moves deployment manifests to repositories on the target provider. Run a dry run first, and migrate in batches (using `selectors`) rather than all applications at once, so you can verify each batch before proceeding. +::: diff --git a/sidebars.js b/sidebars.js index 898cc6133c..14a35892cb 100755 --- a/sidebars.js +++ b/sidebars.js @@ -234,6 +234,7 @@ const sidebars = { }, items: [ 'user-guide/global-configurations/gitops', + 'user-guide/global-configurations/migrate-gitops-provider', 'user-guide/global-configurations/git-accounts', 'user-guide/global-configurations/external-links', 'user-guide/global-configurations/chart-repo', From fa6ebdf428b48427206512b22f190cb120813970 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 3 Jul 2026 14:44:39 +0530 Subject: [PATCH 07/15] docs(ai): add configuration for AI Debug Mode and Ask Devtron Expert Document how to enable the SRE debug (Holmes) capability and the Ask Devtron Expert chatbot: deploy Redis, add Athena backend env vars to the ai-agent chart (HOLMES_*, CHAT_AGENT_MAX_*, REDIS_URL), and set the orchestrator-cm (FEATURE_ASK_DEVTRON_EXPERT, PROXY_SERVICE_CONFIG) and dashboard-cm (FEATURE_ATHENA_DEBUG_MODE_ENABLE) flags. Placeholders used for environment-specific values. --- docs/user-guide/devtron-intelligence.md | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index 32ead122d6..cdbca346d2 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -283,6 +283,74 @@ Perform a hard refresh of the browser to clear the cache: --- +## Configure AI Debug Mode and Ask Devtron Expert + +In addition to **Explain with AI**, Devtron Intelligence provides: + +* **Ask Devtron Expert** — a chatbot side panel where you can ask free-form questions about your applications and Kubernetes issues. +* **AI Debug Mode** — an autonomous Kubernetes root-cause investigation (powered by Holmes) that opens as a chat when you use **Explain with AI**. + +Enabling them requires the additional configuration below, on top of the [Steps to Configure Devtron Intelligence](#steps-to-configure-devtron-intelligence). Perform this in the cluster where the Devtron orchestrator is running. + +:::caution Who Can Perform This Action? +Same as above — you need permission to edit the cluster's ConfigMaps and restart pods. +::: + +### 1. Deploy Redis + +The chatbot uses Redis as a shared cache. Deploy a Redis instance in the cluster where the [AI Agent chart](#3-deploy-ai-agent-chart) is installed, and note its connection URL (for example, `redis://.:6379`). You will reference it as `REDIS_URL` in the next step. + +### 2. Add Backend Environment Variables to the AI Agent Chart + +Edit the `ai-agent` Helm app (from [Deploy AI Agent Chart](#3-deploy-ai-agent-chart)) and add the following to the `additionalEnvVars` block in its `values.yaml`, then redeploy: + +```yaml +additionalEnvVars: + # ...existing LLM variables from Step 3... + - name: HOLMES_ENABLED + value: "true" ## Enables AI Debug (Holmes) investigations + - name: HOLMES_MODEL + value: ## LLM model Holmes uses for debugging + - name: REDIS_URL + value: redis://:6379 ## From Step 1 + - name: CHAT_AGENT_MAX_LLM_TURNS + value: "7" ## (optional) Max LLM reasoning turns per request + - name: CHAT_AGENT_MAX_TOOL_TOKENS + value: "50000" ## (optional) Total token budget across tool responses per request + - name: CHAT_AGENT_MAX_TOOL_CALLS + value: "30" ## (optional) Max tool calls allowed per LLM turn +``` + +### 3. Update ConfigMaps + +In the cluster where the Devtron orchestrator is running, go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Config & Storage** → **ConfigMap**, and edit: + +* **orchestrator-cm** — enable the chatbot and register the Athena service proxy: + + ```yaml + FEATURE_ASK_DEVTRON_EXPERT: "true" + PROXY_SERVICE_CONFIG: '{"athena":{"host":"","port":"80"}}' + ``` + + | Key | Description | + |:---|:---| + | `FEATURE_ASK_DEVTRON_EXPERT` | Enables the **Ask Devtron Expert** chatbot (default `false`). | + | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Replace `` with the service of the deployed AI Agent chart. | + +* **dashboard-cm** — enable AI Debug Mode: + + ```yaml + FEATURE_ATHENA_DEBUG_MODE_ENABLE: "true" + ``` + + When `true`, using **Explain with AI** opens the Holmes debugger as a new chat in the **Ask Devtron** side panel. When `false` (default), the AI response appears in a draggable widget. + +### 4. Restart Pods and Hard Refresh + +Restart the `devtron` and `dashboard` deployments (see [Restart Pods](#6-restart-pods)), then [perform a hard refresh](#7-perform-hard-refresh) of your browser. + +--- + ## Results Devtron supports **Explain** option at the following screens (only for specific scenarios where troubleshooting is possible through AI): From e352489870bb1f0358e9adddea835aa0955be575 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 3 Jul 2026 15:09:58 +0530 Subject: [PATCH 08/15] docs(ai): deploy Athena as independent microservices, not the ai-agent chart Reframe the AI Debug / Ask Devtron Expert setup to deploy athena-mcp-engine, athena-api-server, and athena-worker-engine as independent applications (plus Redis), with per-service env configuration. The public ai-agent chart is the older single-service (Holmes) agent and does not run these services. Config verified against the staging deployment; env-specific and secret values shown as placeholders. --- docs/user-guide/devtron-intelligence.md | 64 ++++++++++++++++--------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index cdbca346d2..db522229d1 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -296,32 +296,52 @@ Enabling them requires the additional configuration below, on top of the [Steps Same as above — you need permission to edit the cluster's ConfigMaps and restart pods. ::: -### 1. Deploy Redis +### 1. Deploy the Athena Microservices -The chatbot uses Redis as a shared cache. Deploy a Redis instance in the cluster where the [AI Agent chart](#3-deploy-ai-agent-chart) is installed, and note its connection URL (for example, `redis://.:6379`). You will reference it as `REDIS_URL` in the next step. +Deploy the Athena backend as **independent applications** on the cluster where the Devtron orchestrator runs: -### 2. Add Backend Environment Variables to the AI Agent Chart +* **athena-mcp-engine** — exposes Devtron operations to the agent at `/devtron/mcp`. +* **athena-api-server** — the main chat/agent service (also runs the AI Debug capability via Holmes). +* **athena-worker-engine** — background worker for runbooks/remediation. +* **Redis** — shared cache used by the chat agent (deploy it as a StatefulSet reachable at the `REDIS_URL` below). -Edit the `ai-agent` Helm app (from [Deploy AI Agent Chart](#3-deploy-ai-agent-chart)) and add the following to the `additionalEnvVars` block in its `values.yaml`, then redeploy: +Configure each service with the environment variables below. Provide sensitive values (Bedrock and auth tokens) through a **Secret**, not inline, and replace every `` with a value for your environment. -```yaml -additionalEnvVars: - # ...existing LLM variables from Step 3... - - name: HOLMES_ENABLED - value: "true" ## Enables AI Debug (Holmes) investigations - - name: HOLMES_MODEL - value: ## LLM model Holmes uses for debugging - - name: REDIS_URL - value: redis://:6379 ## From Step 1 - - name: CHAT_AGENT_MAX_LLM_TURNS - value: "7" ## (optional) Max LLM reasoning turns per request - - name: CHAT_AGENT_MAX_TOOL_TOKENS - value: "50000" ## (optional) Total token budget across tool responses per request - - name: CHAT_AGENT_MAX_TOOL_CALLS - value: "30" ## (optional) Max tool calls allowed per LLM turn -``` +**athena-mcp-engine** + +| Variable | Example | Description | +|:---|:---|:---| +| `DEVTRON_API_ENDPOINT` | `https://` | Your Devtron server URL | +| `DOC_RAG_SEARCH_SERVER_URL` | `` | Documentation-search (RAG) endpoint | +| `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_DATABASE` | `` / `5432` / `` / `` | Postgres connection | +| `REQUIRED_RECOMMENDATION_DATA_COUNT` | `10` | Minimum data points required for recommendations | +| `SERVICE_PLATFORM` | `k8s` | Platform identifier | + +**athena-api-server** + +| Variable | Example | Description | +|:---|:---|:---| +| `DEVTRON_MCP_API_ENDPOINT` | `http://./devtron/mcp` | Endpoint of athena-mcp-engine, suffixed with `/devtron/mcp` | +| `REDIS_URL` | `redis://.:6379` | Redis shared-cache connection URL | +| `LLM_MODEL_ID` | `` | Chat LLM model | +| `LLM_TEMPERATURE` | `0.01` | LLM temperature | +| `HOLMES_ENABLED` | `true` | Enables the AI Debug (Holmes) capability | +| `HOLMES_MODEL` | `` | LLM model Holmes uses for debugging | +| `AWS_BEARER_TOKEN_BEDROCK` | `` | Bedrock credential (via Secret) — when using AWS Bedrock | +| `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN` | `` | Shared auth token between the API server and worker engine (via Secret) | +| `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_DATABASE` | `` / `5432` / `` / `` | Postgres connection | + +Optional chat-agent tuning (defaults shown; set only to override): + +| Variable | Default | Description | +|:---|:---|:---| +| `CHAT_AGENT_MAX_LLM_TURNS` | `7` | Max LLM reasoning turns per request | +| `CHAT_AGENT_MAX_TOOL_TOKENS` | `50000` | Total token budget across tool responses per request | +| `CHAT_AGENT_MAX_TOOL_CALLS` | `30` | Max tool calls allowed per LLM turn | + +Deploy **athena-worker-engine** the same way, sharing the backend configuration it needs (LLM credentials, `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN`, Postgres, and the MCP endpoint). -### 3. Update ConfigMaps +### 2. Update ConfigMaps In the cluster where the Devtron orchestrator is running, go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Config & Storage** → **ConfigMap**, and edit: @@ -345,7 +365,7 @@ In the cluster where the Devtron orchestrator is running, go to **Infrastructure When `true`, using **Explain with AI** opens the Holmes debugger as a new chat in the **Ask Devtron** side panel. When `false` (default), the AI response appears in a draggable widget. -### 4. Restart Pods and Hard Refresh +### 3. Restart Pods and Hard Refresh Restart the `devtron` and `dashboard` deployments (see [Restart Pods](#6-restart-pods)), then [perform a hard refresh](#7-perform-hard-refresh) of your browser. From 671abd9614630f0c85d833ca49572dc34ddf6699 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 3 Jul 2026 15:19:42 +0530 Subject: [PATCH 09/15] docs(ai): replace ai-agent chart flow with Athena microservices architecture Rework the Devtron Intelligence configuration to the current Athena architecture: deploy athena-mcp-engine, athena-api-server, and athena-worker-engine as independent services plus Redis, and set the orchestrator-cm (FEATURE_ASK_DEVTRON_EXPERT, PROXY_SERVICE_CONFIG) and dashboard-cm (FEATURE_AI_INTEGRATION_ENABLE, FEATURE_ATHENA_DEBUG_MODE_ENABLE) flags. Removes the superseded standalone ai-agent (Holmes) chart steps and the CLUSTER_CHAT_CONFIG mechanism. Capabilities and Results sections retained. Pending DevOps verification of the GA deployment topology. --- docs/user-guide/devtron-intelligence.md | 309 +++++------------------- 1 file changed, 64 insertions(+), 245 deletions(-) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index db522229d1..dac02fc74e 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -20,7 +20,11 @@ Check out the [Results](#results) section to see where Devtron gives you AI-powe Devtron Intelligence is an AI agent that can reason over your Devtron-managed Kubernetes estate and assist you across several areas: -* **Troubleshooting and remediation** — Analyze pod errors, restart snapshots, events, and application status, and suggest remediation steps. +* **Explain with AI** — Analyze pod errors, restart snapshots, events, and application status, and get easy-to-understand explanations and remediation steps. + +* **AI Debug (autonomous root-cause)** — Investigate Kubernetes issues autonomously (powered by Holmes) and return a detailed root-cause analysis. + +* **Ask Devtron Expert (chatbot)** — Ask free-form questions about your applications and Kubernetes issues in a chat side panel. * **Cost insights** — Answer questions about cost breakdown and cost summary for your applications and clusters. @@ -34,278 +38,78 @@ Devtron Intelligence is an AI agent that can reason over your Devtron-managed Ku :::caution Who Can Perform This Action? User must have permissions to: - * Deploy Helm Apps (with environment access) - * Edit the ConfigMaps of 'default-cluster' + * Deploy applications (with environment access) + * Edit the ConfigMaps of the cluster where Devtron is running * Restart the pods ::: -### 1. Get API Key from LLM - -Devtron Intelligence supports all major large language models (LLM) e.g., OpenAI, Gemini, AWS Bedrock, Anthropic and many more. +Devtron Intelligence is powered by the **Athena** backend, which runs as independent microservices — `athena-mcp-engine`, `athena-api-server`, and `athena-worker-engine` — plus a **Redis** cache, deployed on the cluster where the Devtron orchestrator runs. -You can generate an API key for an LLM of your choice. Here, we will generate an API key from [OpenAI](https://platform.openai.com/account/api-keys). +### 1. Get API Key from LLM +Devtron Intelligence supports all major large language models (LLM), e.g., OpenAI, Gemini, AWS Bedrock, Anthropic, and many more. Generate an API key (or credential) for the LLM of your choice. ### 2. Create Secret in Devtron +Create a Kubernetes Secret holding your LLM provider credential in the namespace where you will deploy the Athena services. The `athena-api-server` references this Secret for its LLM credentials. + There are 2 methods to create a secret in Devtron, follow the one you prefer: * [Method A: Using 'Create Resource'](#method-a-using-create-resource) * [Method B: Using kubectl command](#method-b-using-kubectl-command) #### Method A: Using 'Create Resource' -1. Go to [strings.devtron.ai](https://strings.devtron.ai/base64-encoder) and encode your API key in base64. This base64 encoded key will be used while creating a secret in the next step. +1. Go to [strings.devtron.ai](https://strings.devtron.ai/base64-encoder) and encode your credential in base64. 2. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Create Resource** -3. Paste the following YAML and replace the key with your base64-encoded OpenAI key. Also, enter the namespace where the [AI Agent chart](#3-deploy-ai-agent-chart) will be installed: +3. Paste the following YAML, replace the value with your base64-encoded credential, and set the namespace where the Athena services will be deployed: ```yaml apiVersion: v1 kind: Secret metadata: name: ai-secret - namespace: # Namespace where the AI Agent chart will be installed + namespace: # Namespace where the Athena services will be deployed type: Opaque -data: - ## OpenAiKey: # For OpenAI - ## GoogleKey: # For Gemini - ## azureOpenAiKey: # For Azure OpenAI - ## awsAccessKeyId: # For AWS Bedrock - ## awsSecretAccessKey: # For AWS Bedrock - ## AnthropicKey: # For Anthropic +data: + ## Provide the credential key(s) for your LLM provider, for example: + ## AWS_BEARER_TOKEN_BEDROCK: # For AWS Bedrock + ## OPENAI_API_KEY: # For OpenAI + ## GOOGLE_API_KEY: # For Gemini + ## ANTHROPIC_API_KEY: # For Anthropic ``` #### Method B: Using kubectl command -:::tip -Unlike [Method A](#method-a-using-create-resource), this method doesn't require you to encode your LLM Key to Base64 format. +:::tip +Unlike [Method A](#method-a-using-create-resource), this method doesn't require you to base64-encode your credential. ::: -1. Go to Devtron's [Resource Browser](./resource-browser/README.md) and click the [terminal icon](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/cluster-terminal.gif) next to the cluster where you wish to create the secret. +1. Go to Devtron's [Resource Browser](./resource-browser/README.md) and click the terminal icon next to the target cluster. -2. Use the following kubectl command to create a secret. - * Replace `my-namespace` with the namespace where the AI Agent chart will be installed. - * Use the correct LLM key-name and your key-value after `--from-literal` +2. Create the secret (use the key name matching your LLM provider): ```bash kubectl create secret generic ai-secret \ - --namespace=my-namespace \ - --from-literal=OpenAiKey='openai-key-here' \ -# --from-literal=GoogleKey='google-key-here' \ -# --from-literal=azureOpenAiKey='azure-key-here' \ -# --from-literal=AnthropicKey='anthropic-key-here' + --namespace= \ + --from-literal=AWS_BEARER_TOKEN_BEDROCK='your-token-here' +# --from-literal=OPENAI_API_KEY='openai-key-here' ``` ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/secret-using-kubectl.jpg)
Figure 2: Creating Secret using Cluster Terminal
- -### 3. Deploy AI Agent Chart - -:::caution Where should I install the Chart? -Deploy the chart in the cluster whose workloads you wish to troubleshoot. You may install the chart in multiple clusters (1 agent for 1 cluster). -::: - -1. Go to Devtron's Chart Store. - -2. Search the `ai-agent` chart and click on it. - -3. Click the **Configure & Deploy** button. - -4. In the left-hand pane: - - * **App Name**: Give your app a name, e.g. `ai-agent-app` - - * **Project**: Select your project - - * **Deploy to environment**: Choose the target environment (should be associated with the same namespace used while creating secret key in [Step 2](#2-create-secret-in-devtron)) - - * **Chart Version**: Select the latest chart version. - - * **Chart Values**: Choose the default one for the latest version. - -5. In the `values.yaml` file editor, add the appropriate `additionalEnvVars` block based on your LLM provider. Use the tabs below to find the configuration snippet of some well-known LLM providers. - - - - -```yaml -additionalEnvVars: - - name: MODEL - value: gpt-4o-mini ## Examples: gpt-4o, gpt-4, gpt-3.5-turbo - - name: OPENAI_API_KEY - valueFrom: - secretKeyRef: - key: OpenAiKey ## Key of the secret created in Step 2 - name: ai-secret ## Name of the secret created in Step 2 - - name: CLUSTER_NAME - value: document-nonprod ## Name of the target cluster (optional) -``` - - - -```yaml -additionalEnvVars: - - name: MODEL - value: gemini/ ## Examples: gemini/gemini-1.5-pro, gemini/gemini-2.0-flash - - name: GOOGLE_API_KEY - valueFrom: - secretKeyRef: - key: GoogleKey ## Key of the secret created in Step 2 - name: ai-secret ## Name of the secret created in Step 2 - - name: CLUSTER_NAME - value: document-nonprod ## Name of the target cluster (optional) -``` - - - -```yaml -additionalEnvVars: - - name: MODEL - value: azure/ ## Replace with your Azure deployment name (keep "azure/" prefix) - - name: MODEL_TYPE - value: gpt-4o ## Supported: gpt-4o, gpt-35-turbo, etc. - - name: AZURE_API_VERSION - value: ## Replace with the version from Azure portal - - name: AZURE_API_BASE - value: ## Your Azure endpoint e.g. https://my-org.openai.azure.com/ - - name: AZURE_API_KEY - valueFrom: - secretKeyRef: - key: azureOpenAiKey ## Key of the secret created in Step 2 - name: ai-secret ## Name of the secret created in Step 2 - - name: CLUSTER_NAME - value: document-nonprod ## Name of the target cluster (optional) -``` - - - -```yaml -additionalEnvVars: - - name: MODEL - value: bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0 ## Replace with your actual Bedrock model name - - name: AWS_REGION_NAME - value: us-east-1 - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - key: awsAccessKeyId ## Key of the Access Key ID created in Step 2 - name: ai-secret ## Name of the secret created in Step 2 - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - key: awsSecretAccessKey ## Key of the secret created in Step 2 - name: ai-secret ## Name of the secret created in Step 2 - - name: CLUSTER_NAME - value: document-nonprod ## Name of the target cluster (optional) -``` - - - -```yaml -additionalEnvVars: - - name: MODEL - value: claude-3-sonnet ## Examples: claude-3-sonnet, claude-3-haiku - - name: ANTHROPIC_API_KEY - valueFrom: - secretKeyRef: - key: AnthropicKey ## Key of the secret created in Step 2 - name: ai-secret ## Name of the secret created in Step 2 - - name: CLUSTER_NAME - value: document-nonprod ## Name of the target cluster (optional) -``` - - - - -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/chart-config-v4.jpg) -
Figure 3: Chart Configuration
- -6. Click the **Deploy Chart** button. - -### 4. Check Service Endpoint - -1. In the **App Details** page of the deployed chart, expand **Networking** and click on **Service**. - -2. Locate the service entry with the URL in the format: `.:`. Note the values of `serviceName`, `namespace`, and `port` for the next step. - -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/service-endpoint-v3.jpg) -
Figure 4: Service Endpoint of AI Agent Helm App
- - -### 5. Update ConfigMaps - -1. In a new tab, go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Config & Storage** → **ConfigMap** - -2. Edit the ConfigMaps: - - * **devtron-cm** - - Ensure the below entry is present in the ConfigMap (create one if it doesn't exist). Here you can define the target cluster and the endpoint where your Devtron AI service is deployed: - - ```yaml - CLUSTER_CHAT_CONFIG: '{"": {"serviceName": "", "namespace": "", "port": ""}}' - ``` - - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/devtron-cm-v3.jpg) -
Figure 5: Entry in 'orchestrator-cm' or 'devtron-cm' ConfigMap
- - * **dashboard-cm** - - To enable AI integration via feature flag, check if the below entry is present in the ConfigMap (create one if it doesn't exist). - - ```yaml - FEATURE_AI_INTEGRATION_ENABLE: "true" - ``` - - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/dashboard-cm-v3.jpg) -
Figure 6: Entry in 'dashboard-cm' ConfigMap
- - -### 6. Restart Pods - -1. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Workloads** → **Deployment** - -2. Click the checkbox next to the following **Deployment** workloads and restart them using the **`⟳`** button: - * `devtron` - * `dashboard` - - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/restart-deployments.jpg) -
Figure 7: Restart 'devtron' and 'dashboard' deployment workloads
- - -### 7. Perform Hard Refresh - -Perform a hard refresh of the browser to clear the cache: -* **Mac**: Hold down `Cmd` and `Shift` and then press `R` -* **Windows/Linux**: Hold down `Ctrl` and then press `F5` - ---- - -## Configure AI Debug Mode and Ask Devtron Expert - -In addition to **Explain with AI**, Devtron Intelligence provides: - -* **Ask Devtron Expert** — a chatbot side panel where you can ask free-form questions about your applications and Kubernetes issues. -* **AI Debug Mode** — an autonomous Kubernetes root-cause investigation (powered by Holmes) that opens as a chat when you use **Explain with AI**. - -Enabling them requires the additional configuration below, on top of the [Steps to Configure Devtron Intelligence](#steps-to-configure-devtron-intelligence). Perform this in the cluster where the Devtron orchestrator is running. - -:::caution Who Can Perform This Action? -Same as above — you need permission to edit the cluster's ConfigMaps and restart pods. -::: - -### 1. Deploy the Athena Microservices +### 3. Deploy the Athena Microservices Deploy the Athena backend as **independent applications** on the cluster where the Devtron orchestrator runs: * **athena-mcp-engine** — exposes Devtron operations to the agent at `/devtron/mcp`. -* **athena-api-server** — the main chat/agent service (also runs the AI Debug capability via Holmes). +* **athena-api-server** — the main chat/agent service (also runs the AI Debug capability via Holmes, in-process). * **athena-worker-engine** — background worker for runbooks/remediation. -* **Redis** — shared cache used by the chat agent (deploy it as a StatefulSet reachable at the `REDIS_URL` below). +* **Redis** — shared cache used by the chat agent. Deploy it as a StatefulSet reachable at the `REDIS_URL` below. Without Redis, the agent falls back to an in-process cache (single replica only), so Redis is required when running more than one replica. -Configure each service with the environment variables below. Provide sensitive values (Bedrock and auth tokens) through a **Secret**, not inline, and replace every `` with a value for your environment. +Configure each service with the environment variables below. Provide sensitive values (LLM credentials, auth tokens) through the **Secret** from Step 2, not inline, and replace every `` with a value for your environment. **athena-mcp-engine** @@ -321,14 +125,14 @@ Configure each service with the environment variables below. Provide sensitive v | Variable | Example | Description | |:---|:---|:---| -| `DEVTRON_MCP_API_ENDPOINT` | `http://./devtron/mcp` | Endpoint of athena-mcp-engine, suffixed with `/devtron/mcp` | +| `DEVTRON_MCP_API_ENDPOINT` | `http://./devtron/mcp` | Endpoint of `athena-mcp-engine`, suffixed with `/devtron/mcp` | | `REDIS_URL` | `redis://.:6379` | Redis shared-cache connection URL | -| `LLM_MODEL_ID` | `` | Chat LLM model | +| `LLM_MODEL_ID` | `` | Chat LLM model, e.g. `bedrock/<...>`, `gpt-4o`, `gemini/<...>`, `claude-<...>` | | `LLM_TEMPERATURE` | `0.01` | LLM temperature | | `HOLMES_ENABLED` | `true` | Enables the AI Debug (Holmes) capability | | `HOLMES_MODEL` | `` | LLM model Holmes uses for debugging | -| `AWS_BEARER_TOKEN_BEDROCK` | `` | Bedrock credential (via Secret) — when using AWS Bedrock | -| `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN` | `` | Shared auth token between the API server and worker engine (via Secret) | +| LLM credential | `` | Provider credential referenced from the Step 2 Secret (e.g., `AWS_BEARER_TOKEN_BEDROCK`, `OPENAI_API_KEY`) | +| `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN` | `` | Shared auth token between the API server and worker engine | | `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_DATABASE` | `` / `5432` / `` / `` | Postgres connection | Optional chat-agent tuning (defaults shown; set only to override): @@ -341,7 +145,9 @@ Optional chat-agent tuning (defaults shown; set only to override): Deploy **athena-worker-engine** the same way, sharing the backend configuration it needs (LLM credentials, `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN`, Postgres, and the MCP endpoint). -### 2. Update ConfigMaps +After deploying, note the ClusterIP **service endpoints** (format `.:`) of `athena-api-server` and `athena-mcp-engine` — you will need them for `DEVTRON_MCP_API_ENDPOINT` above and `PROXY_SERVICE_CONFIG` in Step 4. + +### 4. Update ConfigMaps In the cluster where the Devtron orchestrator is running, go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Config & Storage** → **ConfigMap**, and edit: @@ -355,19 +161,32 @@ In the cluster where the Devtron orchestrator is running, go to **Infrastructure | Key | Description | |:---|:---| | `FEATURE_ASK_DEVTRON_EXPERT` | Enables the **Ask Devtron Expert** chatbot (default `false`). | - | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Replace `` with the service of the deployed AI Agent chart. | + | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Replace `` with the `athena-api-server` service endpoint from Step 3. | -* **dashboard-cm** — enable AI Debug Mode: +* **dashboard-cm** — enable AI integration and (optionally) AI Debug Mode: ```yaml + FEATURE_AI_INTEGRATION_ENABLE: "true" FEATURE_ATHENA_DEBUG_MODE_ENABLE: "true" ``` - When `true`, using **Explain with AI** opens the Holmes debugger as a new chat in the **Ask Devtron** side panel. When `false` (default), the AI response appears in a draggable widget. + | Key | Description | + |:---|:---| + | `FEATURE_AI_INTEGRATION_ENABLE` | Master switch that enables the **Explain with AI** buttons across the UI. | + | `FEATURE_ATHENA_DEBUG_MODE_ENABLE` | When `true`, using **Explain with AI** opens the Holmes debugger as a new chat in the **Ask Devtron** side panel. When `false` (default), the AI response appears in a draggable widget. | + +### 5. Restart Pods and Perform Hard Refresh -### 3. Restart Pods and Hard Refresh +1. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Workloads** → **Deployment**, and restart the following deployments using the **`⟳`** button: + * `devtron` + * `dashboard` + + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/restart-deployments.jpg) +
Figure 3: Restart 'devtron' and 'dashboard' deployment workloads
-Restart the `devtron` and `dashboard` deployments (see [Restart Pods](#6-restart-pods)), then [perform a hard refresh](#7-perform-hard-refresh) of your browser. +2. Perform a hard refresh of the browser to clear the cache: + * **Mac**: Hold down `Cmd` and `Shift` and then press `R` + * **Windows/Linux**: Hold down `Ctrl` and then press `F5` --- @@ -380,38 +199,38 @@ Devtron supports **Explain** option at the following screens (only for specific **Path**: Infrastructure Management → Resource Browser → (Select Cluster) → Workloads → Pod ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/explain-with-ai.jpg) -
Figure 8a: AI Explain for Pod Issues
+
Figure 4a: AI Explain for Pod Issues
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/ai-explanation.jpg) -
Figure 8b: AI-assisted Troubleshooting
+
Figure 4b: AI-assisted Troubleshooting
### Pod Last Restart Snapshot **Path**: Infrastructure Management → Resource Browser → (Select Cluster) → Workloads → Pod → Pod Last Restart Snapshot ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/pod-restart-explain.jpg) -
Figure 9: AI Explain for Pod Restart Snapshot
+
Figure 5: AI Explain for Pod Restart Snapshot
### Event Errors **Path**: Infrastructure Management → Resource Browser → (Select Cluster) → Events ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/events-explain.jpg) -
Figure 10: AI Explain for Event Errors
+
Figure 6: AI Explain for Event Errors
### App Details - Application Status **Path**: Application Management → Applications → (Select Application) → App Details → Application Status Drawer ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/appstatus-drawer-explain1.jpg) -
Figure 11a: AI Explain at Application Status
+
Figure 7a: AI Explain at Application Status
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/appstatus-drawer-explain2.jpg) -
Figure 11b: AI Explain at Application Status Drawer
+
Figure 7b: AI Explain at Application Status Drawer
### App Details - K8s Resources **Path**: Application Management → Applications → (Select Application) → App Details → K8s Resources (tab) → Workloads ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/app-workload-explain.jpg) -
Figure 12: AI Explain at K8s Resources (tab)
\ No newline at end of file +
Figure 8: AI Explain at K8s Resources (tab)
From c0d4a7654d4c02a2ee0169f8e89eb1c78dd0de81 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 3 Jul 2026 15:26:08 +0530 Subject: [PATCH 10/15] docs(ai): add concrete env config for athena-worker-engine Replace the placeholder worker-engine note with its verified env vars (DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN, DEVTRON_MCP_API_ENDPOINT, LLM_MODEL_ID/TEMPERATURE, Postgres, and optional MAX_CONCURRENT_RECOMMENDATION_TASKS, MAX_REACT_AGENT_ITERATIONS, SUPPORTED_UPDATE_WORKLOAD_KINDS), sourced from the worker_engine component config. --- docs/user-guide/devtron-intelligence.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index dac02fc74e..8eaa90bf83 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -143,7 +143,18 @@ Optional chat-agent tuning (defaults shown; set only to override): | `CHAT_AGENT_MAX_TOOL_TOKENS` | `50000` | Total token budget across tool responses per request | | `CHAT_AGENT_MAX_TOOL_CALLS` | `30` | Max tool calls allowed per LLM turn | -Deploy **athena-worker-engine** the same way, sharing the backend configuration it needs (LLM credentials, `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN`, Postgres, and the MCP endpoint). +**athena-worker-engine** + +| Variable | Example / Default | Description | +|:---|:---|:---| +| `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN` | `` | Shared auth token — must match the value set on `athena-api-server` | +| `DEVTRON_MCP_API_ENDPOINT` | `http://./devtron/mcp` | Same `athena-mcp-engine` endpoint as the API server | +| `LLM_MODEL_ID` | `` | LLM model for the worker | +| `LLM_TEMPERATURE` | `0.1` | LLM temperature | +| `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_PASSWORD` / `PG_DATABASE` | `` / `5432` / `` / `` / `` | Postgres connection | +| `MAX_CONCURRENT_RECOMMENDATION_TASKS` | `4` | (optional) Max concurrent recommendation tasks | +| `MAX_REACT_AGENT_ITERATIONS` | `20` | (optional) Max ReAct agent iterations per task | +| `SUPPORTED_UPDATE_WORKLOAD_KINDS` | `Deployment,StatefulSet,DaemonSet,ReplicaSet` | (optional) Workload kinds the worker may patch during remediation | After deploying, note the ClusterIP **service endpoints** (format `.:`) of `athena-api-server` and `athena-mcp-engine` — you will need them for `DEVTRON_MCP_API_ENDPOINT` above and `PROXY_SERVICE_CONFIG` in Step 4. From 2a36876c875af7c4b92edd3282d45318632bd759 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 10 Jul 2026 09:19:51 +0530 Subject: [PATCH 11/15] docs(fluxcd): add advanced tuning env vars; remove inaccurate strategy & rollback limitations --- .../user-guide/creating-application/fluxcd.md | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/user-guide/creating-application/fluxcd.md b/docs/user-guide/creating-application/fluxcd.md index c0d0811dd4..23555f5688 100755 --- a/docs/user-guide/creating-application/fluxcd.md +++ b/docs/user-guide/creating-application/fluxcd.md @@ -34,10 +34,6 @@ To enable deployments through GitOps via FluxCD, you need to enable a specific f |**Deployments via FluxCD**|`FEATURE_FLUX_DEPLOYMENTS_ENABLE: "true"`|This flag will enable deployments through GitOps via FluxCD.
  • After enabling this flag, you also need to install FluxCD controller in order to deploy applications successfully. Refer [Installing FluxCD Controller](#installing-fluxcd-controller-only-for-deployments) to know more.
| |**Migrating existing FluxCD applications**|`FEATURE_LINK_EXTERNAL_FLUX_ENABLE: "true"`|This flag will enable migrations for external FluxCD apps into Devtron.| - :::caution Deployment Strategies for FluxCD Deployments - Application deployments through GitOps (via FluxCD) are supported only when using the `Deployment` or `Rollout` deployment strategies with the latest chart versions. Other deployment strategies are currently not supported. -::: - ### Enabling Feature Flags 1. Navigate to Devtron's **Resource Browser**. @@ -175,13 +171,23 @@ To install FluxCD controller via Chart Store, follow the below steps. After the chart is successfully deployed, you can deploy applications though GitOps (via FluxCD). -## Limitations +## Advanced Configuration (Optional) -Keep the following limitations in mind when using GitOps deployments via FluxCD: +The following **orchestrator** environment variables tune the status-polling and timeout cadence for FluxCD apps. They do **not** enable any feature — the defaults are sensible, so change them only if you have a specific need. Note these are set on the **orchestrator**, not in the `dashboard-cm` ConfigMap used for the feature flags above. -* **Supported deployment strategies**: Only the `Deployment` and `Rollout` strategies are supported (with the latest chart versions). Other strategies (such as Canary or Blue-Green) are currently not supported. +| Env variable | Default | Purpose | +|---|---|---| +| `CD_FLUX_PIPELINE_STATUS_CRON_TIME` | `*/2 * * * *` | Cron frequency for checking FluxCD CD-pipeline deployment status | +| `FLUX_CD_PIPELINE_STATUS_CHECK_ELIGIBLE_TIME` | `120` (sec) | Re-check a pipeline's status only if it was not updated within this window | +| `FLUX_INSTALLATION_STATUS_CRON_TIME` | `1` (min) | Polling interval for tracking FluxCD installation status | +| `FLUX_INSTALLATION_DELETE_CRON_TIME` | `1` (min) | Polling interval for tracking FluxCD installation delete status | +| `FLUX_INSTALLATION_HELM_RELEASE_CRON_TIME` | `30` (sec) | Scan interval for HelmReleases stuck in *Applying* (timeout) or *Pending* (missed event) | +| `FLUX_APPLY_STATUS_TIMEOUT` | `2` (min) | Duration after which a HelmRelease moves from *Applying* to *TimedOut* | +| `FLUX_PENDING_STATUS_TIME` | `3` (min) | Duration after which an event is emitted for an install stuck in *Pending* | -* **No rollback**: Rolling back a FluxCD deployment to a previous version from within Devtron is not currently supported. +## Limitations + +Keep the following limitations in mind when using GitOps deployments via FluxCD: * **No manual sync from Devtron**: There is no manual *sync* or *refresh* action for FluxCD applications in Devtron. Deployments reconcile automatically on FluxCD's reconciliation interval. To force an immediate reconcile, use the FluxCD CLI, for example: From 1c8628a9352b89479a7b72058b1d66b0f30cafea Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 10 Jul 2026 09:19:51 +0530 Subject: [PATCH 12/15] docs(scoop): document Resource Watcher dependency on Scoop --- docs/user-guide/resource-browser/scoop-config.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/user-guide/resource-browser/scoop-config.md b/docs/user-guide/resource-browser/scoop-config.md index 3bb340027d..dc7b04541d 100644 --- a/docs/user-guide/resource-browser/scoop-config.md +++ b/docs/user-guide/resource-browser/scoop-config.md @@ -14,6 +14,8 @@ Scoop runs as a lightweight service inside your target cluster and provides the * **Resource caching** — Caches Kubernetes resources in the target cluster, reducing Kubernetes API fetch times when you browse resources in the **Resource Browser**. This capability is controlled per cluster by the `enableResourceList` flag (see [Update ConfigMap](#4-update-configmap)). +* **Resource Watcher (auto-remediation)** — Scoop performs the in-cluster event watching that powers Devtron's [Resource Watcher](../resource-watcher.md). When you configure a watcher, Devtron registers it with the target cluster's Scoop instance, which intercepts the matching events and triggers the webhook or job you defined. As a result, the **Resource Watcher feature requires Scoop to be deployed in the target cluster**. + ## Steps to Configure Scoop ### 1. Deploying Scoop Chart From 15764212ba4b7d2f6aabec2b7cf8a4b157d54761 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 10 Jul 2026 10:31:08 +0530 Subject: [PATCH 13/15] docs(ai): rewrite Devtron Intelligence setup to the Helm-chart (athenaApi) flow --- docs/user-guide/devtron-intelligence.md | 139 +++++++----------------- 1 file changed, 42 insertions(+), 97 deletions(-) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index 8eaa90bf83..906fbfbd76 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -43,120 +43,65 @@ User must have permissions to: * Restart the pods ::: -Devtron Intelligence is powered by the **Athena** backend, which runs as independent microservices — `athena-mcp-engine`, `athena-api-server`, and `athena-worker-engine` — plus a **Redis** cache, deployed on the cluster where the Devtron orchestrator runs. +Devtron Intelligence is powered by the **Athena** backend, which is deployed by the Devtron enterprise Helm chart on the cluster where the orchestrator runs. When enabled, it brings up three services — **`athena-api`** (the agent/chat service, which also runs the AI Debug capability via Holmes), **`athena-mcp`** (the MCP engine that exposes Devtron operations to the agent), and a background **worker engine** (recommendations and remediation) — backed by a bundled **Redis** cache and a dedicated **`athena`** database in Devtron's PostgreSQL. You enable and configure it through the chart's `devtronEnterprise.athenaApi` values, as described below. ### 1. Get API Key from LLM Devtron Intelligence supports all major large language models (LLM), e.g., OpenAI, Gemini, AWS Bedrock, Anthropic, and many more. Generate an API key (or credential) for the LLM of your choice. -### 2. Create Secret in Devtron +### 2. Provide the LLM Credential -Create a Kubernetes Secret holding your LLM provider credential in the namespace where you will deploy the Athena services. The `athena-api-server` references this Secret for its LLM credentials. - -There are 2 methods to create a secret in Devtron, follow the one you prefer: -* [Method A: Using 'Create Resource'](#method-a-using-create-resource) -* [Method B: Using kubectl command](#method-b-using-kubectl-command) - -#### Method A: Using 'Create Resource' - -1. Go to [strings.devtron.ai](https://strings.devtron.ai/base64-encoder) and encode your credential in base64. - -2. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Create Resource** - -3. Paste the following YAML, replace the value with your base64-encoded credential, and set the namespace where the Athena services will be deployed: +Athena reads your LLM provider credential from the chart's `athenaApi.secrets`. Add it there using the key name your provider expects — the chart renders these into a Kubernetes Secret that `athena-api` consumes: ```yaml -apiVersion: v1 -kind: Secret -metadata: - name: ai-secret - namespace: # Namespace where the Athena services will be deployed -type: Opaque -data: - ## Provide the credential key(s) for your LLM provider, for example: - ## AWS_BEARER_TOKEN_BEDROCK: # For AWS Bedrock - ## OPENAI_API_KEY: # For OpenAI - ## GOOGLE_API_KEY: # For Gemini - ## ANTHROPIC_API_KEY: # For Anthropic +devtronEnterprise: + athenaApi: + secrets: + # Use the key that matches your LLM provider (one of): + OPENAI_API_KEY: "" # OpenAI + # AWS_BEARER_TOKEN_BEDROCK: "" # AWS Bedrock + # GEMINI_API_KEY: "" # Gemini + # ANTHROPIC_API_KEY: "" # Anthropic ``` -#### Method B: Using kubectl command +:::caution +Do not commit real credentials to a values file in Git. Supply them at install/upgrade time (for example, a separate secrets values file or your installer's secret store). +::: -:::tip -Unlike [Method A](#method-a-using-create-resource), this method doesn't require you to base64-encode your credential. +:::note +Athena uses **LiteLLM**, so the credential key name is LiteLLM's standard variable for your provider, selected by the `LLM_MODEL_ID` prefix you set in Step 3 — for example `OPENAI_API_KEY` (OpenAI), `ANTHROPIC_API_KEY` (Anthropic), `GEMINI_API_KEY` (Gemini), or AWS credentials for `bedrock/...` models (`AWS_BEARER_TOKEN_BEDROCK`, or `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` + `AWS_REGION_NAME`). ::: -1. Go to Devtron's [Resource Browser](./resource-browser/README.md) and click the terminal icon next to the target cluster. +### 3. Enable and Configure Athena -2. Create the secret (use the key name matching your LLM provider): +Enable Athena and set your model in the chart's `devtronEnterprise.athenaApi` values (or pass `--set devtron.devtronEnterprise.athenaApi.enabled=true` at install/upgrade time): -```bash -kubectl create secret generic ai-secret \ - --namespace= \ - --from-literal=AWS_BEARER_TOKEN_BEDROCK='your-token-here' -# --from-literal=OPENAI_API_KEY='openai-key-here' +```yaml +devtronEnterprise: + athenaApi: + enabled: true + configs: + LLM_MODEL_ID: "" # e.g. gpt-4o, claude-<...>, gemini/<...>, bedrock/<...> + LLM_TEMPERATURE: "0.01" # default + REDIS_URL: redis://redis.devtroncd # bundled Redis (default — leave as-is) + PG_DATABASE: athena # dedicated Athena database (default — leave as-is) + secrets: + # your LLM credential from Step 2 ``` - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/secret-using-kubectl.jpg) -
Figure 2: Creating Secret using Cluster Terminal
- -### 3. Deploy the Athena Microservices - -Deploy the Athena backend as **independent applications** on the cluster where the Devtron orchestrator runs: - -* **athena-mcp-engine** — exposes Devtron operations to the agent at `/devtron/mcp`. -* **athena-api-server** — the main chat/agent service (also runs the AI Debug capability via Holmes, in-process). -* **athena-worker-engine** — background worker for runbooks/remediation. -* **Redis** — shared cache used by the chat agent. Deploy it as a StatefulSet reachable at the `REDIS_URL` below. Without Redis, the agent falls back to an in-process cache (single replica only), so Redis is required when running more than one replica. +| Key | Description | +|:---|:---| +| `athenaApi.enabled` | Set to `true` to deploy the Athena backend (`athena-api` + `athena-mcp`). Default `false`. | +| `athenaApi.configs.LLM_MODEL_ID` | The chat/agent model. The format depends on the provider — e.g. `gpt-4o`, `claude-<...>`, `gemini/<...>`, `bedrock/<...>`. | +| `athenaApi.configs.LLM_TEMPERATURE` | LLM temperature. Default `0.01`. | +| `athenaApi.configs.REDIS_URL` | Connection to the bundled Redis cache. The chart defaults this to `redis://redis.devtroncd`; leave it unchanged unless you point Athena at an external Redis. | +| `athenaApi.configs.PG_DATABASE` | The database Athena uses within Devtron's PostgreSQL. Defaults to `athena` and is created automatically. | -Configure each service with the environment variables below. Provide sensitive values (LLM credentials, auth tokens) through the **Secret** from Step 2, not inline, and replace every `` with a value for your environment. +Applying these values deploys the `athena-api` and `athena-mcp` services and the Redis cache, and provisions the `athena` database. Wait until their pods are **Running** before continuing. -**athena-mcp-engine** - -| Variable | Example | Description | -|:---|:---|:---| -| `DEVTRON_API_ENDPOINT` | `https://` | Your Devtron server URL | -| `DOC_RAG_SEARCH_SERVER_URL` | `` | Documentation-search (RAG) endpoint | -| `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_DATABASE` | `` / `5432` / `` / `` | Postgres connection | -| `REQUIRED_RECOMMENDATION_DATA_COUNT` | `10` | Minimum data points required for recommendations | -| `SERVICE_PLATFORM` | `k8s` | Platform identifier | - -**athena-api-server** - -| Variable | Example | Description | -|:---|:---|:---| -| `DEVTRON_MCP_API_ENDPOINT` | `http://./devtron/mcp` | Endpoint of `athena-mcp-engine`, suffixed with `/devtron/mcp` | -| `REDIS_URL` | `redis://.:6379` | Redis shared-cache connection URL | -| `LLM_MODEL_ID` | `` | Chat LLM model, e.g. `bedrock/<...>`, `gpt-4o`, `gemini/<...>`, `claude-<...>` | -| `LLM_TEMPERATURE` | `0.01` | LLM temperature | -| `HOLMES_ENABLED` | `true` | Enables the AI Debug (Holmes) capability | -| `HOLMES_MODEL` | `` | LLM model Holmes uses for debugging | -| LLM credential | `` | Provider credential referenced from the Step 2 Secret (e.g., `AWS_BEARER_TOKEN_BEDROCK`, `OPENAI_API_KEY`) | -| `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN` | `` | Shared auth token between the API server and worker engine | -| `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_DATABASE` | `` / `5432` / `` / `` | Postgres connection | - -Optional chat-agent tuning (defaults shown; set only to override): - -| Variable | Default | Description | -|:---|:---|:---| -| `CHAT_AGENT_MAX_LLM_TURNS` | `7` | Max LLM reasoning turns per request | -| `CHAT_AGENT_MAX_TOOL_TOKENS` | `50000` | Total token budget across tool responses per request | -| `CHAT_AGENT_MAX_TOOL_CALLS` | `30` | Max tool calls allowed per LLM turn | - -**athena-worker-engine** - -| Variable | Example / Default | Description | -|:---|:---|:---| -| `DEVTRON_WORKER_ENGINE_SERVICE_AUTH_TOKEN` | `` | Shared auth token — must match the value set on `athena-api-server` | -| `DEVTRON_MCP_API_ENDPOINT` | `http://./devtron/mcp` | Same `athena-mcp-engine` endpoint as the API server | -| `LLM_MODEL_ID` | `` | LLM model for the worker | -| `LLM_TEMPERATURE` | `0.1` | LLM temperature | -| `PG_ADDR` / `PG_PORT` / `PG_USER` / `PG_PASSWORD` / `PG_DATABASE` | `` / `5432` / `` / `` / `` | Postgres connection | -| `MAX_CONCURRENT_RECOMMENDATION_TASKS` | `4` | (optional) Max concurrent recommendation tasks | -| `MAX_REACT_AGENT_ITERATIONS` | `20` | (optional) Max ReAct agent iterations per task | -| `SUPPORTED_UPDATE_WORKLOAD_KINDS` | `Deployment,StatefulSet,DaemonSet,ReplicaSet` | (optional) Workload kinds the worker may patch during remediation | - -After deploying, note the ClusterIP **service endpoints** (format `.:`) of `athena-api-server` and `athena-mcp-engine` — you will need them for `DEVTRON_MCP_API_ENDPOINT` above and `PROXY_SERVICE_CONFIG` in Step 4. +:::note +How you apply these values depends on how your Devtron is installed. If Devtron manages your cluster for you, ask your Devtron/DevOps contact to enable `athenaApi` with your model and credential instead. +::: ### 4. Update ConfigMaps @@ -166,13 +111,13 @@ In the cluster where the Devtron orchestrator is running, go to **Infrastructure ```yaml FEATURE_ASK_DEVTRON_EXPERT: "true" - PROXY_SERVICE_CONFIG: '{"athena":{"host":"","port":"80"}}' + PROXY_SERVICE_CONFIG: '{"athena":{"host":"","port":"80"}}' ``` | Key | Description | |:---|:---| | `FEATURE_ASK_DEVTRON_EXPERT` | Enables the **Ask Devtron Expert** chatbot (default `false`). | - | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Replace `` with the `athena-api-server` service endpoint from Step 3. | + | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Set `host` to the **`athena-api` Kubernetes Service name** created by the chart in Step 3 — confirm the exact name with `kubectl get svc -n \| grep athena`. | * **dashboard-cm** — enable AI integration and (optionally) AI Debug Mode: From 03f79aafa2b30a15e240a37f9744e04846c68686 Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 10 Jul 2026 10:49:29 +0530 Subject: [PATCH 14/15] docs(ai): revamp Devtron Intelligence guide around the enterprise-chart (athenaApi) install flow --- docs/user-guide/devtron-intelligence.md | 106 +++++++++++------------- 1 file changed, 50 insertions(+), 56 deletions(-) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index 906fbfbd76..262d5ee1fa 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -1,6 +1,3 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - # Using Devtron Intelligence ## What is Devtron Intelligence (AI Agent) @@ -12,10 +9,6 @@ Check out the [Results](#results) section to see where Devtron gives you AI-powe ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/devtron-ai-assist-v3.gif)
Figure 1: Devtron Intelligence for AI-assisted Debugging
-### Tutorial - -
- ## Capabilities Devtron Intelligence is an AI agent that can reason over your Devtron-managed Kubernetes estate and assist you across several areas: @@ -34,47 +27,35 @@ Devtron Intelligence is an AI agent that can reason over your Devtron-managed Ku --- -## Steps to Configure Devtron Intelligence +## How It Works -:::caution Who Can Perform This Action? -User must have permissions to: - * Deploy applications (with environment access) - * Edit the ConfigMaps of the cluster where Devtron is running - * Restart the pods -::: +Devtron Intelligence is powered by the **Athena** backend, which is deployed by the **Devtron enterprise Helm chart** on the cluster where the orchestrator runs. When enabled, it brings up three services: -Devtron Intelligence is powered by the **Athena** backend, which is deployed by the Devtron enterprise Helm chart on the cluster where the orchestrator runs. When enabled, it brings up three services — **`athena-api`** (the agent/chat service, which also runs the AI Debug capability via Holmes), **`athena-mcp`** (the MCP engine that exposes Devtron operations to the agent), and a background **worker engine** (recommendations and remediation) — backed by a bundled **Redis** cache and a dedicated **`athena`** database in Devtron's PostgreSQL. You enable and configure it through the chart's `devtronEnterprise.athenaApi` values, as described below. +* **`athena-api`** — the agent/chat service; it also runs the AI Debug capability via Holmes. +* **`athena-mcp`** — the MCP engine that exposes Devtron operations to the agent. +* **worker engine** — a background worker for recommendations and remediation. -### 1. Get API Key from LLM +These are backed by a bundled **Redis** cache and a dedicated **`athena`** database in Devtron's PostgreSQL. You enable and configure the whole backend through the chart's `devtronEnterprise.athenaApi` values, then turn the feature on in Devtron. -Devtron Intelligence supports all major large language models (LLM), e.g., OpenAI, Gemini, AWS Bedrock, Anthropic, and many more. Generate an API key (or credential) for the LLM of your choice. +## Prerequisites -### 2. Provide the LLM Credential +Before you begin, make sure you have: -Athena reads your LLM provider credential from the chart's `athenaApi.secrets`. Add it there using the key name your provider expects — the chart renders these into a Kubernetes Secret that `athena-api` consumes: +* **Devtron Enterprise** — Devtron Intelligence (the Athena backend) is an enterprise-only capability. +* **An LLM provider API key** — a credential for the model provider you want to use (OpenAI, Anthropic, Gemini, AWS Bedrock, or any other [LiteLLM](https://docs.litellm.ai/)-supported provider). +* **Access** — the ability to set values on the Devtron enterprise Helm chart (or a DevOps contact who can), plus permission to edit **ConfigMaps** and restart **workloads** on the cluster where the Devtron orchestrator runs. -```yaml -devtronEnterprise: - athenaApi: - secrets: - # Use the key that matches your LLM provider (one of): - OPENAI_API_KEY: "" # OpenAI - # AWS_BEARER_TOKEN_BEDROCK: "" # AWS Bedrock - # GEMINI_API_KEY: "" # Gemini - # ANTHROPIC_API_KEY: "" # Anthropic -``` +--- -:::caution -Do not commit real credentials to a values file in Git. Supply them at install/upgrade time (for example, a separate secrets values file or your installer's secret store). -::: +## Steps to Configure Devtron Intelligence -:::note -Athena uses **LiteLLM**, so the credential key name is LiteLLM's standard variable for your provider, selected by the `LLM_MODEL_ID` prefix you set in Step 3 — for example `OPENAI_API_KEY` (OpenAI), `ANTHROPIC_API_KEY` (Anthropic), `GEMINI_API_KEY` (Gemini), or AWS credentials for `bedrock/...` models (`AWS_BEARER_TOKEN_BEDROCK`, or `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` + `AWS_REGION_NAME`). -::: +### 1. Get an LLM API Key -### 3. Enable and Configure Athena +Devtron Intelligence supports all major LLM providers (OpenAI, Gemini, AWS Bedrock, Anthropic, and more, via LiteLLM). Generate an API key (or credential) for the provider you want to use — you will supply it to the chart in the next step. -Enable Athena and set your model in the chart's `devtronEnterprise.athenaApi` values (or pass `--set devtron.devtronEnterprise.athenaApi.enabled=true` at install/upgrade time): +### 2. Enable and Configure Athena (Enterprise Chart) + +Athena is configured **while installing (or upgrading) the Devtron enterprise Helm chart** — there is no separate installer for it. Provide the following under the chart's `devtronEnterprise.athenaApi` values (`enabled: true`, your model, and your LLM credential): ```yaml devtronEnterprise: @@ -86,26 +67,39 @@ devtronEnterprise: REDIS_URL: redis://redis.devtroncd # bundled Redis (default — leave as-is) PG_DATABASE: athena # dedicated Athena database (default — leave as-is) secrets: - # your LLM credential from Step 2 + # LLM credential — use the key name that matches your provider (one of): + OPENAI_API_KEY: "" # OpenAI + # AWS_BEARER_TOKEN_BEDROCK: "" # AWS Bedrock + # GEMINI_API_KEY: "" # Gemini + # ANTHROPIC_API_KEY: "" # Anthropic ``` | Key | Description | |:---|:---| -| `athenaApi.enabled` | Set to `true` to deploy the Athena backend (`athena-api` + `athena-mcp`). Default `false`. | +| `athenaApi.enabled` | Set to `true` to deploy the Athena backend (`athena-api`, `athena-mcp`, and the worker engine). Default `false`. | | `athenaApi.configs.LLM_MODEL_ID` | The chat/agent model. The format depends on the provider — e.g. `gpt-4o`, `claude-<...>`, `gemini/<...>`, `bedrock/<...>`. | | `athenaApi.configs.LLM_TEMPERATURE` | LLM temperature. Default `0.01`. | -| `athenaApi.configs.REDIS_URL` | Connection to the bundled Redis cache. The chart defaults this to `redis://redis.devtroncd`; leave it unchanged unless you point Athena at an external Redis. | +| `athenaApi.configs.REDIS_URL` | Connection to the bundled Redis cache. Defaults to `redis://redis.devtroncd`; leave unchanged unless you point Athena at an external Redis. | | `athenaApi.configs.PG_DATABASE` | The database Athena uses within Devtron's PostgreSQL. Defaults to `athena` and is created automatically. | +| `athenaApi.secrets` | Your LLM credential. The chart renders it into a Kubernetes Secret that Athena consumes. | + +:::note +Athena uses **LiteLLM**, so the credential key name is LiteLLM's standard variable for your provider, selected by the `LLM_MODEL_ID` prefix — for example `OPENAI_API_KEY` (OpenAI), `ANTHROPIC_API_KEY` (Anthropic), `GEMINI_API_KEY` (Gemini), or AWS credentials for `bedrock/...` models (`AWS_BEARER_TOKEN_BEDROCK`, or `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` + `AWS_REGION_NAME`). +::: + +:::caution +Do not commit real credentials to a values file in Git. Supply them at install/upgrade time (for example, a separate secrets values file or your installer's secret store). +::: -Applying these values deploys the `athena-api` and `athena-mcp` services and the Redis cache, and provisions the `athena` database. Wait until their pods are **Running** before continuing. +**Install or upgrade the Devtron enterprise chart with these values applied** (via your Devtron installer or `helm upgrade`). This deploys the `athena-api`, `athena-mcp`, and worker services, the Redis cache, and provisions the `athena` database. Wait until the Athena pods are **Running** before continuing. :::note -How you apply these values depends on how your Devtron is installed. If Devtron manages your cluster for you, ask your Devtron/DevOps contact to enable `athenaApi` with your model and credential instead. +How you apply these values depends on how your Devtron is installed. If Devtron manages your cluster for you, ask your Devtron/DevOps contact to enable `athenaApi` with your model and credential. ::: -### 4. Update ConfigMaps +### 3. Enable the Feature in Devtron -In the cluster where the Devtron orchestrator is running, go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Config & Storage** → **ConfigMap**, and edit: +Once the Athena pods are running, turn the feature on in Devtron. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Config & Storage** → **ConfigMap**, and edit: * **orchestrator-cm** — enable the chatbot and register the Athena service proxy: @@ -117,7 +111,7 @@ In the cluster where the Devtron orchestrator is running, go to **Infrastructure | Key | Description | |:---|:---| | `FEATURE_ASK_DEVTRON_EXPERT` | Enables the **Ask Devtron Expert** chatbot (default `false`). | - | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Set `host` to the **`athena-api` Kubernetes Service name** created by the chart in Step 3 — confirm the exact name with `kubectl get svc -n \| grep athena`. | + | `PROXY_SERVICE_CONFIG` | Routes requests from the orchestrator to the Athena API server. Set `host` (and `port`) to the **`athena-api` Kubernetes Service** created by the chart in Step 2 — confirm the exact name and port with `kubectl get svc -n \| grep athena`. | * **dashboard-cm** — enable AI integration and (optionally) AI Debug Mode: @@ -131,14 +125,14 @@ In the cluster where the Devtron orchestrator is running, go to **Infrastructure | `FEATURE_AI_INTEGRATION_ENABLE` | Master switch that enables the **Explain with AI** buttons across the UI. | | `FEATURE_ATHENA_DEBUG_MODE_ENABLE` | When `true`, using **Explain with AI** opens the Holmes debugger as a new chat in the **Ask Devtron** side panel. When `false` (default), the AI response appears in a draggable widget. | -### 5. Restart Pods and Perform Hard Refresh +### 4. Restart and Hard Refresh -1. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Workloads** → **Deployment**, and restart the following deployments using the **`⟳`** button: +1. Go to **Infrastructure Management** → **Resource Browser** → (Select Cluster) → **Workloads** → **Deployment**, and restart the following using the **`⟳`** button so they pick up the ConfigMap changes: * `devtron` * `dashboard` ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/restart-deployments.jpg) -
Figure 3: Restart 'devtron' and 'dashboard' deployment workloads
+
Figure 2: Restart 'devtron' and 'dashboard' deployment workloads
2. Perform a hard refresh of the browser to clear the cache: * **Mac**: Hold down `Cmd` and `Shift` and then press `R` @@ -148,45 +142,45 @@ In the cluster where the Devtron orchestrator is running, go to **Infrastructure ## Results -Devtron supports **Explain** option at the following screens (only for specific scenarios where troubleshooting is possible through AI): +Devtron supports the **Explain** option at the following screens (only for specific scenarios where troubleshooting is possible through AI): ### Pod Errors **Path**: Infrastructure Management → Resource Browser → (Select Cluster) → Workloads → Pod ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/explain-with-ai.jpg) -
Figure 4a: AI Explain for Pod Issues
+
Figure 3a: AI Explain for Pod Issues
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/ai-explanation.jpg) -
Figure 4b: AI-assisted Troubleshooting
+
Figure 3b: AI-assisted Troubleshooting
### Pod Last Restart Snapshot **Path**: Infrastructure Management → Resource Browser → (Select Cluster) → Workloads → Pod → Pod Last Restart Snapshot ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/pod-restart-explain.jpg) -
Figure 5: AI Explain for Pod Restart Snapshot
+
Figure 4: AI Explain for Pod Restart Snapshot
### Event Errors **Path**: Infrastructure Management → Resource Browser → (Select Cluster) → Events ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/events-explain.jpg) -
Figure 6: AI Explain for Event Errors
+
Figure 5: AI Explain for Event Errors
### App Details - Application Status **Path**: Application Management → Applications → (Select Application) → App Details → Application Status Drawer ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/appstatus-drawer-explain1.jpg) -
Figure 7a: AI Explain at Application Status
+
Figure 6a: AI Explain at Application Status
![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/appstatus-drawer-explain2.jpg) -
Figure 7b: AI Explain at Application Status Drawer
+
Figure 6b: AI Explain at Application Status Drawer
### App Details - K8s Resources **Path**: Application Management → Applications → (Select Application) → App Details → K8s Resources (tab) → Workloads ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/kubernetes-resource-browser/devtron-intelligence/app-workload-explain.jpg) -
Figure 8: AI Explain at K8s Resources (tab)
+
Figure 7: AI Explain at K8s Resources (tab)
From 296c6a20208d576ef227c3ad444266d6b447858b Mon Sep 17 00:00:00 2001 From: mayank-devtron Date: Fri, 10 Jul 2026 10:59:37 +0530 Subject: [PATCH 15/15] docs(ai): link Devtron Intelligence prerequisites to enterprise install + license, add setup overview --- docs/user-guide/devtron-intelligence.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/devtron-intelligence.md b/docs/user-guide/devtron-intelligence.md index 262d5ee1fa..f694a602b8 100755 --- a/docs/user-guide/devtron-intelligence.md +++ b/docs/user-guide/devtron-intelligence.md @@ -41,7 +41,7 @@ These are backed by a bundled **Redis** cache and a dedicated **`athena`** datab Before you begin, make sure you have: -* **Devtron Enterprise** — Devtron Intelligence (the Athena backend) is an enterprise-only capability. +* **Devtron Enterprise** — Devtron Intelligence (the Athena backend) is an enterprise-only capability. If you don't have it yet, [install Devtron](../setup/install/README.md) and [activate an Enterprise license](../setup/install/devtron-freemium.md#update-license) first. * **An LLM provider API key** — a credential for the model provider you want to use (OpenAI, Anthropic, Gemini, AWS Bedrock, or any other [LiteLLM](https://docs.litellm.ai/)-supported provider). * **Access** — the ability to set values on the Devtron enterprise Helm chart (or a DevOps contact who can), plus permission to edit **ConfigMaps** and restart **workloads** on the cluster where the Devtron orchestrator runs. @@ -49,13 +49,15 @@ Before you begin, make sure you have: ## Steps to Configure Devtron Intelligence +Setting up Devtron Intelligence takes four steps: get an LLM API key, enable Athena while installing/upgrading the enterprise chart, turn the feature on in Devtron, and restart the affected workloads. + ### 1. Get an LLM API Key Devtron Intelligence supports all major LLM providers (OpenAI, Gemini, AWS Bedrock, Anthropic, and more, via LiteLLM). Generate an API key (or credential) for the provider you want to use — you will supply it to the chart in the next step. ### 2. Enable and Configure Athena (Enterprise Chart) -Athena is configured **while installing (or upgrading) the Devtron enterprise Helm chart** — there is no separate installer for it. Provide the following under the chart's `devtronEnterprise.athenaApi` values (`enabled: true`, your model, and your LLM credential): +Athena is configured **while [installing or upgrading](../setup/install/README.md) the Devtron enterprise Helm chart** — there is no separate installer for it. Provide the following under the chart's `devtronEnterprise.athenaApi` values (`enabled: true`, your model, and your LLM credential): ```yaml devtronEnterprise: