You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
Copy file name to clipboardExpand all lines: articles/cyclecloud/how-to/ccws/connect-to-login-node-with-bastion.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,20 +2,20 @@
2
2
title: How to connect to a Login Node through Bastion
3
3
description: How to securily connect using SSH to a Login Node through Bastion
4
4
author: xpillons
5
-
ms.date: 08/30/2024
6
-
ms.author: xpillons
5
+
ms.date: 05/27/2025
6
+
ms.author: padmalathas
7
7
---
8
8
9
9
# 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).
11
11
12
12
## 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.
14
14
15
15
## Step 2 – Retrieve the Resource ID of the Login Node
16
16
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`.
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.
Copy file name to clipboardExpand all lines: articles/cyclecloud/how-to/ccws/connect-to-portal-with-bastion.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
---
2
2
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
4
4
author: xpillons
5
-
ms.date: 11/22/2024
5
+
ms.date: 05/27/2025
6
6
ms.author: padmalathas
7
7
---
8
8
9
9
# How to connect to the CycleCloud Portal through Bastion
10
10
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).
11
11
12
12
## 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**.
14
14
15
15
## Step 2 – Create a connect script
16
16
Create a bash script using the template below. Paste the CycleCloud `resourceID` retrieved above.
- Copy the content of the UI definition file `./uidefinitions/createUiDefinition.json`
22
20
23
21
- 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)
26
24
27
25
- 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.
29
27
- 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,
31
29
- Copy the JSON-formatted text into a local JSON file,
32
30
- Save it as `parameters.json` and make note of the path to it. This is what we call the Parameters File for the deployment,
33
31
- 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
42
40
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]
43
41
```
44
42
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.
46
44
47
45
## Resources
48
46
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)
50
50
*[How to connect to a Login Node through Bastion](/azure/cyclecloud/how-to/ccws/connect-to-login-node-with-bastion)
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.
Copy file name to clipboardExpand all lines: articles/cyclecloud/how-to/ccws/plan-your-deployment.md
+17-6Lines changed: 17 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
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: 03/05/2025
5
+
ms.date: 05/27/2025
6
6
ms.author: padmalathas
7
7
---
8
8
@@ -15,8 +15,11 @@ You have two deployment options for Azure CycleCloud Workspace for Slurm:
15
15
When doing a deployment, the Azure user account used need to be granted the following roles:
16
16
-`Contributor` on the Subscription
17
17
-`User Access Administrator` on the Subscription
18
+
- Optional: permission to register a Microsoft Entra application
18
19
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
20
23
21
24
## Greenfield Deployment
22
25
@@ -32,24 +35,32 @@ In a greenfield deployment, the following resources and role assignments are cre
32
35
- Optionally a NAT gateway named `ccw-nat-gateway` and public IP `pip-ccw-nat-gateway`.
33
36
- Optionally an Azure NetApp Files account, pool, and volume with subnet `hpc-anf-subnet`.
34
37
- Optionally an Azure Managed Lustre Filesystem with subnet `ccw-lustre-subnet`.
35
-
- Optionally a VNET Peering.
38
+
- Optionally a virtual network Peering.
36
39
- Optionally a Private Endpoint to an existing Azure Database for MySQL flexible server instance.
37
40
38
41
## Brownfield Deployment
39
42
40
43
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).
43
46
- 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.
44
49
45
-
If you're bringing your own VNET, follow these prerequisites:
50
+
If you're bringing your own virtual network, follow these prerequisites:
46
51
- A /29 **cyclecloud** subnet for the CycleCloud VM.
47
52
- A **compute** subnet for the nodes, where the scheduler, login, and compute nodes are created.
48
53
- 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
54
- 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
55
- If deploying a Bastion, a dedicated **BastionSubnet** as documented [here](/azure/bastion/configuration-settings#subnet).
51
56
- 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.
52
57
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
+
53
64
## Quotas
54
65
55
66
Before deploying, ensure that your subscription has the required quota for the VM types desired for the CycleCloud nodes.
0 commit comments