Skip to content

Commit 159ad82

Browse files
authored
Merge pull request #243875 from samdaviesmicrosoft/main
Feature 621427 - remove need for minishell during ASE/AP5GC commissioning
2 parents 50782b3 + d4b6cee commit 159ad82

15 files changed

+131
-79
lines changed

articles/private-5g-core/commission-cluster.md

Lines changed: 21 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,57 +26,18 @@ The packet core instances in the Azure Private 5G Core service run on an Arc-ena
2626
> Make a note of the Azure Stack Edge's resource group. The AKS cluster and custom location, created in this procedure, must belong to this resource group.
2727
- Review [Azure Stack Edge virtual machine sizing](azure-stack-edge-virtual-machine-sizing.md#azure-stack-edge-virtual-machine-sizing) to ensure your ASE has enough space available to commission the cluster.
2828

29-
## Enter a minishell session
29+
## Configure Kubernetes for Azure Private MEC on the Azure Stack Edge device
3030

31-
You need to run minishell commands on Azure Stack Edge during this procedure. You must use a Windows machine that is on a network with access to the management port of the ASE. You should be able to view the ASE local UI to verify you have access.
31+
These steps modify the Kubernetes cluster on the Azure Stack Edge device to optimize it for Azure Private MEC workloads.
3232

33-
> [!TIP]
34-
> To access the local UI, see [Tutorial: Connect to Azure Stack Edge Pro with GPU](../databox-online/azure-stack-edge-gpu-deploy-connect.md).
35-
36-
### Enable WinRM on your machine
37-
38-
The following process uses PowerShell and needs WinRM to be enabled on your machine. Run the following command from a PowerShell window in Administrator mode:
39-
```powershell
40-
winrm quickconfig
41-
```
42-
WinRM may already be enabled on your machine, as you only need to do it once. Ensure your network connections are set to Private or Domain (not Public), and accept any changes.
43-
44-
### Start the minishell session
45-
46-
1. From a PowerShell window, enter the ASE management IP address (including quotation marks, for example `"10.10.5.90"`):
47-
```powershell
48-
$ip = "*ASE IP address*"
49-
50-
$sessopt = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
51-
52-
$minishellSession = New-PSSession -ComputerName $ip -ConfigurationName "Minishell" -Credential ~\EdgeUser -UseSSL -SessionOption $sessopt
53-
```
54-
55-
1. At the prompt, enter your Azure Stack Edge password. Ignore the following message:
56-
57-
`WARNING: The Windows PowerShell interface of your device is intended to
58-
be used only for the initial network configuration. Please
59-
engage Microsoft Support if you need to access this interface
60-
to troubleshoot any potential issues you may be experiencing.
61-
Changes made through this interface without involving Microsoft
62-
Support could result in an unsupported configuration.`
63-
64-
You now have a minishell session set up ready to enable your Azure Kubernetes Service in the next step.
65-
66-
> [!TIP]
67-
> If there is a network change, the session can break. Run `Get-PSSession` to view the state of the session. If it is still connected, you should still be able to run minishell commands. If it is broken or disconnected, run `Remove-PSSession` to remove the session locally, then start a new session.
68-
69-
## Enable Azure Kubernetes Service on the Azure Stack Edge device
70-
71-
Run the following commands at the PowerShell prompt, specifying the object ID you identified in [Complete the prerequisite tasks for deploying a private mobile network](complete-private-mobile-network-prerequisites.md).
33+
1. In the local UI, select **Kubernetes** in the left-hand menu.
34+
2. Under **Choose the option that best describes your scenario**, select **an Azure Private MEC solution in your environment**.
35+
3. On the **Workload confirmation** popup, select **I confirm I am running Azure Private MEC in my environment**, and click **Apply** to close the popup.
36+
4. Click **Apply** to save the changes.
7237

73-
```powershell
74-
Invoke-Command -Session $minishellSession -ScriptBlock {Set-HcsKubeClusterArcInfo -CustomLocationsObjectId *object ID*}
38+
:::image type="content" source="media/commission-cluster/commission-cluster-enable-aks.png" alt-text="Screenshot of ASE Kubernetes configuration menu. The Azure Private MEC radio button is selected. The Workload confirmation popup is overlaid.":::
7539

76-
Invoke-Command -Session $minishellSession -ScriptBlock {Enable-HcsAzureKubernetesService -f}
77-
```
78-
79-
Once you've run this command, you should see an updated option in the local UI – **Kubernetes** becomes **Kubernetes (Preview)** as shown in the following image.
40+
Once you've applied these changes, you should see an updated option in the local UI – **Kubernetes** becomes **Kubernetes (Preview)** as shown in the following image.
8041

8142
:::image type="content" source="media/commission-cluster/commission-cluster-kubernetes-preview.png" alt-text="Screenshot of configuration menu, with Kubernetes (Preview) highlighted.":::
8243

@@ -124,9 +85,9 @@ You can input all the settings on this page before selecting **Apply** at the bo
12485
1. Select **Add virtual network** and fill in the side panel:
12586
- **Virtual switch**: select **vswitch-port3** for N2, N3 and up to four DNs, and select **vswitch-port4** for up to six DNs.
12687
- **Name**: *N2*, *N3*, or *N6-DNX* (where *X* is the DN number 1-10).
127-
- **VLAN**: 0
128-
- **Subnet mask** and **Gateway**: Use the correct subnet mask and gateway for the IP address configured on the ASE port (even if the gateway is not set on the ASE port itself).
129-
- For example, *255.255.255.0* and *10.232.44.1*
88+
- **VLAN**: VLAN ID, or 0 if not using VLANs
89+
- **Network** and **Gateway**: Use the correct subnet and gateway for the IP address configured on the ASE port (even if the gateway is not set on the ASE port itself).
90+
- For example, *10.232.44.0/24* and *10.232.44.1*
13091
- If the subnet does not have a default gateway, use another IP address in the subnet which will respond to ARP requests (such as one of the RAN IP addresses). If there's more than one gNB connected via a switch, choose one of the IP addresses for the gateway.
13192
- **DNS server** and **DNS suffix** should be left blank.
13293
1. Select **Modify** to save the configuration for this virtual network.
@@ -143,8 +104,8 @@ You can input all the settings on this page before selecting **Apply** at the bo
143104
- **Virtual switch**: select **vswitch-port5** for N2, N3 and up to four DNs, and select **vswitch-port6** for up to six DNs.
144105
- **Name**: *N2*, *N3*, or *N6-DNX* (where *X* is the DN number 1-10).
145106
- **VLAN**: VLAN ID, or 0 if not using VLANs
146-
- **Subnet mask** and **Gateway** must match the external values for the port.
147-
- For example, *255.255.255.0* and *10.232.44.1*
107+
- **Network** and **Gateway**: Use the correct subnet and gateway for the IP address configured on the ASE port (even if the gateway is not set on the ASE port itself).
108+
- For example, *10.232.44.0/24* and *10.232.44.1*
148109
- If the subnet does not have a default gateway, use another IP address in the subnet which will respond to ARP requests (such as one of the RAN IP addresses). If there's more than one gNB connected via a switch, choose one of the IP addresses for the gateway.
149110
- **DNS server** and **DNS suffix** should be left blank.
150111
1. Select **Modify** to save the configuration for this virtual network.
@@ -196,7 +157,13 @@ If you're running other VMs on your Azure Stack Edge, we recommend that you stop
196157

197158
1. For the **Node size**, select **Standard_F16s_HPN**.
198159
1. Ensure the **Arc enabled Kubernetes** checkbox is selected.
199-
1. The Arc enabled Kubernetes service is automatically created in the same resource group as your **Azure Stack Edge** resource. If your Azure Stack Edge resource group is not in a region that supports Azure Private 5G Core, you must change the region using the **Change** link.
160+
1. Select the **Change** link and enter the Azure AD application Object Id (OID) for the custom location which you obtained from [Retrieve the Object ID (OID)](complete-private-mobile-network-prerequisites.md#retrieve-the-object-id-oid).
161+
162+
:::image type="content" source="media/commission-cluster/commission-cluster-configure-kubernetes.png" alt-text="Screenshot of Configure Arc enabled Kubernetes pane, showing where to enter the custom location OID.":::
163+
164+
1. The Arc enabled Kubernetes service is automatically created in the same resource group as your **Azure Stack Edge** resource. If your Azure Stack Edge resource group is not in a region that supports Azure Private 5G Core, you must change the region.
165+
1. Click **Configure** to apply the configuration.
166+
1. Check the **Region** and **Azure AD application Object Id (OID)** fields show the appropriate values, and then click **Create**.
200167
1. Work through the prompts to set up the service.
201168

202169
The creation of the Kubernetes cluster takes about 20 minutes. During creation, there may be a critical alarm displayed on the **Azure Stack Edge** resource. This alarm is expected and should disappear after a few minutes.
@@ -207,24 +174,10 @@ Once deployed, the portal should show **Kubernetes service is running** on the
207174

208175
You'll need *kubectl* access to verify that the cluster has deployed successfully. For read-only *kubectl* access to the cluster, you can download a *kubeconfig* file from the ASE local UI. Under **Device**, select **Download config**.
209176

210-
:::image type="content" source="media/commission-cluster/commission-cluster-kubernetes-download-config.png" alt-text="Screenshot of Kubernetes dashboard showing link to download config.":::
177+
:::image type="content" source="media/set-up-kubectl/commission-cluster-kubernetes-download-config.png" alt-text="Screenshot of Kubernetes dashboard showing link to download config.":::
211178

212179
The downloaded file is called *config.json*. This file has permission to describe pods and view logs, but not to access pods with *kubectl exec*.
213180

214-
The Azure Private 5G Core deployment uses the *core* namespace. If you need to collect diagnostics, you can download a *kubeconfig* file with full access to the *core* namespace using the following minishell commands.
215-
216-
- Create the namespace, download the *kubeconfig* file and use it to grant access to the namespace:
217-
```powershell
218-
Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesNamespace -Namespace "core"}
219-
Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesUser -UserName "core"} | Out-File -FilePath .\kubeconfig-core.yaml
220-
Invoke-Command -Session $minishellSession -ScriptBlock {Grant-HcsKubernetesNamespaceAccess -Namespace "core" -UserName "core"}
221-
```
222-
- If you need to retrieve the saved *kubeconfig* file later:
223-
```powershell
224-
Invoke-Command -Session $miniShellSession -ScriptBlock { Get-HcsKubernetesUserConfig -UserName "core" }
225-
```
226-
For more information, see [Configure cluster access via Kubernetes RBAC](../databox-online/azure-stack-edge-gpu-create-kubernetes-cluster.md#configure-cluster-access-via-kubernetes-rbac).
227-
228181
## Set up portal access
229182

230183
Open your **Azure Stack Edge** resource in the Azure portal. Go to the Azure Kubernetes Service pane (shown in [Start the cluster and set up Arc](#start-the-cluster-and-set-up-arc)) and select the **Manage** link to open the **Arc** pane.

articles/private-5g-core/complete-private-mobile-network-prerequisites.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ To use Azure Private 5G Core, you need to register some additional resource prov
275275
276276
## Retrieve the Object ID (OID)
277277
278-
You need to obtain the object ID (OID) of the custom location resource provider in your Azure tenant. You will need to provide this OID when you configure your ASE to use AKS-HCI. You can obtain the OID using the Azure CLI or the Azure Cloud Shell on the portal. You'll need to be an owner of your Azure subscription.
278+
You need to obtain the object ID (OID) of the custom location resource provider in your Azure tenant. You will need to provide this OID when you create the Kubernetes service. You can obtain the OID using the Azure CLI or the Azure Cloud Shell on the portal. You'll need to be an owner of your Azure subscription.
279279
280280
1. Sign in to the Azure CLI or Azure Cloud Shell.
281281
1. Retrieve the OID:

articles/private-5g-core/data-plane-packet-capture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Data plane packet capture works by mirroring packets to a Linux kernel interface
2222
## Prerequisites
2323

2424
- Identify the **Kubernetes - Azure Arc** resource representing the Azure Arc-enabled Kubernetes cluster on which your packet core instance is running.
25-
- Ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Set up kubectl access](commission-cluster.md#set-up-kubectl-access).
25+
- Ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Core namespace access](set-up-kubectl-access.md#core-namespace-access).
2626

2727
## Performing packet capture
2828

articles/private-5g-core/enable-azure-active-directory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ In this how-to guide, you'll carry out the steps you need to complete after depl
2525
- You must have deployed a site with Azure Active Directory set as the authentication type.
2626
- Identify the IP address for accessing the local monitoring tools that you set up in [Management network](complete-private-mobile-network-prerequisites.md#management-network).
2727
- Ensure you can sign in to the Azure portal using an account with access to the active subscription you used to create your private mobile network. This account must have permission to manage applications in Azure AD. [Azure AD built-in roles](../active-directory/roles/permissions-reference.md) that have the required permissions include, for example, Application administrator, Application developer, and Cloud application administrator. If you do not have this access, contact your tenant Azure AD administrator so they can confirm your user has been assigned the correct role by following [Assign user roles with Azure Active Directory](/azure/active-directory/fundamentals/active-directory-users-assign-role-azure-portal).
28-
- Ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Set up kubectl access](commission-cluster.md#set-up-kubectl-access).
28+
- Ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Core namespace access](set-up-kubectl-access.md#core-namespace-access).
2929

3030
## Configure domain system name (DNS) for local monitoring IP
3131

82.9 KB
Loading
162 KB
Loading

articles/private-5g-core/modify-local-access-configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ In this how-to guide, you'll learn how to use the Azure portal to change the aut
2525

2626
- Refer to [Choose the authentication method for local monitoring tools](collect-required-information-for-a-site.md#choose-the-authentication-method-for-local-monitoring-tools) and [Collect local monitoring values](collect-required-information-for-a-site.md#collect-local-monitoring-values) to collect the required values and make sure they're in the correct format.
2727
- If you want to add or update a custom HTTPS certificate for accessing your local monitoring tools, you'll need a certificate signed by a globally known and trusted CA and stored in an Azure Key Vault. Your certificate must use a private key of type RSA or EC to ensure it's exportable (see [Exportable or non-exportable key](../key-vault/certificates/about-certificates.md) for more information).
28-
- If you want to update your local monitoring authentication method, ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Set up kubectl access](commission-cluster.md#set-up-kubectl-access).
28+
- If you want to update your local monitoring authentication method, ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Core namespace access](set-up-kubectl-access.md#core-namespace-access).
2929
- Ensure you can sign in to the Azure portal using an account with access to the active subscription you used to create your private mobile network. This account must have the built-in Contributor or Owner role at the subscription scope.
3030

3131
## View the local access configuration

articles/private-5g-core/modify-packet-core.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ If you want to modify a packet core instance's local access configuration, follo
2828
2929
- If you want to make changes to the attached data networks, refer to [Collect data network values](collect-required-information-for-a-site.md#collect-data-network-values) to collect the new values and make sure they're in the correct format.
3030
- Ensure you can sign in to the Azure portal using an account with access to the active subscription you used to create your private mobile network. This account must have the built-in Contributor or Owner role at the subscription scope.
31-
- If you use Azure Active Directory (Azure AD) to authenticate access to your local monitoring tools and you're making a change that requires a packet core reinstall, ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Set up kubectl access](commission-cluster.md#set-up-kubectl-access).
31+
- If you use Azure Active Directory (Azure AD) to authenticate access to your local monitoring tools and you're making a change that requires a packet core reinstall, ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Core namespace access](set-up-kubectl-access.md#core-namespace-access).
3232

3333
## Plan a maintenance window
3434

articles/private-5g-core/region-move-private-mobile-network-resources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ You might move your resources to another region for a number of reasons. For exa
2222
- Ensure Azure Private 5G Core supports the region to which you want to move your resources. Refer to [Products available by region](https://azure.microsoft.com/explore/global-infrastructure/products-by-region/?products=private-5g-core).
2323
- Verify pricing and charges associated with the target region to which you want to move your resources.
2424
- Choose a name for your new resource group in the target region. This must be different to the source region's resource group name.
25-
- If you use Azure Active Directory (Azure AD) to authenticate access to your local monitoring tools, ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Set up kubectl access](commission-cluster.md#set-up-kubectl-access).
25+
- If you use Azure Active Directory (Azure AD) to authenticate access to your local monitoring tools, ensure your local machine has core kubectl access to the Azure Arc-enabled Kubernetes cluster. This requires a core kubeconfig file, which you can obtain by following [Core namespace access](set-up-kubectl-access.md#core-namespace-access).
2626

2727
## Back up deployment information
2828

0 commit comments

Comments
 (0)