# Provision

## Step 2 - Create a Cluster Using the Cilium Blueprint

In this step, you will create a **MKS Cluster** in Rafay and attach the **Blueprint** you created in the previous step, which includes the **Cilium CNI Add-On** with **Hubble** and **Hubble UI** enabled.

---

### Prerequisites

- A **Blueprint** with **Cilium Add-On** configured (with `values.yaml` enabling **Hubble** and **Hubble UI**) — this was created in the previous step.
- Access to **Rafay Console** with permissions to create clusters.
- Access to your infrastructure (bare metal, virtual machines, or cloud instances) where you want to deploy the cluster.
- Machines with **Ubuntu** (or other supported OS like **RHEL**, **Ubuntu 24.04**, etc.) for this demo.

---

### Create MKS Cluster

1. Navigate to **Infrastructure > Clusters** in the **Rafay Console**.
2. Click **Create New Cluster**, then select **Create a New Cluster**.
3. Click **Data Center/Edge**, then select **Linux Installer > Upstream Kubernetes**.
4. Provide the following basic details:
   - **Cluster Name** (e.g., `mks-demo-cilium`)

5. Click **Continue**.
6. In the **General** section, ensure:
   - **K8s Version**: Select the Kubernetes version you want to use for creating the cluster.
   - **Blueprint**: Select the **Blueprint** you created earlier with the **Cilium Add-On**.
7. In the **Advanced** section, ensure the following:
   - **Cluster Networking**: Select **CNI - via Blueprint**, since the CNI will be applied through the Blueprint.

8. Continue

---

### Prepare Nodes

1. SSH into your Ubuntu machine.
2. In the Rafay Console, click on the newly created **Cluster**.
3. Copy the **node installer command** shown under the **Linux Installer** tab.

4. Paste and run the command in the terminal on your Ubuntu machine.
5. Once the node appears in the **Nodes** screen in the console, approve the node.
6. After approval, configure the node with the following roles:
   - Master
   - Worker
7. Click **Save**.
8. Click **Provision** to start the cluster provisioning process.

Once the cluster is fully provisioned and its status shows **Healthy** and **READY**, you will see **Cilium** pods and **Hubble** pods deployed on the cluster.

---

### Access Hubble UI (Optional)

In this guide, **Hubble UI** is exposed using **NodePort** for simplicity. After the cluster is up, you can access **Hubble UI** via:
