Skip to content

Commit 2f4ef21

Browse files
author
Jill Grant
authored
Merge pull request #287790 from kgremban/m2-final
Final M2 review of deployment docs
2 parents 08f5a7f + cb80966 commit 2f4ef21

File tree

4 files changed

+100
-22
lines changed

4 files changed

+100
-22
lines changed

articles/iot-operations/deploy-iot-ops/howto-deploy-iot-operations.md

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kgremban
55
ms.author: kgremban
66
ms.topic: how-to
77
ms.custom: ignite-2023, devx-track-azurecli
8-
ms.date: 09/26/2024
8+
ms.date: 10/02/2024
99

1010
#CustomerIntent: As an OT professional, I want to deploy Azure IoT Operations to a Kubernetes cluster.
1111
---
@@ -112,7 +112,9 @@ The Azure portal deployment experience is a helper tool that generates a deploym
112112

113113
1. Select **Select Azure Storage container**.
114114

115-
1. Schema registry requires an Azure Storage account with hierarchical namespace and public network access enabled. Choose a storage account from the list of hierarchical namespace-enabled accounts, or select **Create** to create one.
115+
1. Choose a storage account from the list of hierarchical namespace-enabled accounts, or select **Create** to create one.
116+
117+
Schema registry requires an Azure Storage account with hierarchical namespace and public network access enabled. When creating a new storage account, choose a **General purpose v2** storage account type and set **Hierarchical namespace** to **Enabled**.
116118

117119
1. Select a container in your storage account or select **Container** to create one.
118120

@@ -152,13 +154,26 @@ The Azure portal deployment experience is a helper tool that generates a deploym
152154
153155
1. If you chose to create a new schema registry on the previous tab, copy and run the `az iot ops schema registry create` command.
154156
155-
1. Copy and run the `az iot ops init` command.
157+
1. Prepare your cluster for Azure IoT Operations deployment by deploying dependencies and foundational services, including schema registry. Copy and run the `az iot ops init` command.
158+
159+
>[!TIP]
160+
>The `init` command only needs to be run once per cluster. If you're reusing a cluster that already had Azure IoT Operations version 0.7.0 deployed on it, you can skip this step.
161+
162+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
163+
164+
1. Deploy Azure IoT Operations to your cluster. Copy and run the `az iot ops create` command.
165+
166+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
156167
157-
1. Copy and run the `az iot ops create` command.
168+
1. Enable secret sync on your Azure IoT Operations instance. Copy and run the `az iot ops secretsync enable` command. This command:
158169
159-
1. Copy and run the `az iot ops secretsync enable` command.
170+
* Creates a federated identity credential using the user-assigned managed identity.
171+
* Adds a role assignment to the user-assigned managed identity for access to the Azure Key Vault.
172+
* Adds a minimum secret provider class associated with the Azure IoT Operations instance.
160173
161-
1. Copy and run the `az iot ops identity assign` command.
174+
1. Assign a user-assigned managed identity to your Azure IoT Operations instance. Copy and run the `az iot ops identity assign` command.
175+
176+
This command also creates a federated identity credential using the OIDC issuer of the indicated connected cluster and the Azure IoT Operations service account.
162177
163178
1. Once all of the Azure CLI commands complete successfully, you can close the **Install Azure IoT Operations** wizard.
164179
@@ -204,16 +219,21 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
204219

205220
1. Prepare your cluster with the dependencies that Azure IoT Operations requires by running [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init).
206221

222+
>[!TIP]
223+
>The `init` command only needs to be run once per cluster. If you're reusing a cluster that already had Azure IoT Operations version 0.7.0 deployed on it, you can skip this step.
224+
207225
```azurecli
208226
az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --sr-resource-id <SCHEMA_REGISTRY_RESOURCE_ID>
209227
```
210228

