Skip to content

Commit 36c4583

Browse files
Merge pull request #265514 from kgremban/feb6-aio
Clean cluster prereq; role permissions; list spcs
2 parents 084ba03 + ea46d3e commit 36c4583

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

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

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,19 @@ Deploy Azure IoT Operations preview - enabled by Azure Arc to a Kubernetes clust
1717

1818
## Prerequisites
1919

20+
Cloud resources:
21+
2022
* 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.
2123

24+
* Azure access permissions. At a minimum, have **Contributor** permissions in your Azure subscription. Depending on the deployment method and feature flag status you select, you may also need **Microsoft/Authorization/roleAssignments/write** permissions. If you *don't* have role assignment write permissions, take the following additional steps when deploying:
25+
26+
* If deploying with an Azure Resource Manager template, set the `deployResourceSyncRules` parameter to `false`.
27+
* If deploying with the Azure CLI, include the `--disable-rsync-rules`.
28+
29+
* An [Azure Key Vault](../../key-vault/general/overview.md) that has the **Permission model** set to **Vault access policy**. You can check this setting in the **Access configuration** section of an existing key vault.
30+
31+
Development resources:
32+
2233
* Azure CLI installed on your development machine. For more information, see [How to install the Azure CLI](/cli/azure/install-azure-cli). This scenario requires Azure CLI version 2.46.0 or higher. Use `az --version` to check your version and `az upgrade` to update if necessary.
2334

2435
* The Azure IoT Operations extension for Azure CLI. Use the following command to add the extension or update it to the latest version:
@@ -27,17 +38,20 @@ Deploy Azure IoT Operations preview - enabled by Azure Arc to a Kubernetes clust
2738
az extension add --upgrade --name azure-iot-ops
2839
```
2940

30-
* An Azure Arc-enabled Kubernetes cluster. If you don't have one, follow the steps in [Prepare your Azure Arc-enabled Kubernetes cluster](./howto-prepare-cluster.md?tabs=wsl-ubuntu). Using Ubuntu in Windows Subsystem for Linux (WSL) is the simplest way to get a Kubernetes cluster for testing.
41+
A cluster host:
42+
43+
* An Azure Arc-enabled Kubernetes cluster. If you don't have one, follow the steps in [Prepare your Azure Arc-enabled Kubernetes cluster](./howto-prepare-cluster.md?tabs=wsl-ubuntu).
3144

32-
Azure IoT Operations should work on any CNCF-conformant kubernetes cluster. Currently, Microsoft only supports K3s on Ubuntu Linux and WSL, or AKS Edge Essentials on Windows.
45+
If you've already deployed Azure IoT Operations to your cluster, uninstall those resources before continuing. For more information, see [Update a deployment](#update-a-deployment).
46+
47+
Azure IoT Operations should work on any CNCF-conformant kubernetes cluster. Currently, Microsoft only supports K3s on Ubuntu Linux and WSL, or AKS Edge Essentials on Windows. Using Ubuntu in Windows Subsystem for Linux (WSL) is the simplest way to get a Kubernetes cluster for testing.
3348

3449
Use the Azure IoT Operations extension for Azure CLI to verify that your cluster host is configured correctly for deployment by using the [verify-host](/cli/azure/iot/ops#az-iot-ops-verify-host) command on the cluster host:
3550

3651
```azurecli
3752
az iot ops verify-host
3853
```
3954

40-
* An [Azure Key Vault](../../key-vault/general/overview.md) that has the **Permission model** set to **Vault access policy**. You can check this setting in the **Access configuration** section of an existing key vault.
4155

4256
## Deploy extensions
4357

@@ -128,6 +142,8 @@ az iot ops init --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --kv-id $(az keyvau
128142
>[!TIP]
129143
>If you get an error that says *Your device is required to be managed to access your resource*, go back to the previous step and make sure that you signed in interactively.
130144
145+
If you don't have **Microsoft.Authorization/roleAssignment/write** permissions in your Azure subscription, include the `--disable-rsync-rules` feature flag.
146+
131147
Use optional flags to customize the `az iot ops init` command. To learn more, see [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init).
132148

133149
#### [GitHub Actions](#tab/github)
@@ -208,6 +224,7 @@ Now, you can deploy Azure IoT Operations to your cluster.
208224
| `dataProcessorSecrets` | object | Pass a secret to an Azure IoT Data Processor resource. |
209225
| `mqSecrets` | object | Pass a secret to an Azure IoT MQ resource. |
210226
| `opcUaBrokerSecrets` | object | Pass a secret to an Azure OPC UA Broker resource. |
227+
| `deployResourceSyncRules` | Set to `false` if you don't have **Microsoft.Authorization/roleAssignment/write** permissions in your Azure subscription. |
211228

212229
1. Save your changes to the parameters file.
213230

@@ -269,6 +286,12 @@ To view your cluster on the Azure portal, use the following steps:
269286

270287
There's also an extension called **akvsecretsprovider**. This extension is the secrets provider that you configured and installed on your cluster with the `az iot ops init` command. You might delete and reinstall the Azure IoT Operations components during testing, but keep the secrets provider extension on your cluster.
271288

289+
## Update a deployment
290+
291+
Currently, there is no support for updating an existing Azure IoT Operations deployment. Instead, start with a clean cluster for a new deployment.
292+
293+
If you want to delete the Azure IoT Operations deployment on your cluster so that you can redeploy to it, navigate to your cluster on the Azure portal. Select the extensions of the type **microsoft.iotoperations.x** and **microsoft.deviceregistry.assets**, then select **Uninstall**. Keep the secrets provider on your cluster, as that is a prerequisite for deployment and not included in a fresh deployment.
294+
272295
## Next steps
273296

274297
If your components need to connect to Azure endpoints like SQL or Fabric, learn how to [Manage secrets for your Azure IoT Operations deployment](./howto-manage-secrets.md).

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,11 @@ Once you have the secret store set up on your cluster, you can create and add Az
132132

133133
1. Create your secret in Key Vault with whatever name and value you need. You can create a secret by using the [Azure portal](https://portal.azure.com) or the [az keyvault secret set](/cli/azure/keyvault/secret#az-keyvault-secret-set) command.
134134

135-
1. On your cluster, identify the secret provider class (SPC) for the component that you want to add the secret to. For example, `aio-default-spc`.
135+
1. On your cluster, identify the secret provider class (SPC) for the component that you want to add the secret to. For example, `aio-default-spc`. Use the following command to list all SPCs on your cluster:
136+
137+
```bash
138+
kubectl get secretproviderclasses -A
139+
```
136140

137141
1. Open the file in your preferred text editor. If you use k9s, type `e` to edit.
138142

articles/iot-operations/get-started/quickstart-deploy.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ Review the prerequisites based on the environment you use to host the Kubernetes
3636

3737
For this quickstart, we recommend GitHub Codespaces as a quick way to get started in a virtual environment without installing new tools. Or, use Azure Kubernetes Service (AKS) Edge Essentials to create a cluster on Windows devices or K3s on Ubuntu Linux devices.
3838

39+
As part of this quickstart, you create a cluster in either Codespaces, AKS Edge Essentias, or Linux. If you want to reuse a cluster that you've deployed Azure IoT Operations to before, refer to the steps in [Clean up resources](#clean-up-resources) to uninstall Azure IoT Operations before continuing.
40+
3941
# [Virtual](#tab/codespaces)
4042

4143
* 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.
@@ -87,6 +89,8 @@ Azure IoT Operations is a suite of data services that run on Kubernetes clusters
8789

8890
Azure IoT Operations should work on any Kubernetes cluster that conforms to the Cloud Native Computing Foundation (CNCF) standards. For this quickstart, use GitHub Codespaces, AKS Edge Essentials on Windows, or K3s on Ubuntu Linux.
8991

92+
In this section, you create a new cluster and connect it to Azure Arc. If you want to reuse a cluster that you've deployed Azure IoT Operations to before, refer to the steps in [Clean up resources](#clean-up-resources) to uninstall Azure IoT Operations before continuing.
93+
9094
# [Virtual](#tab/codespaces)
9195

9296
[!INCLUDE [prepare-codespaces](../includes/prepare-codespaces.md)]

articles/iot-operations/troubleshoot/troubleshoot.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ For general deployment and configuration troubleshooting, you can use the Azure
2525

2626
- Use [az iot ops support create-bundle](/cli/azure/iot/ops/support#az-iot-ops-support-create-bundle) to collect logs and traces to help you diagnose problems. The *support create-bundle* command creates a standard support bundle zip archive you can review or provide to Microsoft Support.
2727

28+
### Linked authorization failed error
29+
30+
If your deployment fails with the `"code":"LinkedAuthorizationFailed"` error, it means that you don't have **Microsoft.Authorization/roleAssignments/write** permissions on the resource group that contains your cluster.
31+
32+
To resolve this issue, either request the required permissions or make the following adjustments to your deployment steps:
33+
34+
* If deploying with an Azure Resource Manager template, set the `deployResourceSyncRules` parameter to `false`.
35+
* If deploying with the Azure CLI, include the `--disable-rsync-rules` flag with the [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init) command.
36+
2837
## Data Processor pipeline deployment status is failed
2938

3039
Your Data Processor pipeline deployment status is showing as **Failed**.

0 commit comments

Comments
 (0)