Skip to content

Commit

Permalink
Promote 0.5.0-preview to AIO repo (#47)
Browse files Browse the repository at this point in the history
Promote the 0.5.0-preview version of AIO.
  • Loading branch information
chgennar authored May 2, 2024
1 parent 4ef035e commit cd5e0a2
Show file tree
Hide file tree
Showing 11 changed files with 195 additions and 158 deletions.
6 changes: 2 additions & 4 deletions .github/workflows/create-azure-iot-operations-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ jobs:
exit 1
fi
if [[ "${{ github.ref }}" != "refs/heads/main" ]]; then
echo "::error::This workflow should only be run on the main branch"
if [[ "${{ github.ref }}" != "refs/heads/main" ]] && [[ "${{ github.ref }}" != "refs/heads/release"* ]]; then
echo "::error::This workflow should only be run on the main and release branch"
exit 1
fi
Expand Down Expand Up @@ -155,5 +155,3 @@ jobs:
git branch release/${{inputs.version}}
git push origin release/${{inputs.version}}
fi
94 changes: 47 additions & 47 deletions .github/workflows/deploy-azure-iot-operations.yml
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
name: Deploy Azure IoT Operations
run-name: Deploy to ${{ github.event.inputs.aioParamsPath }}
on:
workflow_dispatch:
inputs:
clusterSubscription:
description: 'The subscription ID where the Arc-enabled cluster is.'
required: true
type: string
clusterResourceGroup:
description: 'The resource group where the Arc-enabled cluster is.'
required: true
type: string
aioParamsPath:
description: 'The path to the environment parameters file for the AIO deployment. (e.g., environments/example.parameters.json)'
required: true
type: string
jobs:
Deploy:
runs-on: ubuntu-latest
steps:
- name: Azure Login
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

- name: Checkout
uses: actions/checkout@v1

- name: Deploy AIO to Arc-enabled Cluster
uses: azure/CLI@v1
with:
inlineScript: |
templateFile="$GITHUB_WORKSPACE/dev/azure-iot-operations.bicep"
[[ ! -f "$templateFile" ]] && templateFile="$GITHUB_WORKSPACE/release/azure-iot-operations.json"
if [[ ! -f "$templateFile" ]]; then
echo "ERROR: Could not find the AIO template to deploy."
exit 1
fi
az deployment group create \
--resource-group ${{ github.event.inputs.clusterResourceGroup }} \
--subscription ${{ github.event.inputs.clusterSubscription }} \
--name aio-deployment-${{ github.run_number }} \
--template-file "$templateFile" \
--parameters "@${{ github.event.inputs.aioParamsPath }}" \
--verbose --no-prompt
name: Deploy Azure IoT Operations
run-name: Deploy to ${{ github.event.inputs.aioParamsPath }}
on:
workflow_dispatch:
inputs:
clusterSubscription:
description: 'The subscription ID where the Arc-enabled cluster is.'
required: true
type: string
clusterResourceGroup:
description: 'The resource group where the Arc-enabled cluster is.'
required: true
type: string
aioParamsPath:
description: 'The path to the environment parameters file for the AIO deployment. (e.g., environments/example.parameters.json)'
required: true
type: string
jobs:
Deploy:
runs-on: ubuntu-latest
steps:
- name: Azure Login
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

- name: Checkout
uses: actions/checkout@v1

- name: Deploy AIO to Arc-enabled Cluster
uses: azure/CLI@v1
with:
inlineScript: |
templateFile="$GITHUB_WORKSPACE/dev/azure-iot-operations.bicep"
[[ ! -f "$templateFile" ]] && templateFile="$GITHUB_WORKSPACE/release/azure-iot-operations.json"
if [[ ! -f "$templateFile" ]]; then
echo "ERROR: Could not find the AIO template to deploy."
exit 1
fi
az deployment group create \
--resource-group ${{ github.event.inputs.clusterResourceGroup }} \
--subscription ${{ github.event.inputs.clusterSubscription }} \
--name aio-deployment-${{ github.run_number }} \
--template-file "$templateFile" \
--parameters "@${{ github.event.inputs.aioParamsPath }}" \
--verbose --no-prompt
76 changes: 39 additions & 37 deletions release/azure-iot-operations.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.25.53.49325",
"templateHash": "14873796820937749076"
"version": "0.26.170.59819",
"templateHash": "4883201656764697459"
},
"description": "This template deploys Azure IoT Operations."
},
Expand Down Expand Up @@ -264,6 +264,7 @@
"releaseNamespace": "[variables('AIO_CLUSTER_RELEASE_NAMESPACE')]"
}
},
"AIO_EXTENSION_SUFFIX": "[take(uniqueString(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName'))), 5)]",
"AIO_TRUST_CONFIG_MAP": "aio-ca-trust-bundle-test-only",
"AIO_TRUST_ISSUER": "aio-ca-issuer",
"AIO_TRUST_CONFIG_MAP_KEY": "ca.crt",
Expand All @@ -287,14 +288,14 @@
"opcUaBroker": "[variables('DEFAULT_CONTAINER_REGISTRY')]"
},
"VERSIONS": {
"mq": "0.3.0-preview",
"mq": "0.4.0-preview",
"observability": "0.1.0-preview",
"aio": "0.4.0-preview",
"aio": "0.5.0-preview",
"layeredNetworking": "0.1.0-preview",
"processor": "0.2.0-preview",
"opcUaBroker": "0.3.0-preview",
"processor": "0.2.1-preview",
"opcUaBroker": "0.4.0-preview",
"adr": "0.1.0-preview",
"akri": "0.2.1-preview"
"akri": "0.3.0-preview"
},
"TRAINS": {
"mq": "preview",
Expand Down Expand Up @@ -448,7 +449,7 @@
"containers": [
{
"name": "aio-opc-asset-discovery",
"image": "[format('{0}/opcuabroker/discovery-handler:{1}.4', variables('CONTAINER_REGISTRY_DOMAINS').opcUaBroker, variables('VERSIONS').opcUaBroker)]",
"image": "[format('{0}/opcuabroker/discovery-handler:{1}', variables('CONTAINER_REGISTRY_DOMAINS').opcUaBroker, variables('VERSIONS').opcUaBroker)]",
"imagePullPolicy": "Always",
"resources": {
"requests": {
Expand Down Expand Up @@ -525,7 +526,7 @@
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "azure-iot-operations",
"name": "[format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"identity": {
"type": "SystemAssigned"
},
Expand All @@ -551,7 +552,7 @@
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "assets",
"name": "[format('assets-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"properties": {
"extensionType": "microsoft.deviceregistry.assets",
"version": "[variables('VERSIONS').adr]",
Expand All @@ -563,14 +564,14 @@
}
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "mq",
"name": "[format('mq-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"identity": {
"type": "SystemAssigned"
},
Expand All @@ -589,14 +590,14 @@
}
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "processor",
"name": "[format('processor-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"identity": {
"type": "SystemAssigned"
},
Expand All @@ -618,36 +619,36 @@
}
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "akri",
"name": "[format('akri-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"properties": {
"extensionType": "microsoft.iotoperations.akri",
"version": "[variables('VERSIONS').akri]",
"releaseTrain": "[variables('TRAINS').akri]",
"autoUpgradeMinorVersion": false,
"scope": "[variables('AIO_EXTENSION_SCOPE')]",
"configurationSettings": {
"webhookConfiguration.enabled": "true",
"certManagerWebhookCertificate.enabled": "true",
"webhookConfiguration.enabled": "false",
"certManagerWebhookCertificate.enabled": "false",
"agent.host.containerRuntimeSocket": "[parameters('containerRuntimeSocket')]",
"kubernetesDistro": "[parameters('kubernetesDistro')]"
}
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "opc-ua-broker",
"name": "[format('opc-ua-broker-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"properties": {
"extensionType": "microsoft.iotoperations.opcuabroker",
"version": "[variables('VERSIONS').opcUaBroker]",
Expand All @@ -662,6 +663,7 @@
"mqttBroker.address": "[variables('MQ_PROPERTIES').localUrl]",
"mqttBroker.connectUserProperties.metriccategory": "aio-opc",
"opcPlcSimulation.deploy": "[format('{0}', parameters('simulatePLC'))]",
"opcPlcSimulation.autoAcceptUntrustedCertificates": "[format('{0}', parameters('simulatePLC'))]",
"openTelemetry.enabled": "true",
"openTelemetry.endpoints.default.uri": "[variables('OBSERVABILITY').otelCollectorAddress]",
"openTelemetry.endpoints.default.protocol": "grpc",
Expand All @@ -680,16 +682,16 @@
}
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[resourceId('Microsoft.IoTOperationsMQ/mq', parameters('mqInstanceName'))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'mq')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('mq-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-03-01",
"scope": "[format('Microsoft.Kubernetes/connectedClusters/{0}', parameters('clusterName'))]",
"name": "layered-networking",
"name": "[format('layered-networking-{0}', variables('AIO_EXTENSION_SUFFIX'))]",
"properties": {
"extensionType": "microsoft.iotoperations.layerednetworkmanagement",
"version": "[variables('VERSIONS').layeredNetworking]",
Expand All @@ -699,7 +701,7 @@
"configurationSettings": {}
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
Expand All @@ -712,17 +714,17 @@
"namespace": "[variables('AIO_CLUSTER_RELEASE_NAMESPACE')]",
"displayName": "[parameters('customLocationName')]",
"clusterExtensionIds": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'assets')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'processor')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'mq')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('assets-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('processor-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('mq-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'azure-iot-operations')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'processor')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'assets')]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', 'mq')]"
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('azure-iot-operations-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('processor-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('assets-{0}', variables('AIO_EXTENSION_SUFFIX')))]",
"[extensionResourceId(resourceId('Microsoft.Kubernetes/connectedClusters', parameters('clusterName')), 'Microsoft.KubernetesConfiguration/extensions', format('mq-{0}', variables('AIO_EXTENSION_SUFFIX')))]"
]
},
{
Expand Down Expand Up @@ -848,20 +850,20 @@
"authImage": {
"pullPolicy": "Always",
"repository": "[format('{0}/dmqtt-authentication', variables('CONTAINER_REGISTRY_DOMAINS').mq)]",
"tag": "[format('{0}-rc3', variables('VERSIONS').mq)]"
"tag": "[variables('VERSIONS').mq]"
},
"brokerImage": {
"pullPolicy": "Always",
"repository": "[format('{0}/dmqtt-pod', variables('CONTAINER_REGISTRY_DOMAINS').mq)]",
"tag": "[format('{0}-rc3', variables('VERSIONS').mq)]"
"tag": "[variables('VERSIONS').mq]"
},
"healthManagerImage": {
"pullPolicy": "Always",
"repository": "[format('{0}/dmqtt-operator', variables('CONTAINER_REGISTRY_DOMAINS').mq)]",
"tag": "[format('{0}-rc3', variables('VERSIONS').mq)]"
"tag": "[variables('VERSIONS').mq]"
},
"diagnostics": {
"probeImage": "[format('{0}/diagnostics-probe:{1}-rc3', variables('CONTAINER_REGISTRY_DOMAINS').mq, variables('VERSIONS').mq)]",
"probeImage": "[format('{0}/diagnostics-probe:{1}', variables('CONTAINER_REGISTRY_DOMAINS').mq, variables('VERSIONS').mq)]",
"enableSelfCheck": true
},
"mode": "[parameters('mqMode')]",
Expand Down Expand Up @@ -895,7 +897,7 @@
"properties": {
"image": {
"repository": "[format('{0}/diagnostics-service', variables('CONTAINER_REGISTRY_DOMAINS').mq)]",
"tag": "[format('{0}-rc3', variables('VERSIONS').mq)]"
"tag": "[variables('VERSIONS').mq]"
},
"logLevel": "info",
"logFormat": "text"
Expand Down
6 changes: 1 addition & 5 deletions tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,4 @@

## Cleanup

To uninstall all Azure IoT Operation's components, reset the k8 cluster to a clean state.

## SetSubscriptionID

To set subscriptionID across all Grafana dashboards, run "SetSubscriptionID.bat" and enter your desired SubscriptionID when prompted.
To uninstall all Azure IoT Operation's components, reset the k8 cluster to a clean state.
Loading

0 comments on commit cd5e0a2

Please sign in to comment.