229+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
230+
211231
Use the [optional parameters](/cli/azure/iot/ops#az-iot-ops-init-optional-parameters) to customize your cluster, including:
212232

213233
| Optional parameter | Value | Description |
214234
| --------- | ----- | ----------- |
215-
| `--no-progress` | | Disables the deployment progress display in the terminal. |
216-
| `--enable-fault-tolerance` | `false`, `true` | Enables fault tolerance for Azure Arc Container Storage. At least three cluster nodes are required. |
235+
| `--no-progress` | | Disable the deployment progress display in the terminal. |
236+
| `--enable-fault-tolerance` | `false`, `true` | Enable fault tolerance for Azure Arc Container Storage. At least three cluster nodes are required. |
217237
| `--ops-config` | `observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT>` | If you followed the optional prerequisites to prepare your cluster for observability, provide the OpenTelemetry (OTel) collector address you configured in the otel-collector-values.yaml file.<br><br>The sample values used in [Configure observability](../configure-observability-monitoring/howto-configure-observability.md) are **fullnameOverride=aio-otel-collector** and **grpc.enpoint=4317**. |
218238
| `--ops-config` | `observability.metrics.exportInternalSeconds=<CHECK_INTERVAL>` | If you followed the optional prerequisites to prepare your cluster for observability, provide the **check_interval** value you configured in the otel-collector-values.yaml file.<br><br>The sample value used in [Configure observability](../configure-observability-monitoring/howto-configure-observability.md) is **check_interval=60**. |
219239

@@ -223,13 +243,16 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
223243
az iot ops create --name <NEW_INSTANCE_NAME> --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
224244
```
225245

246+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
247+
226248
Use the optional parameters to customize your instance, including:
227249

228250
| Optional parameter | Value | Description |
229251
| --------- | ----- | ----------- |
230-
| `--no-progress` | | Disables the deployment progress display in the terminal. |
252+
| `--no-progress` | | Disable the deployment progress display in the terminal. |
231253
| `--enable-rsync-rules` | | Enable the resource sync rules on the instance to project resources from the edge to the cloud. |
232254
| `--add-insecure-listener` | | Add an insecure 1883 port config to the default listener. *Not for production use*. |
255+
| `--custom-location` | String | Provide a name for the custom location created for your cluster. The default value is **location-{hash(5)}**. |
233256
| `--broker-config-file` | Path to JSON file | Provide a configuration file for the MQTT broker. For more information, see [Advanced MQTT broker config](https://github.com/Azure/azure-iot-ops-cli-extension/wiki/Advanced-Mqtt-Broker-Config) and [Configure core MQTT broker settings](../manage-mqtt-broker/howto-configure-availability-scale.md). |
234257

235258
Once the `create` command completes successfully, you have a working Azure IoT Operations instance running on your cluster. At this point, your instance is configured for most testing and evaluation scenarios. If you want to prepare your instance for production scenarios, continue to the next section to enable secure settings.
@@ -269,23 +292,21 @@ Azure secret requires a user-assigned managed identity with access to the Azure
269292
270293
You will need to grant the identity permission to whichever cloud resource this will be used for.
271294
272-
1. Run the following command to assign the identity to the Azure IoT Operations instance. This command also created a federated identity credential using the OIDC issuer of the indicated connected cluster and the Azure IoT Operations service account.
295+
1. Run the following command to assign the identity to the Azure IoT Operations instance. This command also creates a federated identity credential using the OIDC issuer of the indicated connected cluster and the Azure IoT Operations service account.
273296
274297
```azurecli
275298
az iot ops identity assign --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --mi-user-assigned <USER_ASSIGNED_MI_RESOURCE_ID>
276299
```
277300

278301
---
279302

280-
While the deployment is in progress, you can watch the resources being applied to your cluster.
281-
282-
If your terminal supports it, the `init` and `create` commands display the deployment progress.
283-
303+
While the deployment is in progress, you can watch the resources being applied to your cluster. If your terminal supports it, the `init` and `create` commands display the deployment progress.
304+
<!--
284305
:::image type="content" source="./media/howto-deploy-iot-operations/view-deployment-terminal.png" alt-text="A screenshot that shows the progress of an Azure IoT Operations deployment in a terminal.":::
285306
286307
Once the **Deploy IoT Operations** phase begins, the text in the terminal becomes a link to view the deployment progress in the Azure portal.
287308
288-
:::image type="content" source="./media/howto-deploy-iot-operations/view-deployment-portal.png" alt-text="A screenshot that shows the progress of an Azure IoT Operations deployment in the Azure portal." lightbox="./media/howto-deploy-iot-operations/view-deployment-portal.png":::
309+
:::image type="content" source="./media/howto-deploy-iot-operations/view-deployment-portal.png" alt-text="A screenshot that shows the progress of an Azure IoT Operations deployment in the Azure portal." lightbox="./media/howto-deploy-iot-operations/view-deployment-portal.png"::: -->
289310

290311
Otherwise, or if you choose to disable the progress interface with `--no-progress` added to the commands, you can use kubectl commands to view the pods on your cluster:
291312

articles/iot-operations/deploy-iot-ops/howto-prepare-cluster.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kgremban
55
ms.author: kgremban
66
ms.topic: how-to
77
ms.custom: ignite-2023, devx-track-azurecli
8-
ms.date: 09/26/2024
8+
ms.date: 10/02/2024
99

1010
#CustomerIntent: As an IT professional, I want prepare an Azure-Arc enabled Kubernetes cluster so that I can deploy Azure IoT Operations to it.
1111
---
@@ -45,11 +45,13 @@ To prepare your Azure Arc-enabled Kubernetes cluster, you need:
4545

4646
* Hardware that meets the system requirements:
4747

48-
* Ensure that your machine has a minimum of 10-GB available RAM, 4 available vCPUs, and 52-GB free disk space reserved for Azure IoT Operations.
48+
* Ensure that your machine has a minimum of 16-GB available RAM, 8 available vCPUs, and 52-GB free disk space reserved for Azure IoT Operations.
4949
* [Azure Arc-enabled Kubernetes system requirements](/azure/azure-arc/kubernetes/system-requirements).
5050
* [AKS Edge Essentials requirements and support matrix](/azure/aks/hybrid/aks-edge-system-requirements).
5151
* [AKS Edge Essentials networking guidance](/azure/aks/hybrid/aks-edge-concept-networking).
5252

53+
* If you're going to deploy Azure IoT Operations to a multi-node cluster with fault tolerance enabled, review the hardware and storage requirements in [Prepare Linux for Edge Volumes](/azure/azure-arc/container-storage/prepare-linux-edge-volumes).
54+
5355
### [Ubuntu](#tab/ubuntu)
5456

5557
* An Azure subscription. If you don't have an Azure subscription, [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
@@ -64,6 +66,7 @@ To prepare your Azure Arc-enabled Kubernetes cluster, you need:
6466

6567
* Hardware that meets the system requirements:
6668

69+
* Ensure that your machine has a minimum of 16-GB available RAM and 8 available vCPUs reserved for Azure IoT Operations.
6770
* [Azure Arc-enabled Kubernetes system requirements](/azure/azure-arc/kubernetes/system-requirements).
6871
* [K3s requirements](https://docs.k3s.io/installation/requirements).
6972

articles/iot-operations/deploy-iot-ops/overview-deploy.md

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kgremban
55
ms.author: kgremban
66
ms.topic: conceptual
77
ms.custom:
8-
ms.date: 09/10/2024
8+
ms.date: 10/02/2024
99

1010
#CustomerIntent: As an IT professional, I want to understand the components and deployment details before I start using Azure IoT Operations.
1111
---
@@ -16,7 +16,7 @@ ms.date: 09/10/2024
1616

1717
## Supported environments
1818

19-
Azure IoT Operations should work on any Arc-enabled Kubernetes cluster that meets the [Azure Arc-enabled Kubernetes system requirements](/azure/azure-arc/kubernetes/system-requirements). Currently Azure IoT Operations doesn't support ARM64 architectures.
19+
Azure IoT Operations should work on any Arc-enabled Kubernetes cluster that meets the [Azure Arc-enabled Kubernetes system requirements](/azure/azure-arc/kubernetes/system-requirements). Currently Azure IoT Operations doesn't support Arm64 architectures.
2020

2121
Microsoft supports Azure Kubernetes Service (AKS) Edge Essentials for deployments on Windows and K3s for deployments on Ubuntu. For a list of specific hardware and software combinations that are tested and validated, see [Validated environments](../overview-iot-operations.md#validated-environments).
2222

@@ -28,7 +28,7 @@ Azure IoT Operations offers two deployment modes. You can choose to deploy with
2828

2929
A deployment with only test settings enabled:
3030

31-
* Does not configure secrets or user-assigned managed identity capabilities.
31+
* Doesn't configure secrets or user-assigned managed identity capabilities.
3232
* Is meant to enable the end-to-end quickstart sample for evaluation purposes, so does support the OPC PLC simulator and connect to cloud resources using system-assigned managed identity.
3333
* Can be upgraded to use secure settings.
3434

@@ -86,6 +86,56 @@ Azure IoT Operations supports Azure Arc sites for organizing instances. A _site_
8686

8787
For more information, see [What is Azure Arc site manager (preview)?](/azure/azure-arc/site-manager/overview)
8888

89+
## Domain allowlist for Azure IoT Operations
90+
91+
If you use enterprise firewalls or proxies to manage outbound traffic, add the following endpoints to your domain allowlist before deploying Azure IoT Operations Preview.
92+
93+
Additionally, allow the Arc-enabled Kubernetes endpoints in [Azure Arc network requirements](/azure/azure-arc/network-requirements-consolidated).
94+
95+
```text
96+
nw-umwatson.events.data.microsoft.com
97+
dc.services.visualstudio.com
98+
github.com
99+
self.events.data.microsoft.com
100+
mirror.enzu.com
101+
ppa.launchpadcontent.net
102+
msit-onelake.pbidedicated.windows.net
103+
gcr.io
104+
adhs.events.data.microsoft.com
105+
gbl.his.arc.azure.cn
106+
onegetcdn.azureedge.net
107+
graph.windows.net
108+
pas.windows.net
109+
agentserviceapi.guestconfiguration.azure.com
110+
aka.ms
111+
api.segment.io
112+
download.microsoft.com
113+
raw.githubusercontent.com
114+
go.microsoft.com
115+
global.metrics.azure.eaglex.ic.gov
116+
gbl.his.arc.azure.us
117+
packages.microsoft.com
118+
global.metrics.azure.microsoft.scloud
119+
www.powershellgallery.com
120+
k8s.io
121+
guestconfiguration.azure.com
122+
ods.opinsights.azure.com
123+
vault.azure.net
124+
googleapis.com
125+
quay.io
126+
handler.control.monitor.azure.com
127+
pkg.dev
128+
docker.io
129+
prod.hot.ingestion.msftcloudes.com
130+
docker.com
131+
prod.microsoftmetrics.com
132+
oms.opinsights.azure.com
133+
azureedge.net
134+
monitoring.azure.com
135+
blob.core.windows.net
136+
azurecr.io
137+
```
138+
89139
## Next steps
90140

91141
[Prepare your Azure Arc-enabled Kubernetes cluster](./howto-prepare-cluster.md) to configure and Arc-enable a cluster for Azure IoT Operations.

articles/iot-operations/get-started-end-to-end-sample/quickstart-deploy.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kgremban
55
ms.author: kgremban
66
ms.topic: quickstart
77
ms.custom: ignite-2023, devx-track-azurecli
8-
ms.date: 05/02/2024
8+
ms.date: 10/02/2024
99

1010
#CustomerIntent: As a < type of user >, I want < what? > so that < why? >.
1111
---
@@ -170,18 +170,22 @@ Run the following CLI commands in your Codespaces terminal.
170170
1. Initialize your cluster for Azure IoT Operations.
171171

172172
>[!TIP]
173-
>This command only needs to be run once per cluster. If you're reusing a cluster that already had Azure IoT Operations version 0.7.0 deployed on it, you can skip this step.
173+
>The `init` command only needs to be run once per cluster. If you're reusing a cluster that already had Azure IoT Operations version 0.7.0 deployed on it, you can skip this step.
174174
175175
```azurecli
176176
az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id)
177177
```
178178

179+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
180+
179181
1. Deploy Azure IoT Operations. This command takes several minutes to complete:
180182

181183
```azurecli
182184
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance
183185
```
184186

187+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
188+
185189
If you get an error that says *Your device is required to be managed to access your resource*, run `az login` again and make sure that you sign in interactively with a browser.
186190

187191
## View resources in your cluster

0 commit comments

Comments
 (0)