Skip to content

Adding Crossplane Toolset - #1839

Merged
moshemorad merged 8 commits into
HolmesGPT:masterfrom
mrinalpravi:feat/crossplane-toolset
Apr 21, 2026
Merged

moshemorad merged 8 commits into
HolmesGPT:masterfrom
mrinalpravi:feat/crossplane-toolset

Conversation

@mrinalpravi

@mrinalpravi mrinalpravi commented Mar 25, 2026 •

Copy link
Copy Markdown
Contributor

Added new toolset: crossplane/core

Added support for querying Crossplane resources using kubectl

  • Implemented tools covering:
  • Providers & ProviderRevisions
  • ProviderConfigs
  • CompositeResourceDefinitions (XRDs)
  • Compositions
  • Claims & Composite Resources
  • Managed Resources & Events

Summary by CodeRabbit

  • New Features

    • Added Crossplane as a built-in data source and a suite of Crossplane inspection tools (providers, provider configs/revisions, XRDs/compositions, claims/composites, managed resources, events)
  • Documentation

    • Added comprehensive Crossplane toolset docs with prerequisites, configuration examples, common queries, and capabilities
    • Updated integrations list and toolset index to include Crossplane

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@linux-foundation-easycla

linux-foundation-easycla Bot commented Mar 25, 2026 •

Copy link
Copy Markdown

CLA Signed

The committers listed above are authorized under a signed CLA.

@coderabbitai

coderabbitai Bot commented Mar 25, 2026 •

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a new Crossplane built-in toolset: documentation, navigation entries, and a toolset manifest exposing kubectl-based tools and LLM guidance to inspect Crossplane providers, revisions/configs, XRDs, compositions, claims/composites, managed resources, and related events.

Changes

Cohort / File(s) Summary
Top-level docs & nav
README.md, docs/data-sources/builtin-toolsets/.nav.yml, docs/data-sources/builtin-toolsets/index.md, docs/why-holmesgpt.md
Added Crossplane entry to Data Sources table, navigation, builtin-toolsets index card, and Infrastructure integrations list.
Crossplane toolset documentation
docs/data-sources/builtin-toolsets/crossplane.md
New detailed doc: prerequisites (Crossplane, kubectl RBAC), Holmes CLI and Robusta/Helm config examples, troubleshooting prompts, and described capabilities for crossplane_* tools.
Toolset manifest
holmes/plugins/toolsets/crossplane.yaml
New toolset toolsets.crossplane/core with LLM investigation guidance, prerequisite kubectl api-resources ... providers check, and declared tools (list/get providers, revisions, ProviderConfigs, XRDs, compositions, claims/composites, managed resources, events, and managed-by-composite queries).

Sequence Diagram(s)

sequenceDiagram
  participant User as User
  participant LLM as HolmesGPT (LLM)
  participant ToolRunner as Tool Runner
  participant KubeAPI as Kubernetes API (Crossplane CRDs)

  User->>LLM: Ask Crossplane troubleshooting question
  LLM->>ToolRunner: Select ordered crossplane_* tools
  ToolRunner->>KubeAPI: Run kubectl queries (providers, XRDs, compositions, claims, managed resources, events)
  KubeAPI-->>ToolRunner: Return YAML / events
  ToolRunner-->>LLM: Provide tool outputs
  LLM-->>User: Synthesized analysis and suggested next steps
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • arikalon1
  • aantn
  • moshemorad
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Adding Crossplane Toolset' directly and clearly summarizes the main change—introduction of a new Crossplane toolset—which aligns with the primary objective across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify

netlify Bot commented Mar 25, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for holmes-docs ready!

