cluster_search
Postgres full-text search over the agent's synced resource index (the k8s_resources cache): a Postgres read, NOT a live cluster read - it never contacts the agent and never escalates on its own. Use it for fuzzy keyword lookups: 'find anything mentioning prometheus', 'workloads using the nginx image', 'recent warning events about scheduling'. Returns top-K ranked hits with citations. Every hit carries last_seen_at and staleness_seconds: seconds since the sync last CONFIRMED the row, not since it changed (unchanged rows are re-confirmed on a heartbeat, K8S_LAST_SEEN_REFRESH_SECONDS, default 480, so a few hundred seconds is healthy). The payload carries an advisory stale_fallback_required, set when any returned hit is older than K8S_CACHE_MAX_STALENESS_SECONDS (default 300). Treat a hit as a pointer: read the object itself with cluster_describe, or through the agent (describe_resource) when you need it live. No external API; runs entirely in Postgres. Reads ONE cluster: the conversation's, or the one cluster_name / cluster_id names; off-cluster with several readable clusters it refuses and lists them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | Optional kind filter to scope the search. | |
| limit | No | Maximum hits to return (default 20, max 100). | |
| query | Yes | Search query - websearch_to_tsquery syntax (quoted phrases, AND/OR, NOT supported). | |
| cluster_id | Yes | Ankra cluster id (UUID) the call targets. Discover ids with list_clusters. | |
| namespaces | No | Optional namespace filter to scope the search. |