# Update Blueprint

Post cluster provision, users can update the blueprint anytime in two (2) approaches:

## Approach 1: Blueprint Sync Status

- Login to the controller and click **Clusters** under Infrastructure
- Select the required cluster and click the **Blueprint Sync** success status icon

Below is an example of a cluster with **minimal** Blueprint

- Click **Update Blueprint** available at the top right corner of the screen
- Select the required **Blueprint** (example: **default**) and **Version** (if applicable) from the drop-down
- Click **Save and Publish**

When a user attempts to update a blueprint during an ongoing blueprint sync, the following error occurs:

**_Blueprint is being synced, please retry after current sync has completed. A force update may leave your cluster in an unpredictable state_**

Enabling the **Force Sync** option triggers the blueprint sync forcefully on the cluster, even if a previous sync is in progress, and overrides the changes.

Blueprint Sync process begins and shows the status as **In Progress**

Once the update is complete, the status changes to **Success**. Users can view the list of Blueprint Sync Add-Ons and Events

---

## Approach 2: Update Blueprint Option

- Login to the controller and click **Clusters** under Infrastructure
- Select the required cluster and click on the gear icon
- Click **Update Blueprint**

Below is an example of a cluster with **default** Blueprint

- Select the required **Blueprint** (example: **minimal**) and **Version** (if applicable) from the drop-down
- Click **Save and Publish**

Blueprint Sync process begins and once updated, the status shows **Success**

**K8s Resources Deployed by Blueprints**

When updating a cluster with a custom blueprint, it is important to understand what Kubernetes resources will be deployed as part of the blueprint. This helps in planning and validating changes before applying them to production environments.

To assist with this, the following table lists the Kubernetes resource(s) deployed during the blueprint update:

| Blueprint | Chart | Components | Deployed as |
| --- | --- | --- | --- |
| minimal | v2-relay-agent | v2-relay-agent | Deployment |
|  | v2-infra | rafay-connector | Deployment |
|  |  | controller-manager-v3 | Deployment |
|  | v2-edge-client | edge-client | Deployment |
| default | v2-relay-agent | v2-relay-agent | Deployment |
|  | v2-infra | rafay-connector | Deployment |
|  |  | controller-manager-v3 | Deployment |
|  | v2-edge-client | edge-client | Deployment |
|  | rafay-prometheus | rafay-prometheus-adapter | Deployment |
|  |  | rafay-prometheus-alertmanager | Deployment |
|  |  | rafay-prometheus-helm-exporter | Deployment |
|  |  | rafay-prometheus-kube-state-metrics | Deployment |
|  |  | rafay-prometheus-metrics-server | Deployment |
|  |  | rafay-prometheus-node-exporter | Daemonset |
|  |  | rafay-prometheus-server | Statefulset |
|  | v2-ingress-infra | ingress-controller-v1-controller | Daemonset |
|  | openebs-localpv | localpv-provisioner | Deployment |
|  | aws-node-termination-handler | aws-node-termination-handler | Daemonset |
|  | aws-ebs-csi-driver | ebs-csi-controller | Daemonset |
|  |  | ebs-csi-node | Daemonset |

> ℹ️ **Note:** K8s resource details for other blueprints will be available soon.

---

## "No Change" in Blueprint Sync

When updating a blueprint, synchronization occurs only if there are changes to the add-ons in that specific blueprint version. Only the relevant components are updated, and for all other components that haven’t changed, it is considered a no operation and hence the system displays "No Change."

However, if an add-on failed in the previous sync, it will be retried in the next blueprint sync, even if it has not changed. Users also have the option to perform a Force Sync, which re-applies all add-ons regardless of whether they have been modified.

---

## Failed Blueprint Sync

Blueprint Sync can fail if the user had misconfigured the cluster configuration (e.g. invalid Blueprint, versions or Add-Ons) or encountered storage limits for resources. When this occurs, red indication appears to show the sync failure. Hover over the red indication or Failed status icon to view the reason for sync failure.

Users are allowed to edit the configuration and retry updating the Blueprint.
