Skip to content

Commit 2bafcac

Browse files
authored
Merge pull request #298926 from xpillons/xpillons/ccws_april_release
CycleCloud Workspace for Slurm - April release
2 parents 0a0720f + 49c699a commit 2bafcac

32 files changed

+326
-82
lines changed

.openpublishing.redirection.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6978,6 +6978,26 @@
69786978
"source_path": "articles/defender-for-iot/organizations/eiot-sensor.md",
69796979
"redirect_url": "/azure/defender-for-iot/organizations/concept-enterprise",
69806980
"redirect_document_id": false
6981+
},
6982+
{
6983+
"source_path": "articles/cyclecloud/release-notes/ccws/2024.09.18.md",
6984+
"redirect_url": "/azure/cyclecloud/release-notes/ccws/2024-09-18",
6985+
"redirect_document_id": false
6986+
},
6987+
{
6988+
"source_path": "articles/cyclecloud/release-notes/ccws/2024.11.08.md",
6989+
"redirect_url": "/azure/cyclecloud/release-notes/ccws/2024-11-08",
6990+
"redirect_document_id": false
6991+
},
6992+
{
6993+
"source_path": "articles/cyclecloud/release-notes/ccws/2024.12.18.md",
6994+
"redirect_url": "/azure/cyclecloud/release-notes/ccws/2024-12-18",
6995+
"redirect_document_id": false
6996+
},
6997+
{
6998+
"source_path": "articles/cyclecloud/release-notes/ccws/2025.02.06.md",
6999+
"redirect_url": "/azure/cyclecloud/release-notes/ccws/2025-02-06",
7000+
"redirect_document_id": false
69817001
}
69827002
]
69837003
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: Configure Open Demand with CycleCloud
3+
description: How to configure Open OnDemand with CycleCloud
4+
author: xpillons
5+
ms.date: 05/27/2025
6+
ms.author: padmalathas
7+
---
8+
9+
# Configure Open OnDemand with CycleCloud
10+
Open OnDemand is a web-based interface that provides a user-friendly way to interact with the Slurm cluster deployed by Azure CycleCloud. Open OnDemand is automatically installed and configured when deploying Azure CycleCloud Workspace for Slurm, but there remain few steps that must be manually executed.
11+
12+
## Update settings for Microsoft Entra ID authentication
13+
The Open OnDemand front end uses Open ID Connect (OIDC) for authentication. The OIDC provider is a Microsoft Entra ID application that was registered specifically for this purpose (see [How to register a Microsoft Entra ID application for Open OnDemand Authentication](./register-entra-id-app.md)). The following steps describe how to update the settings for Entra ID authentication.
14+
15+
Browse to the CycleCloud web portal, select the OpenOnDemand cluster, and click on the Edit button. This opens the cluster template definition.
16+
1. Select Advanced settings,
17+
1. Leave FQDN empty,
18+
1. Set the Client ID to that of the registered application ID created in previous steps,
19+
1. Set the user domain to the enterprise domain,
20+
1. Tenant ID should be set to that of the tenant in which the application registration exists,
21+
1. The managed identity should be manually set to the one named `/ccwOpenOnDemandManagedIdentity`
22+
> [!NOTE]
23+
> This value will initially fail to appear due to a UI bug, so this needs to be set again when editing the template.
24+
25+
Press `Save` and then `Start Cluster` and wait for the Open OnDemand virtual machine to be ready.
26+
27+
:::image type="content" source="../../images/ccws/open-ondemand-advanced-settings.png" alt-text="Screenshot of Open OnDemand cluster configuration.":::
28+
29+
## Resources
30+
* [Add users for Open OnDemand](./open-ondemand-add-users.md)

articles/cyclecloud/how-to/ccws/connect-to-login-node-with-bastion.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
title: How to connect to a Login Node through Bastion
33
description: How to securily connect using SSH to a Login Node through Bastion
44
author: xpillons
5-
ms.date: 08/30/2024
6-
ms.author: xpillons
5+
ms.date: 05/27/2025
6+
ms.author: padmalathas
77
---
88

