Skip to content

Commit 44e9c01

Browse files
committed
Final M2 review of deployment docs
1 parent ce6a919 commit 44e9c01

File tree

4 files changed

+104
-12
lines changed

4 files changed

+104
-12
lines changed

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

Lines changed: 29 additions & 10 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,22 @@ 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+
:::image type="content" source="./media/howto-deploy-iot-operations/az-iot-ops-init-progress.png" alt-text="A screenshot that shows the progress display for the `az iot ops init` command - portal deployment.":::
165+
166+
1. Deploy Azure IoT Operations to your cluster. Copy and run the `az iot ops create` command.
156167
157-
1. Copy and run the `az iot ops create` command.
168+
This command might take several minutes to complete.
158169
159-
1. Copy and run the `az iot ops secretsync enable` command.
170+
1. Enable secret sync on your Azure IoT Operations instance. Copy and run the `az iot ops secretsync enable` command.
160171
161-
1. Copy and run the `az iot ops identity assign` command.
172+
1. Assign a user-assigned managed identity to your Azure IoT Operations instance. Copy and run the `az iot ops identity assign` command.
162173
163174
1. Once all of the Azure CLI commands complete successfully, you can close the **Install Azure IoT Operations** wizard.
164175
@@ -204,15 +215,20 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
204215

205216
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).
206217

218+
>[!TIP]
219+
>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.
220+
207221
```azurecli
208222
az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --sr-resource-id <SCHEMA_REGISTRY_RESOURCE_ID>
209223
```
210224

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

213229
| Optional parameter | Value | Description |
214230
| --------- | ----- | ----------- |
215-
| `--no-progress` | | Disables the deployment progress display in the terminal. |
231+
| `--no-progress` | | Disable the deployment progress display in the terminal. |
216232
| `--enable-fault-tolerance` | `false`, `true` | Enables fault tolerance for Azure Arc Container Storage. At least three cluster nodes are required. |
217233
| `--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**. |
218234
| `--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**. |
@@ -223,13 +239,16 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
223239
az iot ops create --name <NEW_INSTANCE_NAME> --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
224240
```
225241

242+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
243+
226244
Use the optional parameters to customize your instance, including:
227245

228246
| Optional parameter | Value | Description |
229247
| --------- | ----- | ----------- |
230-
| `--no-progress` | | Disables the deployment progress display in the terminal. |
248+
| `--no-progress` | | Disable the deployment progress display in the terminal. |
231249
| `--enable-rsync-rules` | | Enable the resource sync rules on the instance to project resources from the edge to the cloud. |
232250
| `--add-insecure-listener` | | Add an insecure 1883 port config to the default listener. *Not for production use*. |
251+
| `--custom-location` | String | Provide a name for the custom location created for your cluster. The default value is **location-{hash(5)}**. |
233252
| `--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). |
234253

235254
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.
@@ -280,12 +299,12 @@ Azure secret requires a user-assigned managed identity with access to the Azure
280299
While the deployment is in progress, you can watch the resources being applied to your cluster.
281300

282301
If your terminal supports it, the `init` and `create` commands display the deployment progress.
283-
302+
<!--
284303
:::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.":::
285304
286305
Once the **Deploy IoT Operations** phase begins, the text in the terminal becomes a link to view the deployment progress in the Azure portal.
287306
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":::
307+
:::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"::: -->
289308

290309
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:
291310

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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, 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: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,72 @@ 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+
Some of these domains are Arc-enabled Kubernetes endpoints. For more information about how those are used, see [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+
sts.windows.net
100+
login.windows.net
101+
self.events.data.microsoft.com
102+
mirror.enzu.com
103+
ppa.launchpadcontent.net
104+
msit-onelake.pbidedicated.windows.net
105+
gcr.io
106+
adhs.events.data.microsoft.com
107+
gbl.his.arc.azure.cn
108+
mcr.microsoft.com
109+
onegetcdn.azureedge.net
110+
graph.windows.net
111+
pas.windows.net
112+
agentserviceapi.guestconfiguration.azure.com
113+
aka.ms
114+
api.segment.io
115+
download.microsoft.com
116+
gbl.his.arc.azure.com
117+
raw.githubusercontent.com
118+
go.microsoft.com
119+
global.metrics.azure.eaglex.ic.gov
120+
gbl.his.arc.azure.us
121+
management.azure.com
122+
packages.microsoft.com
123+
global.metrics.azure.microsoft.scloud
124+
k8sconnectcsp.azureedge.net
125+
www.powershellgallery.com
126+
k8connecthelm.azureedge.net
127+
login.microsoftonline.com
128+
k8s.io
129+
guestconfiguration.azure.com
130+
ods.opinsights.azure.com
131+
dp.kubernetesconfiguration.azure.com
132+
login.microsoft.com
133+
vault.azure.net
134+
obo.arc.azure.com
135+
data.mcr.microsoft.com
136+
servicebus.windows.net
137+
googleapis.com
138+
quay.io
139+
his.arc.azure.com
140+
handler.control.monitor.azure.com
141+
pkg.dev
142+
docker.io
143+
prod.hot.ingestion.msftcloudes.com
144+
docker.com
145+
prod.microsoftmetrics.com
146+
oms.opinsights.azure.com
147+
azureedge.net
148+
monitoring.azure.com
149+
guestnotificationservice.azure.com
150+
blob.core.windows.net
151+
azurecr.io
152+
graph.microsoft.com
153+
```
154+
89155
## Next steps
90156

91157
[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: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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)