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
Copy file name to clipboardExpand all lines: articles/iot-operations/deploy-iot-ops/howto-deploy-iot-operations.md
+36-15Lines changed: 36 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: kgremban
5
5
ms.author: kgremban
6
6
ms.topic: how-to
7
7
ms.custom: ignite-2023, devx-track-azurecli
8
-
ms.date: 09/26/2024
8
+
ms.date: 10/02/2024
9
9
10
10
#CustomerIntent: As an OT professional, I want to deploy Azure IoT Operations to a Kubernetes cluster.
11
11
---
@@ -112,7 +112,9 @@ The Azure portal deployment experience is a helper tool that generates a deploym
112
112
113
113
1. Select **Select Azure Storage container**.
114
114
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**.
116
118
117
119
1. Select a container in your storage account or select **Container** to create one.
118
120
@@ -152,13 +154,26 @@ The Azure portal deployment experience is a helper tool that generates a deploym
152
154
153
155
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.
154
156
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.
156
167
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:
158
169
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.
160
173
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.
162
177
163
178
1. Once all of the Azure CLI commands complete successfully, you can close the **Install Azure IoT Operations** wizard.
164
179
@@ -204,16 +219,21 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
204
219
205
220
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).
206
221
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
+
207
225
```azurecli
208
226
az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --sr-resource-id <SCHEMA_REGISTRY_RESOURCE_ID>
209
227
```
210
228
229
+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
230
+
211
231
Use the [optional parameters](/cli/azure/iot/ops#az-iot-ops-init-optional-parameters) to customize your cluster, including:
212
232
213
233
| Optional parameter | Value | Description |
214
234
| --------- | ----- | ----------- |
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. |
217
237
|`--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**. |
218
238
|`--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**. |
219
239
@@ -223,13 +243,16 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
223
243
az iot ops create --name <NEW_INSTANCE_NAME> --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
224
244
```
225
245
246
+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
247
+
226
248
Use the optional parameters to customize your instance, including:
227
249
228
250
| Optional parameter | Value | Description |
229
251
| --------- | ----- | ----------- |
230
-
|`--no-progress`||Disables the deployment progress display in the terminal. |
252
+
|`--no-progress`||Disable the deployment progress display in the terminal. |
231
253
|`--enable-rsync-rules`|| Enable the resource sync rules on the instance to project resources from the edge to the cloud. |
232
254
|`--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)}**. |
233
256
|`--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). |
234
257
235
258
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
269
292
270
293
You will need to grant the identity permission to whichever cloud resource this will be used for.
271
294
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.
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
+
<!--
284
305
:::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.":::
285
306
286
307
Once the **Deploy IoT Operations** phase begins, the text in the terminal becomes a link to view the deployment progress in the Azure portal.
287
308
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":::-->
289
310
290
311
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:
* 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
+
53
55
### [Ubuntu](#tab/ubuntu)
54
56
55
57
* 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:
64
66
65
67
* Hardware that meets the system requirements:
66
68
69
+
* Ensure that your machine has a minimum of 16-GB available RAM and 8 available vCPUs reserved for Azure IoT Operations.
67
70
*[Azure Arc-enabled Kubernetes system requirements](/azure/azure-arc/kubernetes/system-requirements).
Copy file name to clipboardExpand all lines: articles/iot-operations/deploy-iot-ops/overview-deploy.md
+53-3Lines changed: 53 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: kgremban
5
5
ms.author: kgremban
6
6
ms.topic: conceptual
7
7
ms.custom:
8
-
ms.date: 09/10/2024
8
+
ms.date: 10/02/2024
9
9
10
10
#CustomerIntent: As an IT professional, I want to understand the components and deployment details before I start using Azure IoT Operations.
11
11
---
@@ -16,7 +16,7 @@ ms.date: 09/10/2024
16
16
17
17
## Supported environments
18
18
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.
20
20
21
21
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).
22
22
@@ -28,7 +28,7 @@ Azure IoT Operations offers two deployment modes. You can choose to deploy with
28
28
29
29
A deployment with only test settings enabled:
30
30
31
-
*Does not configure secrets or user-assigned managed identity capabilities.
31
+
*Doesn't configure secrets or user-assigned managed identity capabilities.
32
32
* 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.
33
33
* Can be upgraded to use secure settings.
34
34
@@ -86,6 +86,56 @@ Azure IoT Operations supports Azure Arc sites for organizing instances. A _site_
86
86
87
87
For more information, see [What is Azure Arc site manager (preview)?](/azure/azure-arc/site-manager/overview)
88
88
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
+
89
139
## Next steps
90
140
91
141
[Prepare your Azure Arc-enabled Kubernetes cluster](./howto-prepare-cluster.md) to configure and Arc-enable a cluster for Azure IoT Operations.
Copy file name to clipboardExpand all lines: articles/iot-operations/get-started-end-to-end-sample/quickstart-deploy.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: kgremban
5
5
ms.author: kgremban
6
6
ms.topic: quickstart
7
7
ms.custom: ignite-2023, devx-track-azurecli
8
-
ms.date: 05/02/2024
8
+
ms.date: 10/02/2024
9
9
10
10
#CustomerIntent: As a < type of user >, I want < what? > so that < why? >.
11
11
---
@@ -170,18 +170,22 @@ Run the following CLI commands in your Codespaces terminal.
170
170
1. Initialize your cluster for Azure IoT Operations.
171
171
172
172
>[!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.
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
180
+
179
181
1. Deploy Azure IoT Operations. This command takes several minutes to complete:
180
182
181
183
```azurecli
182
184
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance
183
185
```
184
186
187
+
This command might take several minutes to complete. You can watch the progress in the deployment progress display in the terminal.
188
+
185
189
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.
0 commit comments