99
# How to connect to a Login Node through Bastion
10-
There is no SSH route open from your local environment to Virtual Machines running in an Azure CycleCloud Workspace for Slurm by default for security reasons. However, an Azure Bastion can be deployed and used to SSH through to your Virtual Machines. Below are the instructions on how to do based on this documentation: [Connect to a VM using Bastion](/azure/bastion/connect-vm-native-client-linux).
10+
There's no SSH route open from your local environment to Virtual Machines running in an Azure CycleCloud Workspace for Slurm by default for security reasons. However, an Azure Bastion can be deployed and used to SSH through to your Virtual Machines. Below are the instructions on how to do based on this documentation: [Connect to a VM using Bastion](/azure/bastion/connect-vm-native-client-linux).
1111

1212
## Step 1 – Identify the SSH private key locally
13-
Locate the private SSH key file associated with the public key provided during the deployment. If it is not accessible locally, then download it.
13+
Locate the private SSH key file associated with the public key provided during the deployment. If it isn't accessible locally, then download it.
1414

1515
## Step 2 – Retrieve the Resource ID of the Login Node
1616
From the CycleCloud UI, select the Login node to which you want to connect and double click on that line to open the detail view of the node. Select the VM tab to display the resource details below and copy the `ResourceId`.
1717

18-
![Login Node properties](../../images/ccws/login-node-resource-id.png)
18+
:::image type="content" source="../../images/ccws/login-node-resource-id.png" alt-text="Login Node properties":::
1919

2020
## Step 3 – Create a connect script
2121
Create a login script using the template below. Paste the login node `resourceID` retrieved above and specify the resource group and the private SSH key file to use.

articles/cyclecloud/how-to/ccws/connect-to-portal-with-bastion.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
22
title: How to connect to the CycleCloud Portal through Bastion
3-
description: How to securily connect to the CycleCloud Portal using Bastion
3+
description: How to securely connect to the CycleCloud Portal using Bastion
44
author: xpillons
5-
ms.date: 11/22/2024
5+
ms.date: 05/27/2025
66
ms.author: padmalathas
77
---
88

