Skip to content

Commit

Permalink
Update ARM template to use the frontend app and Tanzu components on A…
Browse files Browse the repository at this point in the history
…SAE (#71)

* Use scg and frontend in arm template
  • Loading branch information
moarychan committed Jan 24, 2024
1 parent 8150436 commit b71a50b
Show file tree
Hide file tree
Showing 3 changed files with 131 additions and 108 deletions.
194 changes: 109 additions & 85 deletions infra/azuredeploy.json
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,10 @@
"location": "[resourceGroup().location]",
"resourceToken": "[toLower(uniqueString(subscription().id, resourceGroup().name, variables('location')))]",
"asaInstanceName": "[format('{0}{1}', variables('abbrs').springApps, variables('resourceToken'))]",
"adminServerAppName": "admin-server",
"customersServiceAppName": "customers-service",
"vetsServiceAppName": "vets-service",
"visitsServiceAppName": "visits-service",
"apiGatewayAppName": "api-gateway",
"frontendAppName": "frontend",
"logAnalyticsName": "[format('{0}{1}', variables('abbrs').operationalInsightsWorkspaces, variables('resourceToken'))]",
"applicationInsightsName": "[format('{0}{1}', variables('abbrs').insightsComponents, variables('resourceToken'))]",
"applicationInsightsDashboardName": "[format('{0}{1}', variables('abbrs').portalDashboards, variables('resourceToken'))]",
Expand All @@ -168,7 +167,7 @@
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[variables('asaInstanceName')]",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
Expand All @@ -179,7 +178,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/buildServices",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
Expand All @@ -190,36 +189,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps",
"apiVersion": "2023-05-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), variables('adminServerAppName'))]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
],
"properties": {
"public": true,
"httpsOnly": false,
"temporaryDisk": {
"sizeInGB": 5,
"mountPath": "/tmp"
},
"persistentDisk": {
"sizeInGB": 0,
"mountPath": "/persistent"
},
"enableEndToEndTLS": false,
"ingressSettings": {
"readTimeoutInSeconds": 300,
"sendTimeoutInSeconds": 60,
"sessionCookieMaxAge": 0,
"sessionAffinity": "None",
"backendProtocol": "Default"
}
}
},
{
"type": "Microsoft.AppPlatform/Spring/apps",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), variables('customersServiceAppName'))]",
"location": "[variables('location')]",
"dependsOn": [
Expand Down Expand Up @@ -247,7 +217,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), variables('vetsServiceAppName'))]",
"location": "[variables('location')]",
"dependsOn": [
Expand Down Expand Up @@ -275,7 +245,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), variables('visitsServiceAppName'))]",
"location": "[variables('location')]",
"dependsOn": [
Expand Down Expand Up @@ -303,14 +273,14 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps",
"apiVersion": "2023-05-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), variables('apiGatewayAppName'))]",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), variables('frontendAppName'))]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
],
"properties": {
"public": true,
"public": false,
"httpsOnly": false,
"temporaryDisk": {
"sizeInGB": 5,
Expand All @@ -332,29 +302,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps/deployments",
"apiVersion": "2023-05-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), variables('adminServerAppName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('adminServerAppName'))]"

],
"properties": {
"active": true,
"deploymentSettings": {
"resourceRequests": {
"cpu": "1",
"memory": "2Gi"
}
},
"source": {
"type": "BuildResult",
"buildResultId": "<default>"
}
}
},
{
"type": "Microsoft.AppPlatform/Spring/apps/deployments",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), variables('customersServiceAppName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('customersServiceAppName'))]"
Expand All @@ -375,7 +323,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps/deployments",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), variables('vetsServiceAppName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('vetsServiceAppName'))]"
Expand All @@ -396,7 +344,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps/deployments",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), variables('visitsServiceAppName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('visitsServiceAppName'))]"
Expand All @@ -417,10 +365,10 @@
},
{
"type": "Microsoft.AppPlatform/Spring/apps/deployments",
"apiVersion": "2023-05-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), variables('apiGatewayAppName'), 'default')]",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), variables('frontendAppName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('apiGatewayAppName'))]"
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('frontendAppName'))]"
],
"properties": {
"active": true,
Expand Down Expand Up @@ -465,11 +413,10 @@
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Authorization/roleAssignments', variables('name_roleAssignmentName'))]",
"[resourceId('Microsoft.AppPlatform/Spring/apps/deployments', variables('asaInstanceName'), variables('adminServerAppName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring/apps/deployments', variables('asaInstanceName'), variables('customersServiceAppName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring/apps/deployments', variables('asaInstanceName'), variables('vetsServiceAppName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring/apps/deployments', variables('asaInstanceName'), variables('visitsServiceAppName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring/apps/deployments', variables('asaInstanceName'), variables('apiGatewayAppName'), 'default')]"
"[resourceId('Microsoft.AppPlatform/Spring/apps/deployments', variables('asaInstanceName'), variables('frontendAppName'), 'default')]"
],
"kind": "AzurePowerShell",
"identity": {
Expand Down Expand Up @@ -501,7 +448,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/buildservices/builders/buildpackBindings",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default/default/default')]",
"dependsOn": [
"[resourceId('Microsoft.Resources/deploymentScripts', variables('const_checkingBuilderStateDeploymentName'))]"
Expand Down Expand Up @@ -1762,7 +1709,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[format('{0}/{1}', variables('asaInstanceName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]",
Expand Down Expand Up @@ -1798,23 +1745,23 @@
},
{
"type": "Microsoft.AppPlatform/Spring/applicationAccelerators",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
]
},
{
"type": "Microsoft.AppPlatform/Spring/applicationLiveViews",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
]
},
{
"type": "Microsoft.AppPlatform/Spring/configurationServices",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
Expand Down Expand Up @@ -1844,13 +1791,13 @@
},
{
"type": "Microsoft.AppPlatform/Spring/devToolPortals",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
],
"properties": {
"public": false,
"public": true,
"features": {
"applicationAccelerator": {
"state": "Enabled"
Expand All @@ -1863,7 +1810,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/gateways",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
Expand All @@ -1874,7 +1821,7 @@
"capacity": 2
},
"properties": {
"public": false,
"public": true,
"httpsOnly": false,
"resourceRequests": {
"cpu": "1",
Expand All @@ -1885,17 +1832,94 @@
}
}
},
{
"type": "Microsoft.AppPlatform/Spring/gateways/routeConfigs",
"apiVersion": "2023-03-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), 'default', variables('customersServiceAppName'))]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/gateways', variables('asaInstanceName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]",
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('customersServiceAppName'))]"
],
"properties": {
"appResourceId": "[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('customersServiceAppName'))]",
"routes": [
{
"filters": [ "StripPrefix=2" ],
"predicates": [ "Path=/api/customer/**" ]
}
]
}
},
{
"type": "Microsoft.AppPlatform/Spring/gateways/routeConfigs",
"apiVersion": "2023-03-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), 'default', variables('vetsServiceAppName'))]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/gateways', variables('asaInstanceName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]",
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('vetsServiceAppName'))]"
],
"properties": {
"appResourceId": "[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('vetsServiceAppName'))]",
"routes": [
{
"filters": [ "StripPrefix=2" ],
"predicates": [ "Path=/api/vet/**" ]
}
]
}
},
{
"type": "Microsoft.AppPlatform/Spring/gateways/routeConfigs",
"apiVersion": "2023-03-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), 'default', variables('visitsServiceAppName'))]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/gateways', variables('asaInstanceName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]",
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('visitsServiceAppName'))]"
],
"properties": {
"appResourceId": "[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('visitsServiceAppName'))]",
"routes": [
{
"filters": [ "StripPrefix=2" ],
"predicates": [ "Path=/api/visit/**" ]
}
]
}
},
{
"type": "Microsoft.AppPlatform/Spring/gateways/routeConfigs",
"apiVersion": "2023-03-01-preview",
"name": "[format('{0}/{1}/{2}', variables('asaInstanceName'), 'default', variables('frontendAppName'))]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/gateways', variables('asaInstanceName'), 'default')]",
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]",
"[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('frontendAppName'))]"
],
"properties": {
"appResourceId": "[resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('frontendAppName'))]",
"routes": [
{
"filters": [ "StripPrefix=0" ],
"predicates": [ "Path=/**" ],
"order": 1000
}
]
}
},
{
"type": "Microsoft.AppPlatform/Spring/serviceRegistries",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]"
]
},
{
"type": "Microsoft.AppPlatform/Spring/apiPortals",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', variables('asaInstanceName'))]",
Expand All @@ -1916,7 +1940,7 @@
},
{
"type": "Microsoft.AppPlatform/Spring/buildServices/agentPools",
"apiVersion": "2023-05-01-preview",
"apiVersion": "2023-11-01-preview",
"name": "[concat(variables('asaInstanceName'), '/default/default')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/buildServices', variables('asaInstanceName'), 'default')]"
Expand Down Expand Up @@ -1966,13 +1990,13 @@
}
],
"outputs": {
"API Gateway URL": {
"Spring Cloud Gateway URL": {
"type": "string",
"value": "[reference(resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('apiGatewayAppName')), '2023-05-01-preview').url]"
"value": "[concat('https://', reference(resourceId('Microsoft.AppPlatform/Spring/gateways', variables('asaInstanceName'), 'default'), '2023-11-01-preview').url)]"
},
"Admin Server URL": {
"Application Live View URL": {
"type": "string",
"value": "[reference(resourceId('Microsoft.AppPlatform/Spring/apps', variables('asaInstanceName'), variables('adminServerAppName')), '2023-05-01-preview').url]"
"value": "[concat('https://', reference(resourceId('Microsoft.AppPlatform/Spring/DevToolPortals', variables('asaInstanceName'), 'default'), '2023-11-01-preview').url, '/app-live-view')]"
}
}
}
2 changes: 1 addition & 1 deletion infra/scripts/check-provision-state.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ if (!$asaServiceName) {
throw "The Azure Spring Apps service name is not successfully retrieved, please retry another deployment."
}

$apiUrl = 'https://management.azure.com/subscriptions/' + $subscriptionId + '/resourceGroups/' + $resourceGroup + '/providers/Microsoft.AppPlatform/Spring/' + $asaServiceName + '/buildServices/default/builders/default?api-version=2023-05-01-preview'
$apiUrl = 'https://management.azure.com/subscriptions/' + $subscriptionId + '/resourceGroups/' + $resourceGroup + '/providers/Microsoft.AppPlatform/Spring/' + $asaServiceName + '/buildServices/default/builders/default?api-version=2023-11-01-preview'
$state = $null
$timeout = New-TimeSpan -Seconds 900
Write-Output "Check the status of Build Service Builder provisioning state within $timeout ..."
Expand Down
Loading

0 comments on commit b71a50b

Please sign in to comment.