Diagnose blueprint sync¶
Arguments: $ARGUMENTS
A blueprint is an addon stack (dependencies form a graph) that Rafay syncs to Kubernetes. Required inputs are the cluster name and the project name (always supply the project explicitly). After rafay_get on the cluster, read the blueprint name and version from the cluster object—then load that blueprint and compare to cluster_addon list sync state; that list usually shows which addons failed or are stuck. Use kubectl only when you need on-cluster evidence.
Inputs¶
| Key | Required | Description |
|---|---|---|
cluster_name |
Yes | Rafay cluster resource name. |
project_name |
Yes | Rafay project that owns the cluster. Always supply explicitly—do not rely on RAFAY_PROJECT or other defaults. |
If cluster_name or project_name is missing, stop and ask the user to supply both:
cluster_name: <cluster>
project_name: <project>
MCP mapping: cluster_name → name on rafay_get / rafay_list / rafay_execute when resource_type=cluster; project_name → project-name on every Rafay call (required).
Prerequisites¶
- rafay MCP authenticated; pass
project-nameon every call using the suppliedproject_name(do not skip it becauseRAFAY_PROJECTis set). - Before calling tools, read schemas from the host’s rafay MCP tool descriptors.
Steps¶
-
Inputs — Confirm
cluster_nameandproject_namefrom the user (or the YAML block above). Do not require the user to supply a blueprint name; it should come from the cluster. -
Cluster —
rafay_getwithresource_type=cluster,name=cluster_name, andproject-name=project_name. From the payload, take the blueprint name and version (or equivalent fields the API uses—use the returned field names verbatim). If no blueprint is attached or fields are missing, say so and stop or ask for corrected cluster/project context; only then considerrafay_listresource_type=blueprintas a fallback for discovery, not as the default path. -
Blueprint —
rafay_getwithresource_type=blueprint,name= blueprint name from step 2, andproject-name=project_name. -
Versions —
rafay_listwithresource_type=blueprint_version,name= that same blueprint name, andproject-name=project_name. Relate the cluster’s version to this list. -
Addons on cluster —
rafay_listwithresource_type=cluster_addon,name=cluster_name, andproject-name=project_name. This list is the primary place to see what failed or is stuck: use status, conditions, messages, or other fields exactly as the API returns them. Compare to the blueprint version from steps 2–4; note pending or mismatched addons and dependency order if the response shows it. -
kubectl (optional) — If
cluster_addondata is not enough:rafay_executewithresource_type=cluster,action=kubectl, clustername=cluster_name, andproject-name=project_name. -
Summarize — What the cluster reports for blueprint binding, what the blueprint/version catalog shows, vs
cluster_addonsync; drift, blockers, and next steps. On auth errors, 404s, or missing blueprint on the cluster, state the blocker and what is missing.