99
# How to connect to the CycleCloud Portal through Bastion
1010
You can deploy an Azure Bastion to establish an SSH tunnel to your Azure CycleCloud virtual machine when the HTTPS route is unavailable in your local environment. For detailed instructions, see [Connect to a VM - tunnel command](/azure/bastion/connect-vm-native-client-linux#tunnel).
1111

1212
## Step 1 – Retrieve the Resource ID of the CycleCloud VM
13-
To retrieve the resource ID of the `ccw-cyclecloud-vm` virtual machine, navigate to the Azure Portal. From the virtual machine view, select **Settings**, then **Properties**, and you will find the **ResourceID**.
13+
To retrieve the resource ID of the `ccw-cyclecloud-vm` virtual machine, navigate to the Azure portal. From the virtual machine view, select **Settings**, then **Properties**, and you'll find the **ResourceID**.
1414

1515
## Step 2 – Create a connect script
1616
Create a bash script using the template below. Paste the CycleCloud `resourceID` retrieved above.
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,31 @@
11
---
22
title: How to deploy a CycleCloud Workspace for Slurm environment using the CLI
3-
description: How to deploy a CycleCloud Workspace for Slurm environment using the Azure CLI and the Azure Portal UI Sandbox
3+
description: How to deploy a CycleCloud Workspace for Slurm environment using the Azure CLI and the Azure portal UI Sandbox
44
author: xpillons
5-
ms.date: 01/29/2025
6-
ms.author: xpillons
5+
ms.date: 05/27/2025
6+
ms.author: padmalathas
77
---
88

99
# How to deploy a CycleCloud Workspace for Slurm environment using the CLI
1010

11-
Prerequisites: Users will need to install the Azure CLI and Git. They will then need to sign into or set their Azure subscription.
11+
Prerequisites: Users need to install the Azure CLI and Git and then sign into or set their Azure subscription.
1212

1313
- Clone the Azure CycleCloud Workspace for Slurm on the latest stable release
1414

1515
```bash
16-
latest=$(curl -s https://api.github.com/repos/azure/cyclecloud-slurm-workspace/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")')
17-
echo "cloning on $latest"
18-
git clone --depth 1 --branch $latest https://github.com/azure/cyclecloud-slurm-workspace.git
16+
git clone --depth 1 https://github.com/azure/cyclecloud-slurm-workspace.git
1917
```
2018

2119
- Copy the content of the UI definition file `./uidefinitions/createUiDefinition.json`
2220

2321
- Browse to the UI Definition Sandbox:
24-
- For Azure Public Cloud [Azure Public Portal](https://portal.azure.com/#view/Microsoft_Azure_CreateUIDef/SandboxBlade)
25-
- For Azure US Gov [Azure US Gov Portal](https://portal.azure.us/#view/Microsoft_Azure_CreateUIDef/SandboxBlade)
22+
- For Azure Public Cloud [Azure Public portal](https://portal.azure.com/#view/Microsoft_Azure_CreateUIDef/SandboxBlade)
23+
- For Azure US Gov [Azure US Gov portal](https://portal.azure.us/#view/Microsoft_Azure_CreateUIDef/SandboxBlade)
2624

2725
- Paste the content of the UI Definition file into the multiline text box in the right,
28-
- Click `Preview >>` in the bottom-left corner. This will bring up a UI experience.
26+
- Click `Preview >>` in the bottom-left corner to bring up a UI experience.
2927
- Proceed through each page of the UI flow to ensure that necessary values populate in the output payload described in the next step,
30-
- Proceed with the UI flow to the `Review + create` page and then click the link labeled `View outputs payload` adjacent to the `Create` button. This will generate a pane with JSON-formatted text in its body on the right-hand side of the browser window,
28+
- Proceed with the UI flow to the `Review + create` page and then click the link labeled `View outputs payload` to the right of the `Create` button to generate a pane with JSON-formatted text in its body on the right-hand side of the browser window,
3129
- Copy the JSON-formatted text into a local JSON file,
3230
- Save it as `parameters.json` and make note of the path to it. This is what we call the Parameters File for the deployment,
3331
- Open the shell of choice and navigate to the folder/directory that contains the `cyclecloud-slurm-workspace` repository cloned above,
@@ -42,9 +40,11 @@ az vm image terms accept --urn azurecyclecloud:azure-cyclecloud:cyclecloud8-gen2
4240
az deployment sub create --template-file ./cyclecloud-slurm-workspace/bicep/mainTemplate.bicep --parameters parameters.json --location [ANY AZURE LOCATION E.G. eastus] --name [OPTIONAL BUT HELPFUL, DELETE IF UNUSED]
4341
```
4442

45-
- Wait until the shell indicates that the deployment was successful. One can also track the progress of the deployment in the Azure Portal by navigating to the resource group indicated in the UI, selecting `Deployments` from the Settings dropdown menu on the left-hand side menu, and checking the Status of the Deployment Name that begins with “pid-” at the bottom of the displayed list.
43+
- Wait until the shell indicates that the deployment was successful. One can also track the progress of the deployment in the Azure portal by navigating to the resource group indicated in the UI, selecting `Deployments` from the Settings dropdown menu on the left-hand side menu, and checking the Status of the Deployment Name that begins with “pid-” at the bottom of the displayed list.
4644

4745
## Resources
4846

49-
* [How to connect to the CycleCloud Portal through Bastion](/azure/cyclecloud/how-to/ccws/connect-to-portal-with-bastion)
47+
* [Configure Open OnDemand with CycleCloud](./configure-open-ondemand.md)
48+
* [Add users for Open OnDemand](./open-ondemand-add-users.md)
49+
* [How to connect to the CycleCloud portal through Bastion](/azure/cyclecloud/how-to/ccws/connect-to-portal-with-bastion)
5050
* [How to connect to a Login Node through Bastion](/azure/cyclecloud/how-to/ccws/connect-to-login-node-with-bastion)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Add users for Open OnDemand
3+
description: How to add users for Open OnDemand
4+
author: xpillons
5+
ms.date: 05/27/2025
6+
ms.author: padmalathas
7+
---
8+
9+
# Add users for Open OnDemand
10+
Once authenticated with Microsoft Entra ID, Open OnDemand maps the user to a local user account managed by CycleCloud created with the same name as the Microsoft Entra ID user. The following steps describe how to add cluster users for Open OnDemand.
11+
1. Browse the CycleCloud web portal and select the top right gear icon to open the menu. Select the **Users** option.
12+
1. Click on the **Add** button to add a new user. For more details on user management in CycleCloud, see instructions: [User Management](../../concepts/user-management.md)
13+
1. Select at least the role **Global Node User** for regular users and **Global Node Admin** for administrators (sudo access)
14+
1. Save
15+
1. Add other users as needed
16+
1. Wait for the users to be created on clusters. It may take a few minutes.
17+
18+
Users can now log in to Open OnDemand using their Microsoft Entra ID credentials. A consent message may appear upon an initial login attempt: users should affirm consent to be redirected to the Open OnDemand dashboard.

articles/cyclecloud/how-to/ccws/plan-your-deployment.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Plan your CycleCloud Workspace for Slurm Deployment
33
description: A checklist to help plan for your CycleCloud Workspace for Slurm deployment
44
author: xpillons
5-
ms.date: 03/05/2025
5+
ms.date: 05/27/2025
66
ms.author: padmalathas
77
---
88

@@ -15,8 +15,11 @@ You have two deployment options for Azure CycleCloud Workspace for Slurm:
1515
When doing a deployment, the Azure user account used need to be granted the following roles:
1616
- `Contributor` on the Subscription
1717
- `User Access Administrator` on the Subscription
18+
- Optional: permission to register a Microsoft Entra application
1819

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+
> [!NOTE]
21+
> Recommendation is to predeploy a [Hub virtual network](/azure/architecture/networking/architecture/hub-spoke) to connect to your enterprise network if one isn't 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.
22+
> Contact Azure HPC Support if VPN or Azure Bastion don't meet your requirements or are blocked by your organization
2023
2124
## Greenfield Deployment
2225

@@ -32,24 +35,32 @@ In a greenfield deployment, the following resources and role assignments are cre
3235
- Optionally a NAT gateway named `ccw-nat-gateway` and public IP `pip-ccw-nat-gateway`.
3336
- Optionally an Azure NetApp Files account, pool, and volume with subnet `hpc-anf-subnet`.
3437
- Optionally an Azure Managed Lustre Filesystem with subnet `ccw-lustre-subnet`.
35-
- Optionally a VNET Peering.
38+
- Optionally a virtual network Peering.
3639
- Optionally a Private Endpoint to an existing Azure Database for MySQL flexible server instance.
3740

3841
## Brownfield Deployment
3942

4043
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).
44+
- The virtual network and subnets in which the environment is deployed.
45+
- Filesystem Storage for the user's home directories and/or other filers, such as external NFS mount points or Azure Managed Lustre Filesystem (AMLS).
4346
- An Azure Database for MySQL flexible server instance for Slurm Job Accounting.
47+
- A registered Microsoft Entra ID application for Open OnDemand authentication.
48+
- A User-Assigned Managed Identity used by the registered Microsoft Entra ID application for the federated credentials.
4449

45-
If you're bringing your own VNET, follow these prerequisites:
50+
If you're bringing your own virtual network, follow these prerequisites:
4651
- A /29 **cyclecloud** subnet for the CycleCloud VM.
4752
- A **compute** subnet for the nodes, where the scheduler, login, and compute nodes are created.
4853
- 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).
4954
- 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).
5055
- If deploying a Bastion, a dedicated **BastionSubnet** as documented [here](/azure/bastion/configuration-settings#subnet).
5156
- 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.
5257

58+
## Open OnDemand
59+
60+
The Azure Bastion tunneling scenario doesn't work for Open OnDemand. The recommended approach is to use a VPN Gateway with Point-to-Site (P2S) VPN connections or has Azure ExpressRoute configured to allow users to connect securely to the CycleCloud Workspace for Slurm network and access Open OnDemand.
61+
62+
Registration of a Microsoft Entra application is required to support the OpenID Connect authentication mechanism. Ensure that the user or subscription administrator have the proper roles to be granted to complete the registration.
63+
5364
## Quotas
5465

5566
Before deploying, ensure that your subscription has the required quota for the VM types desired for the CycleCloud nodes.

0 commit comments

Comments
 (0)