Name Link
🔨 Latest commit b2d3663
🔍 Latest deploy log https://app.netlify.com/projects/holmes-docs/deploys/69e5772de8b06c00084cfd19
😎 Deploy Preview https://deploy-preview-1839--holmes-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Signed-off-by: Mrinal P R <mrinalpr1998@gmail.com>
@mrinalpravi
mrinalpravi force-pushed the feat/crossplane-toolset branch from 82ecf61 to 55e87b4 Compare March 25, 2026 12:23

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/data-sources/builtin-toolsets/crossplane.md`:
- Around line 82-102: Remove the entire "## Capabilities" section and the
included snippet list from the Crossplane toolset docs: delete the header "##
Capabilities", the include line --8<-- "snippets/toolset_capabilities_intro.md",
and the Markdown table rows that list tools (e.g., entries like
crossplane_list_providers, crossplane_get_provider, etc.), leaving the rest of
the document intact so capabilities are no longer enumerated in docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 959a8b7a-80dd-4bb2-9ddb-9d4d363b7949

📥 Commits

Reviewing files that changed from the base of the PR and between 2b95136 and 82ecf61ce71ee30cef6cf785e28342b14f55cd17.

⛔ Files ignored due to path filters (1)
  • images/integration_logos/crossplane-icon.png is excluded by !**/*.png
📒 Files selected for processing (6)
  • README.md
  • docs/data-sources/builtin-toolsets/.nav.yml
  • docs/data-sources/builtin-toolsets/crossplane.md
  • docs/data-sources/builtin-toolsets/index.md
  • docs/why-holmesgpt.md
  • holmes/plugins/toolsets/crossplane.yaml

Comment thread docs/data-sources/builtin-toolsets/crossplane.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
docs/data-sources/builtin-toolsets/crossplane.md (1)

82-102: ⚠️ Potential issue | 🟠 Major

Remove the Capabilities section and tool table.

This section enumerates toolset capabilities, which should not be documented here and will quickly go stale.

Proposed change
-## Capabilities
-
---8<-- "snippets/toolset_capabilities_intro.md"
-
-| Tool Name | Description |
-|-----------|-------------|
-| crossplane_list_providers | List all installed Crossplane providers with their health status |
-| crossplane_get_provider | Get detailed status of a specific provider including conditions |
-| crossplane_list_provider_revisions | List provider revisions to check for upgrade issues |
-| crossplane_list_provider_configs | List ProviderConfigs to check credential configurations |
-| crossplane_get_provider_config | Get detailed ProviderConfig including credential source |
-| crossplane_list_xrds | List all CompositeResourceDefinitions (XRDs) |
-| crossplane_get_xrd | Get details of a specific XRD including schema and versions |
-| crossplane_list_compositions | List all Compositions |
-| crossplane_get_composition | Get details of a Composition including resource templates |
-| crossplane_get_claim | Get a claim's status, conditions, and composite resource reference |
-| crossplane_get_composite_resource | Get a composite resource with its composed resource references |
-| crossplane_list_managed_resources | List managed resources of a specific kind with sync status |
-| crossplane_get_managed_resource | Get full details of a managed resource including conditions and events |
-| crossplane_get_resource_events | Get Kubernetes events for a specific Crossplane resource |
-| crossplane_list_managed_by_composite | List all managed resources owned by a specific composite resource |

As per coding guidelines: "Don't list what a toolset/integration can do in documentation - users discover capabilities by using Holmes, and feature lists become stale quickly."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/data-sources/builtin-toolsets/crossplane.md` around lines 82 - 102,
Remove the entire "## Capabilities" section and the following tool table (the
block that lists tool names like crossplane_list_providers,
crossplane_get_provider, crossplane_list_provider_revisions,
crossplane_list_provider_configs, crossplane_get_provider_config,
crossplane_list_xrds, crossplane_get_xrd, crossplane_list_compositions,
crossplane_get_composition, crossplane_get_claim,
crossplane_get_composite_resource, crossplane_list_managed_resources,
crossplane_get_managed_resource, crossplane_get_resource_events,
crossplane_list_managed_by_composite). Ensure no leftover heading, paragraph, or
table markup remains so the document no longer enumerates toolset capabilities.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@docs/data-sources/builtin-toolsets/crossplane.md`:
- Around line 82-102: Remove the entire "## Capabilities" section and the
following tool table (the block that lists tool names like
crossplane_list_providers, crossplane_get_provider,
crossplane_list_provider_revisions, crossplane_list_provider_configs,
crossplane_get_provider_config, crossplane_list_xrds, crossplane_get_xrd,
crossplane_list_compositions, crossplane_get_composition, crossplane_get_claim,
crossplane_get_composite_resource, crossplane_list_managed_resources,
crossplane_get_managed_resource, crossplane_get_resource_events,
crossplane_list_managed_by_composite). Ensure no leftover heading, paragraph, or
table markup remains so the document no longer enumerates toolset capabilities.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 39923289-94eb-467f-9c35-3f46f60d7010

📥 Commits

Reviewing files that changed from the base of the PR and between 82ecf61ce71ee30cef6cf785e28342b14f55cd17 and 55e87b4.

⛔ Files ignored due to path filters (1)
  • images/integration_logos/crossplane-icon.png is excluded by !**/*.png
📒 Files selected for processing (6)
  • README.md
  • docs/data-sources/builtin-toolsets/.nav.yml
  • docs/data-sources/builtin-toolsets/crossplane.md
  • docs/data-sources/builtin-toolsets/index.md
  • docs/why-holmesgpt.md
  • holmes/plugins/toolsets/crossplane.yaml
✅ Files skipped from review due to trivial changes (4)
  • docs/data-sources/builtin-toolsets/index.md
  • docs/data-sources/builtin-toolsets/.nav.yml
  • README.md
  • docs/why-holmesgpt.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • holmes/plugins/toolsets/crossplane.yaml

Signed-off-by: Mrinal P R <mrinalpr1998@gmail.com>
@mrinalpravi
mrinalpravi force-pushed the feat/crossplane-toolset branch from 97b4088 to 9e8f479 Compare March 25, 2026 16:06
@mrinalpravi mrinalpravi changed the title feat: add crossplane toolset Add Crossplane Toolset Mar 25, 2026
@mrinalpravi mrinalpravi changed the title Add Crossplane Toolset Adding Crossplane Toolset Mar 26, 2026
@moshemorad

Copy link
Copy Markdown
Collaborator

@claude review

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — straightforward toolset addition following established patterns; the only finding is a minor README ordering nit (inline comment attached).

Extended reasoning...

Overview

This PR adds a new Crossplane built-in toolset: a crossplane.yaml tool manifest with 15 kubectl-based read-only tools, a new documentation page, and updates to README, nav, index, and the why-holmesgpt page.

Security risks

No security risks. All tools are read-only kubectl queries. Template parameters (e.g. {{ provider_name }}) follow the same pattern used by other toolsets in the codebase. No auth code, no credential handling.

Level of scrutiny

Low scrutiny warranted. This is a self-contained addition of a new toolset following the same conventions as ArgoCD, Cilium, and other infrastructure toolsets. The CodeRabbit feedback about the Capabilities table was already addressed by the author.

Other factors

The only bug found is a documentation ordering nit (Crossplane appears before Coralogix in the README table, violating alphabetical order) — no functional impact. The .nav.yml file correctly places Crossplane after Coralogix, showing the inconsistency is isolated to README.md.

Comment thread README.md Outdated
@mrinalpravi
mrinalpravi force-pushed the feat/crossplane-toolset branch 2 times, most recently from ad93c76 to da4e471 Compare April 20, 2026 00:41
Signed-off-by: Mrinal P R <mrinalpr1998@gmail.com>
@mrinalpravi
mrinalpravi force-pushed the feat/crossplane-toolset branch from da4e471 to 8e603f0 Compare April 20, 2026 00:44
@mrinalpravi

Copy link
Copy Markdown
Contributor Author

Thanks for the review @moshemorad . Addressed the review comments

@moshemorad
moshemorad merged commit 3bb91b9 into HolmesGPT:master Apr 21, 2026
20 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants