Skip to content

Commit 528fd45

Browse files
authored
compatibility with AIO v0.7.31 (#22)
* compatibility with AIO v0.7.31 * integrated PR feedback
1 parent b78d2d6 commit 528fd45

File tree

4 files changed

+39
-16
lines changed

4 files changed

+39
-16
lines changed

.github/workflows/build-vm.yaml

+14-16
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ jobs:
8585
adminPassword: ${{ secrets.VMADMINPASSWORD }}
8686
clusterName: "aksaio-${{github.run_id}}"
8787
kvName: "kv-${{github.run_id}}"
88+
saName: "sa${{github.run_id}}"
89+
srName: "sr-${{github.run_id}}"
8890
vmIdentityName: ${{ inputs.vmName }}-id
8991
grafanaDashboardName: footprint-${{github.run_id}}
9092
monitorName: footprint
@@ -161,7 +163,6 @@ jobs:
161163
az provider register -n "Microsoft.ExtendedLocation"
162164
az provider register -n "Microsoft.Kubernetes";
163165
az provider register -n "Microsoft.KubernetesConfiguration";
164-
az provider register -n "Microsoft.IoTOperationsOrchestrator";
165166
az provider register -n "Microsoft.IoTOperations";
166167
az provider register -n "Microsoft.DeviceRegistry";
167168
az provider register -n "Microsoft.Insights";
@@ -174,14 +175,6 @@ jobs:
174175
osType=$(az vm show -g $resourceGroup -n $vmName --query storageProfile.osDisk.osType -o tsv)
175176
principalId=$(az identity show --name $vmIdentityName -g $resourceGroup --query principalId -o tsv)
176177
177-
echo "Creating keyvault..."
178-
kvId=$(az keyvault create --enable-rbac-authorization false -n $kvName -g $resourceGroup -o tsv --no-self-perms --query id -o tsv)
179-
az keyvault set-policy -n $kvName -g $resourceGroup --object-id ${{ secrets.AZURE_SP_OBJECT_ID }} --secret-permissions all --key-permissions all --storage-permissions all --certificate-permissions all
180-
az keyvault set-policy -n $kvName -g $resourceGroup --object-id $principalId --secret-permissions all --key-permissions all --storage-permissions all --certificate-permissions all
181-
182-
echo "Encode secret for security reasons..."
183-
encodedBase64Secret=$(echo ${{ secrets.AZURE_SP_CLIENT_SECRET }} | base64)
184-
185178
echo "Creating VM extension for $osType with force update..."
186179
if [ $osType == "Windows" ]; then
187180
az vm extension set \
@@ -193,14 +186,16 @@ jobs:
193186
--protected-settings "{\"commandToExecute\":\"powershell Get-AksEdgeKubeConfig -KubeConfigPath C:\\Scripts -Confirm:\$false; \
194187
kubectl get pods -A -v6 --kubeconfig C:\\scripts\\config; \
195188
az login --identity; \
196-
az extension add --name connectedk8s; \
197-
az extension add --name azure-iot-ops; \
189+
az extension add --name connectedk8s --yes; \
190+
az extension add --name azure-iot-ops --version 0.7.0b1 --yes; \
198191
az connectedk8s connect --debug -n $clusterName -l $location -g $resourceGroup --kube-config C:\\Scripts\\config --subscription $subscriptionId; \
199192
Remove-Item -LiteralPath C:\\Windows\\System32\\config\\systemprofile\\.azure\\AzureArcCharts -Recurse -Force; \
200193
az connectedk8s enable-features --debug -n $clusterName -g $resourceGroup --kube-config C:\\Scripts\\config --custom-locations-oid \"\"${{ secrets.CUSTOM_LOCATIONS_OBJECT_ID }}\"\" --features cluster-connect custom-locations; \
201194
\$env:KUBECONFIG='C:\\Scripts\\config'; \
202-
\$decodedSecret = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('$encodedBase64Secret')); \
203-
az iot ops init --simulate-plc --no-progress --debug --cluster $clusterName -g $resourceGroup --kv-id \"\"$kvId\"\" --sp-app-id \"\"${{ secrets.AZURE_SP_CLIENT_ID }}\"\" --sp-object-id \"\"${{ secrets.AZURE_SP_OBJECT_ID }}\"\" --sp-secret \"\"\$decodedSecret\"\"; \
195+
saId=$(az storage account create -n $saName -g $resourceGroup --enable-hierarchical-namespace -o tsv --query id); \
196+
srId=$(az iot ops schema registry create -n $srName -g $resourceGroup --registry-namespace $srName --sa-resource-id \"\"$saId\"\" -o tsv --query id); \
197+
az iot ops init --no-progress --debug --cluster $clusterName -g $resourceGroup --sr-resource-id \"\"$srId\"\" --kubernetes-distro K3s; \
198+
az iot ops create -n $clusterName --cluster $clusterName -g $resourceGroup; \
204199
\"}"
205200
else
206201
az vm extension set \
@@ -216,11 +211,14 @@ jobs:
216211
kubectl get pods -A -v6 && \
217212
decodedSecret=\$(echo $encodedBase64Secret | base64 -d) && \
218213
az login --service-principal -u ${{ secrets.AZURE_SP_CLIENT_ID }} -p \"\"\$decodedSecret\"\" --tenant $tenantId && \
219-
az extension add --name connectedk8s && \
220-
az extension add --name azure-iot-ops && \
214+
az extension add --name connectedk8s --yes && \
215+
az extension add --name azure-iot-ops --version 0.7.0b1 --yes && \
221216
az connectedk8s connect --debug -n $clusterName -l $location -g $resourceGroup --subscription $subscriptionId && \
222217
az connectedk8s enable-features --debug -n $clusterName -g $resourceGroup --custom-locations-oid \"\"${{ secrets.CUSTOM_LOCATIONS_OBJECT_ID }}\"\" --features cluster-connect custom-locations && \
223-
az iot ops init --simulate-plc --debug --cluster $clusterName -g $resourceGroup --kv-id \"\"$kvId\"\" --sp-app-id \"\"${{ secrets.AZURE_SP_CLIENT_ID }}\"\" --sp-object-id \"\"${{ secrets.AZURE_SP_OBJECT_ID }}\"\" --sp-secret \"\"\$decodedSecret\"\" --no-progress \
218+
saId=$(az storage account create -n $saName -g $resourceGroup --enable-hierarchical-namespace -o tsv --query id) && \
219+
srId=$(az iot ops schema registry create -n $srName -g $resourceGroup --registry-namespace $srName --sa-resource-id \"\"$saId\"\" -o tsv --query id) && \
220+
az iot ops init --debug --cluster $clusterName -g $resourceGroup --sr-resource-id \"\"$srId\"\" --kubernetes-distro K3s --no-progress && \
221+
az iot ops create -n $clusterName --cluster $clusterName -g $resourceGroup \
224222
\"}"
225223
fi
226224

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Pre-Built Azure IoT Operations Environments
22

3+
> [!IMPORTANT]
4+
> This repositories is compatible with Azure IoT Operations Preview [v0.7.31](https://github.com/Azure/azure-iot-operations/releases/tag/v0.7.31).
5+
36
This repository sets up the infrastructure to create vhdx images and VMs for Azure IoT Operations on Arc-enabled servers.
47
This infrastructure enables you to install instrumentation tools and collect memory dumps for applications and core components.
58

scripts/image-template-linux.bicep

+15
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,21 @@ resource azureImageBuilderTemplate 'Microsoft.VirtualMachineImages/imageTemplate
6363
'sudo apt-get install -y jq'
6464
]
6565
}
66+
{
67+
type: 'Shell'
68+
name: 'Install Kubectl'
69+
inline: [
70+
'sudo apt-get update'
71+
'sudo apt-get install -y ca-certificates curl'
72+
'sudo mkdir "/etc/apt/keyrings"'
73+
'curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg'
74+
'sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg'
75+
'echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list'
76+
'sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list'
77+
'sudo apt-get update'
78+
'sudo apt-get install -y kubectl'
79+
]
80+
}
6681
{
6782
type: 'Shell'
6883
name: 'New dir'

scripts/image-template-windows.bicep

+7
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,13 @@ resource azureImageBuilderTemplate 'Microsoft.VirtualMachineImages/imageTemplate
425425
'$ProgressPreference = \'SilentlyContinue\'; Set-ExecutionPolicy Bypass -Scope LocalMachine -Force; Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList \'/I AzureCLI.msi /quiet\'; Remove-Item .\\AzureCLI.msi'
426426
]
427427
}
428+
{
429+
type: 'PowerShell'
430+
name: 'Install Kubectl'
431+
inline: [
432+
'winget install -e --id Kubernetes.kubectl'
433+
]
434+
}
428435
{
429436
type: 'PowerShell'
430437
name: 'AzSetup'

0 commit comments

Comments
 (0)