|
2 | 2 | title: Plan your CycleCloud Workspace for Slurm Deployment
|
3 | 3 | description: A checklist to help plan for your CycleCloud Workspace for Slurm deployment
|
4 | 4 | author: xpillons
|
5 |
| -ms.date: 08/22/2024 |
6 |
| -ms.author: xpillons |
| 5 | +ms.date: 03/05/2025 |
| 6 | +ms.author: padmalathas |
7 | 7 | ---
|
8 | 8 |
|
9 | 9 | # Plan your CycleCloud Workspace for Slurm Deployment
|
10 |
| -You can deploy either a greenfield environment in which all resources needed for Azure CycleCloud Workspace for Slurm will be provisioned for you or a brownfield deployment for which you will provide existing resources. |
| 10 | + |
| 11 | +You have two deployment options for Azure CycleCloud Workspace for Slurm: |
| 12 | +- Greenfield environment: In this option, all the resources needed are provisioned for you. |
| 13 | +- Brownfield deployment: In this option, you provide the existing resources. |
11 | 14 |
|
12 | 15 | When doing a deployment, the Azure user account used need to be granted the following roles:
|
13 | 16 | - `Contributor` on the Subscription
|
14 | 17 | - `User Access Administrator` on the Subscription
|
15 | 18 |
|
| 19 | +> Note: It is recommended to pre-deploy a [Hub VNet](/azure/architecture/networking/architecture/hub-spoke) to connect to your enterprise network if one is not already established. This hub can accommodate a [VPN Gateway](/azure/vpn-gateway/tutorial-create-gateway-portal) and an Azure Bastion. The CycleCloud Workspace for Slurm environment will be a spoke and peered during deployment. |
| 20 | +
|
16 | 21 | ## Greenfield Deployment
|
17 | 22 |
|
18 |
| -In a greenfield deployment, the following resources and role assignments will be created: |
19 |
| -- Resource Group |
20 |
| -- The Virtual Network, its subnets `ccw-cyclecloud-subnet`, and `ccw-compute-subnet` |
21 |
| -- The Virtual Machine `ccw-cyclecloud-vm`, NIC, OS, Data Disks, and a System Managed Identity |
22 |
| -- A uniquely named storage account for CycleCloud projects |
23 |
| -- Network Security Group named `nsg-ccw-common` |
24 |
| -- `Contributor`, `Storage Account Contributor`, and `Storage Blob Data Contributor` roles at the subscription level for the CycleCloud VM System Managed Identity |
25 |
| -- Optionally a Bastion, subnet `AzureBastionSubnet`, and public IP `bastion-pip` |
26 |
| -- Optionally a NAT gateway named `ccw-nat-gateway` and public IP `pip-ccw-nat-gateway` |
27 |
| -- Optionally an Azure NetApp Files account, pool, and volume with subnet `hpc-anf-subnet` |
28 |
| -- Optionally an Azure Managed Lustre Filesystem with subnet `ccw-lustre-subnet` |
29 |
| -- Optionally a VNET Peering |
30 |
| -- Optionally a Private Endpoint to an existing Azure Database for MySQL flexible server instance |
| 23 | +In a greenfield deployment, the following resources and role assignments are created: |
| 24 | +- A Resource Group. |
| 25 | +- The Virtual Network, its subnets `ccw-cyclecloud-subnet`, and `ccw-compute-subnet`. |
| 26 | +- The Virtual Machine (VM) `ccw-cyclecloud-vm`, NIC, OS, Data Disks, and a System Managed Identity. |
| 27 | +- A User-Assigned Managed Identity used to access the CycleCloud storage account. |
| 28 | +- A uniquely named storage account for CycleCloud projects and a Private Endpoint in the `ccw-cyclecloud-subnet`. |
| 29 | +- Network Security Group (NSG) named `nsg-ccw-common`. |
| 30 | +- `Contributor`, `Storage Account Contributor`, and `Storage Blob Data Contributor` roles at the subscription level for the CycleCloud VM System Managed Identity. |
| 31 | +- Optionally a Bastion, subnet `AzureBastionSubnet`, and public IP `bastion-pip`. |
| 32 | +- Optionally a NAT gateway named `ccw-nat-gateway` and public IP `pip-ccw-nat-gateway`. |
| 33 | +- Optionally an Azure NetApp Files account, pool, and volume with subnet `hpc-anf-subnet`. |
| 34 | +- Optionally an Azure Managed Lustre Filesystem with subnet `ccw-lustre-subnet`. |
| 35 | +- Optionally a VNET Peering. |
| 36 | +- Optionally a Private Endpoint to an existing Azure Database for MySQL flexible server instance. |
31 | 37 |
|
32 | 38 | ## Brownfield Deployment
|
33 |
| -You will be able to provide existing resources for: |
34 |
| -- The VNET and subnets in which the environment will be deployed |
35 |
| -- Filesystem Storage for the users's home directories and/or additional filers, as external NFS mount points or Azure Managed Lustre Filesystem |
36 |
| -- an Azure Database for MySQL flexible server instance for Slurm Job Accounting |
37 |
| - |
38 |
| -If you bring your own VNET you have to follow these pre-requisistes: |
39 |
| -- a /29 **cyclecloud** subnet for the CycleCloud VM, with `Microsoft.Storage` Service Endpoint assigned, |
40 |
| -- a **compute** subnet for the nodes, with `Microsoft.Storage` Service Endpoint assigned. This is where the scheduler, login, and compute nodes will be created |
41 |
| -- when using Azure NetApp Files, a dedicated **netapp** subnet with the `Microsoft.NetApp/volumes` delegation as documented here [Azure NetApp Files](/azure/azure-netapp-files/azure-netapp-files-introduction). |
42 |
| -- when using Azure Managed Lustre Filesystem, a dedicated **lustre** subnet with a CIDR based on the storage capacity to provision as documented here [Azure Managed Lustre](/azure/azure-managed-lustre/amlfs-overview) |
43 |
| -- if deploying a Bastion, a dedicated **BastionSubnet** as documented [here](/azure/bastion/configuration-settings#subnet) |
| 39 | + |
| 40 | +In a brownfield deployment, you can provide existing resources for: |
| 41 | +- The VNET and subnets in which the environment is deployed. |
| 42 | +- Filesystem Storage for the user's home directories and/or other filers, as external NFS mount points or Azure Managed Lustre Filesystem (AMLS). |
| 43 | +- An Azure Database for MySQL flexible server instance for Slurm Job Accounting. |
| 44 | + |
| 45 | +If you're bringing your own VNET, follow these prerequisites: |
| 46 | +- A /29 **cyclecloud** subnet for the CycleCloud VM. |
| 47 | +- A **compute** subnet for the nodes, where the scheduler, login, and compute nodes are created. |
| 48 | +- When using Azure NetApp Files, a dedicated **netapp** subnet with the `Microsoft.NetApp/volumes` delegation as documented here [Azure NetApp Files](/azure/azure-netapp-files/azure-netapp-files-introduction). |
| 49 | +- When using Azure Managed Lustre Filesystem, a dedicated **lustre** subnet with a CIDR based on the storage capacity to provision as documented here [Azure Managed Lustre](/azure/azure-managed-lustre/amlfs-overview). |
| 50 | +- If deploying a Bastion, a dedicated **BastionSubnet** as documented [here](/azure/bastion/configuration-settings#subnet). |
44 | 51 | - Your NSGs should allow communications between subnets as defined in the [bicep/network-new.bicep](https://github.com/Azure/cyclecloud-slurm-workspace/blob/main/bicep/network-new.bicep) file.
|
45 | 52 |
|
46 | 53 | ## Quotas
|
47 |
| -Before deploying, ensure that your subscription has the required quota for the Virtual Machine types desired for CycleCloud nodes. |
| 54 | + |
| 55 | +Before deploying, ensure that your subscription has the required quota for the VM types desired for the CycleCloud nodes. |
| 56 | + |
| 57 | +## Resources |
| 58 | + |
| 59 | +* [How to create and manage a VPN gateway using the Azure portal](/azure/vpn-gateway/tutorial-create-gateway-portal) |
| 60 | +* [Configure P2S VPN Gateway for Microsoft Entra ID authentication – Microsoft-registered app](/azure/vpn-gateway/point-to-site-entra-gateway) |
0 commit comments