Skip to content

Commit 199d180

Browse files
authored
Azure quickstart updates (#36)
* Supported CentOS version changed to 7.9 * Updated Azure VM types * Updated Azure API versions * Documentation updates and improvements
1 parent a8679e5 commit 199d180

10 files changed

+88
-109
lines changed

.github/workflows/build-test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
echo "AZURELOCATION=centralus" >> $GITHUB_ENV
1818
UNIQUEID="$(date +%s)"
1919
echo "UNIQUEID=$UNIQUEID" >> $GITHUB_ENV
20+
echo "BROKERTESTIMAGE=solace/solace-pubsub-standard:latest" >> $GITHUB_ENV
2021
TESTRESOURCEGROUPNAME="GHTestResourceGroup${UNIQUEID}"
2122
TESTDEPLOYMENTNAME="GHTestDeployment${UNIQUEID}"
2223
echo "TESTRESOURCEGROUPNAME=$TESTRESOURCEGROUPNAME" >> $GITHUB_ENV
@@ -43,7 +44,7 @@ jobs:
4344
run: |
4445
sed -i "s@ARTIFACTSLOCATION@$GITHUB_REPOSITORY/$TESTRUNBRANCH@g" ci/azuredeploy.parameters.json
4546
sed -i "s@UNIQUEID@$UNIQUEID@g" ci/azuredeploy.parameters.json
46-
sed -i "s@TEST_SOLACEDOCKERIMAGE@${{ secrets.BROKER_DOCKER_IMAGE_REF }}@g" ci/azuredeploy.parameters.json
47+
sed -i "s@TEST_SOLACEDOCKERIMAGE@$BROKERTESTIMAGE@g" ci/azuredeploy.parameters.json
4748
sed -i "s@ADMINPASSWORD@$ADMINPASSWORD@g" ci/azuredeploy.parameters.json
4849
sed -i "s@EXPOSURE@Public@g" ci/azuredeploy.parameters.json
4950
cat ci/azuredeploy.parameters.json

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# How to Deploy Standalone or HA Clusters of Solace PubSub+ Software Event Brokers onto Azure
44

5-
This project is a best practice template intended for development and demo purposes. The tested and recommended Solace PubSub+ Software Event Broker version is 9.10.
5+
This project is a best practice template intended for development and demo purposes. The tested and recommended Solace PubSub+ Software Event Broker version is 9.12.
66

77
The Solace PubSub+ software event broker meets the needs of big data, cloud migration, and Internet-of-Things initiatives, and enables microservices and event-driven architecture. Capabilities include topic-based publish/subscribe, request/reply, message queues/queueing, and data streaming for IoT devices and mobile/web apps. The event broker supports open APIs and standard protocols including AMQP, JMS, MQTT, REST, and WebSocket. As well, it can be deployed in on-premise datacenters, natively within private and public clouds, and across complex hybrid cloud environments.
88

@@ -77,12 +77,12 @@ You need to fill in the following fields (* marks the mandatory ones):
7777
| VM and Loadbalancer exposure | Specify the type of access to the broker VMs for SSH and to the Load Balancer for broker services. 'Internal' will make them accessible only from the local virtual network. Default is "Public". |
7878
| DNS Label for LB IP | Used for the public DNS name of the Load Balancer. Name must satisfy regular expression ^[a-z][a-z0-9-]{1,61}[a-z0-9]$ |
7979
| DNS Label for VM IP | Used for the public DNS name of each Virtual Machine. Do not use '-'. The default offers to generate a unique name. |
80-
| CentOS Version | The CentOS version for deploying the Docker containers. Use CentOS 7.2, 7.3, or 7.4. |
80+
| CentOS Version | The CentOS version for deploying the Docker containers. Use CentOS 7.9. |
8181
| Max Number of Client Connections | Broker system scaling: the maximum supported number of client connections |
8282
| Max Number of Queue Messages | Broker system scaling: the maximum number of queue messages, in millions of messages |
83-
| Message Routing VM Size | The size of a PubSub+ broker message routing node VM. Important: ensure adequate CPU and Memory resources are available to support the selected broker system scaling parameters. For requirements, check the [Solace documentation](//docs.solace.com/Configuring-and-Managing/SW-Broker-Specific-Config/System-Scaling-Parameters.htm). |
84-
| Monitor VM Size | The size of the PubSub+ monitor node VM in a High Availabity deployment. For requirements, check [https://docs.solace.com](//docs.solace.com/Configuring-and-Managing/SW-Broker-Specific-Config/System-Resource-Requirements.htm#res-req-container) |
85-
| Data Disk Size | The size of the data disk in GB for diagnostics and message spooling on the Solace Message Routing Nodes. For requirements check https://docs.solace.com. |
83+
| Message Routing VM Size | The size of a PubSub+ broker message routing node VM. Important: ensure adequate CPU and Memory resources are available to support the selected broker system scaling parameters. For requirements, check the [Resource calculator](https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html). |
84+
| Monitor VM Size | The size of the PubSub+ monitor node VM in a High Availabity deployment. For requirements, check the [Resource calculator](https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html) |
85+
| Data Disk Size | The size of the data disk in GB for diagnostics and message spooling on the Solace Message Routing Nodes. For requirements, check the [Resource calculator](https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html). |
8686
| Broker Docker Image Reference | A reference to the Solace PubSub+ event broker Docker image, from step 1. Either the image name with optional tag in an accessible Docker registry or a download URL. The download URL can be obtained from http://dev.solace.com/downloads/ or it can be a URL to a remotely hosted image version. The default value is `solace/solace-pubsub-standard:latest` |
8787
| Deployment Model* | High Availability or Single Node. |
8888
| Existing Virtual Network Name | Only used if deploying into an existing virtual network and subnet. Specify the Existing Virtual Network Name together with the Existing Subnet Name, otherwise leave it at default blank. |
@@ -129,10 +129,10 @@ The [connect] button at the upper left of the `solacetestvm0`, `solacetestvm1`,
129129

130130
![alt text](images/remote_access.png "console with PubSub+ cli")
131131

132-
Use the specified "Admin Username" and "Admin Password" to log in. Once you have access to the base OS command line you can access the PubSub+ CLI with the following command:
132+
The simplest way is to [create an Azure Bastion first, then use the specified "Admin Username" and "Admin Password" to log in](https://docs.microsoft.com/en-us/azure/bastion/bastion-connect-vm-ssh-linux#username). Once you have access to the base OS command line you can access the PubSub+ CLI with the following command:
133133

134134
```
135-
sudo docker exec -it solace /usr/sw/loads/currentload/bin/cli -A
135+
sudo docker exec -it solace cli
136136
```
137137

138138
# Testing data access to the event broker

azuredeploy.json

Lines changed: 36 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,12 @@
7878
},
7979
"centosVersion": {
8080
"type": "string",
81-
"defaultValue": "7.4",
81+
"defaultValue": "7_9",
8282
"metadata": {
83-
"description": "The CentOS version for deploying the Docker containers. This will pick a fully patched image of this given CentOS version. Allowed values: 7.2, 7.3, 7.4"
83+
"description": "The CentOS version for deploying the Docker containers. This will pick a fully patched image of this given CentOS version. Allowed values: 7.9"
8484
},
8585
"allowedValues": [
86-
"7.2",
87-
"7.3",
88-
"7.4"
86+
"7_9"
8987
]
9088
},
9189
"maxNumberOfClientConnections": {
@@ -116,46 +114,37 @@
116114
},
117115
"messageRoutingNodeVmSize": {
118116
"type": "string",
119-
"defaultValue": "Standard_D2_v2",
117+
"defaultValue": "Standard_D2_v3",
120118
"metadata": {
121-
"description": "The size of a PubSub+ broker message routing node VM. Important: ensure adequate CPU and Memory resources are available to support the selected broker system scaling parameters. For requirements check https://docs.solace.com/."
119+
"description": "The size of a PubSub+ broker message routing node VM. Important: ensure adequate CPU and Memory resources are available to support the selected broker system scaling parameters. For requirements check the resource calculator at https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html."
122120
},
123121
"allowedValues": [
124-
"Standard_D1_v2",
125-
"Standard_D2_v2",
126-
"Standard_D3_v2",
127-
"Standard_D4_v2",
128-
"Standard_D5_v2",
129122
"Standard_D2_v3",
130123
"Standard_D4_v3",
131124
"Standard_D8_v3",
132125
"Standard_D16_v3",
133-
"Standard_DS1_v2",
134-
"Standard_DS2_v2",
135-
"Standard_DS3_v2",
136-
"Standard_DS4_v2",
137-
"Standard_DS5_v2"
126+
"Standard_D2s_v3",
127+
"Standard_D4s_v3",
128+
"Standard_D8s_v3",
129+
"Standard_D16s_v3"
138130
]
139131
},
140132
"monitorNodeVmSize": {
141133
"type": "string",
142-
"defaultValue": "Standard_D1_v2",
134+
"defaultValue": "Standard_D2_v3",
143135
"metadata": {
144-
"description": "The size of the PubSub+ monitor node VM in a High Availabity deployment. For requirements check https://docs.solace.com/."
136+
"description": "The size of the PubSub+ monitor node VM in a High Availabity deployment. For requirements check the resource calculator at https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html."
145137
},
146138
"allowedValues": [
147-
"Standard_D1_v2",
148-
"Standard_DS1_v2",
149-
"Standard_D2_v2",
150-
"Standard_DS2_v2",
151-
"Standard_D2_v3"
139+
"Standard_D2_v3",
140+
"Standard_D2s_v3"
152141
]
153142
},
154143
"dataDiskSize": {
155144
"type": "string",
156145
"defaultValue": "0",
157146
"metadata": {
158-
"description": "The size of the data disk in GB for diagnostics and message spooling on the Solace Message Routing Nodes. For requirements check https://docs.solace.com/."
147+
"description": "The size of the data disk in GB for diagnostics and message spooling on the Solace Message Routing Nodes. For requirements check the resource calculator at https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html."
159148
},
160149
"allowedValues": [
161150
"0",
@@ -231,7 +220,7 @@
231220
"metadata": {
232221
"description": "The base URI where artifacts required by this template are located."
233222
},
234-
"defaultValue": "https://raw.githubusercontent.com/SolaceProducts/pubsubplus-azure-quickstart-template/master/"
223+
"defaultValue": "[deployment().properties.templatelink.uri]"
235224
},
236225
"_artifactsLocationSasToken": {
237226
"type": "securestring",
@@ -246,9 +235,9 @@
246235
"platformFaultDomainCount": "[parameters('numberOfFaultDomains')]",
247236
"platformUpdateDomainCount": "[if(equals(parameters('numberOfFaultDomains'), 1), 1, 3)]",
248237
"imagePublisher": "OpenLogic",
249-
"imageOffer": "Centos",
238+
"imageOffer": "CentOS",
250239
"nestedTemplatesLocation": "nestedtemplates/",
251-
"solaceSecurityName": "SolaceSecurity.Template",
240+
"solaceSecurityTemplateName": "SolaceSecurity.Template",
252241
"securitySharedTemplateName": "security-shared-resources.json",
253242
"securitySharedTemplateUri": "[uri(parameters('_artifactsLocation'), concat(variables('nestedTemplatesLocation'), variables('securitySharedTemplateName'), parameters('_artifactsLocationSasToken')))]",
254243
"solaceLoadBalancerName": "SolaceLoadBalancer.Template",
@@ -288,7 +277,7 @@
288277
"caching": "ReadWrite",
289278
"createOption": "Empty",
290279
"managedDisk": {
291-
"storageAccountType": "Standard_LRS"
280+
"storageAccountType": "StandardSSD_LRS"
292281
}
293282
}
294283
],
@@ -300,7 +289,7 @@
300289
"caching": "ReadWrite",
301290
"createOption": "Empty",
302291
"managedDisk": {
303-
"storageAccountType": "Standard_LRS"
292+
"storageAccountType": "StandardSSD_LRS"
304293
}
305294
}
306295
],
@@ -311,9 +300,9 @@
311300
},
312301
"resources": [
313302
{
314-
"apiVersion": "2019-10-01",
303+
"apiVersion": "2021-04-01",
315304
"type": "Microsoft.Resources/deployments",
316-
"name": "[variables('solaceSecurityName')]",
305+
"name": "[variables('solaceSecurityTemplateName')]",
317306
"properties": {
318307
"mode": "Incremental",
319308
"templateLink": {
@@ -334,7 +323,7 @@
334323
}
335324
},
336325
{
337-
"apiVersion": "2019-10-01",
326+
"apiVersion": "2021-04-01",
338327
"type": "Microsoft.Resources/deployments",
339328
"name": "[variables('solaceLoadBalancerName')]",
340329
"properties": {
@@ -373,7 +362,7 @@
373362
},
374363
{
375364
"condition": "[not(empty(parameters('workspaceName')))]",
376-
"apiVersion": "2019-10-01",
365+
"apiVersion": "2021-04-01",
377366
"type": "Microsoft.Resources/deployments",
378367
"name": "[variables('solaceWorkspaceName')]",
379368
"properties": {
@@ -394,7 +383,7 @@
394383
},
395384
{
396385
"condition": "[equals(parameters('vmAndLoadbalancerExposure'),'Public')]",
397-
"apiVersion": "2020-04-01",
386+
"apiVersion": "2021-05-01",
398387
"type": "Microsoft.Network/publicIPAddresses",
399388
"name": "[concat(variables('publicIPAddressNameVM'), copyindex())]",
400389
"location": "[parameters('location')]",
@@ -411,7 +400,7 @@
411400
},
412401
{
413402
"condition": "[empty(parameters('existingSubnetName'))]",
414-
"apiVersion": "2020-04-01",
403+
"apiVersion": "2021-05-01",
415404
"type": "Microsoft.Network/virtualNetworks",
416405
"name": "[variables('virtualNetworkName')]",
417406
"location": "[parameters('location')]",
@@ -432,11 +421,11 @@
432421
}
433422
},
434423
{
435-
"apiVersion": "2019-10-01",
424+
"apiVersion": "2021-04-01",
436425
"name": "[variables('solaceUpdateSubnetName')]",
437426
"type": "Microsoft.Resources/deployments",
438427
"dependsOn": [
439-
"[concat('Microsoft.Resources/deployments/', variables('solaceSecurityName'))]"
428+
"[concat('Microsoft.Resources/deployments/', variables('solaceSecurityTemplateName'))]"
440429
],
441430
"properties": {
442431
"mode": "Incremental",
@@ -466,7 +455,7 @@
466455
{
467456
"condition": "[equals(parameters('vmAndLoadbalancerExposure'),'Public')]",
468457
"comments": "Only created if network interfaces are to be publicly exposed. Otherwise the next resource is created.",
469-
"apiVersion": "2020-04-01",
458+
"apiVersion": "2021-05-01",
470459
"type": "Microsoft.Network/networkInterfaces",
471460
"name": "[concat('Public',variables('nicName'), copyindex())]",
472461
"location": "[parameters('location')]",
@@ -506,7 +495,7 @@
506495
},
507496
{
508497
"condition": "[not(equals(parameters('vmAndLoadbalancerExposure'),'Public'))]",
509-
"apiVersion": "2020-04-01",
498+
"apiVersion": "2021-05-01",
510499
"type": "Microsoft.Network/networkInterfaces",
511500
"name": "[concat('Internal',variables('nicName'), copyindex())]",
512501
"location": "[parameters('location')]",
@@ -541,7 +530,7 @@
541530
}
542531
},
543532
{
544-
"apiVersion": "2019-12-01",
533+
"apiVersion": "2021-07-01",
545534
"type": "Microsoft.Compute/availabilitySets",
546535
"name": "[variables('availabilitySetName')]",
547536
"location": "[parameters('location')]",
@@ -554,7 +543,7 @@
554543
}
555544
},
556545
{
557-
"apiVersion":"2019-12-01",
546+
"apiVersion":"2021-07-01",
558547
"type": "Microsoft.Compute/virtualMachines",
559548
"name": "[concat(parameters('dnsLabelForVmIp'), copyindex())]",
560549
"location": "[parameters('location')]",
@@ -602,7 +591,7 @@
602591
}
603592
},
604593
{
605-
"apiVersion": "2019-12-01",
594+
"apiVersion": "2021-07-01",
606595
"type": "Microsoft.Compute/virtualMachines/extensions",
607596
"name": "[concat(parameters('dnsLabelForVmIp'), copyindex(), '/DockerExtension')]",
608597
"location": "[parameters('location')]",
@@ -623,7 +612,7 @@
623612
},
624613
{
625614
"condition": "[not(empty(parameters('workspaceName')))]",
626-
"apiVersion": "2019-12-01",
615+
"apiVersion": "2021-07-01",
627616
"type": "Microsoft.Compute/virtualMachines/extensions",
628617
"name": "[concat(parameters('dnsLabelForVmIp'), copyindex(), '/OmsAgentExtension')]",
629618
"location": "[parameters('location')]",
@@ -648,7 +637,7 @@
648637
}
649638
},
650639
{
651-
"apiVersion": "2019-12-01",
640+
"apiVersion": "2021-07-01",
652641
"type": "Microsoft.Compute/virtualMachines/extensions",
653642
"name": "[concat(parameters('dnsLabelForVmIp'), copyindex(), '/configureSolaceContainer')]",
654643
"location": "[parameters('location')]",
@@ -672,8 +661,9 @@
672661
},
673662
"protectedSettings": {
674663
"commandToExecute": "[concat('mkdir -p -m 770 ', variables('adminPasswordDir'), '; echo ', parameters('solaceAdminPassword'), ' > ', variables('adminPasswordFile'), '; bash ', variables('solaceInstallScriptName'), ' -c ', copyindex(), ' -d ', parameters('dnsLabelForVmIp'), ' -i ', variables('numberOfInstances'), ' -p ', variables('adminPasswordFile'), ' -n ', parameters('maxNumberOfClientConnections'), ' -q ', parameters('maxNumberOfQueueMessages'), ' -s ', if(equals(copyindex(), variables('monitorNodeIndex')), '0', parameters('dataDiskSize')), if(empty(parameters('workspaceName')), '', concat(' -w ', reference(variables('solaceWorkspaceName')).outputs.workspaceId.value)), ' -u ', parameters('brokerDockerImageReference'))]"
675-
}
664+
}
676665
}
677666
}
678667
]
679668
}
669+

azuredeploy.parameters.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,17 @@
2020
"workspaceName": {
2121
"value": "GEN-UNIQUE"
2222
},
23+
"workspaceRegion": {
24+
"value": "East US"
25+
},
26+
"numberOfFaultDomains": {
27+
"value": 3
28+
},
2329
"dnsLabelForPublicLoadBalancer": {
2430
"value": "GEN-UNIQUE"
2531
},
2632
"deploymentModel": {
2733
"value": "HighAvailability"
2834
}
2935
}
30-
}
36+
}

metadata.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"$schema": "https://aka.ms/azure-quickstart-templates-metadata-schema#",
3-
"itemDisplayName": "Deploy Solace PubSub+ message broker(s) onto Azure Linux VM(s)",
4-
"description": "This template allows you to deploy either a standalone Solace PubSub+ message broker or a three node High Availability cluster of Solace PubSub+ message brokers onto Azure Linux VM(s).",
5-
"summary": "This template deploys either a standalone Solace PubSub+ message broker or a three node High Availability cluster of Solace PubSub+ message brokers onto Azure Linux VM(s).",
3+
"itemDisplayName": "Deploy Solace PubSub+ event broker(s) onto Azure Linux VM(s)",
4+
"description": "This template allows you to deploy either a standalone Solace PubSub+ event broker or a three node High Availability cluster of Solace PubSub+ event brokers onto Azure Linux VM(s).",
5+
"summary": "This template deploys either a standalone Solace PubSub+ event broker or a three node High Availability cluster of Solace PubSub+ event brokers onto Azure Linux VM(s).",
66
"githubUsername": "SolaceDev",
7-
"dateUpdated": "2018-08-31"
7+
"dateUpdated": "2022-01-31"
88
}

nestedtemplates/loadbalancer-shared-resources.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,4 +348,4 @@
348348
}
349349
}
350350
]
351-
}
351+
}

nestedtemplates/security-shared-resources.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,4 @@
245245
}
246246
}
247247
]
248-
}
248+
}

nestedtemplates/update-subnet-shared-resources.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@
3737
}
3838
}
3939
]
40-
}
40+
}

nestedtemplates/workspace-enabled-shared-resources.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,4 @@
119119
}
120120
}
121121
]
122-
}
122+
}

0 commit comments

Comments
 (0)