Skip to content

Commit 1d15118

Browse files
Merge pull request #141 from mspnp/dev-perf
rebase perf onto master
2 parents 1e9fe3f + 91f2a02 commit 1d15118

File tree

55 files changed

+2174
-88
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+2174
-88
lines changed

azuredeploy.json

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@
183183
"ingestionSBName": "[concat(parameters('environmentName'),'-i-',uniqueString(resourceGroup().id))]",
184184
"ingestionServiceAccessKey": "IngestionServiceAccessKey",
185185
"droneSchedulerKeyVaultName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
186+
"droneSchedulerCosmosDbName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
186187
"workflowKeyVaultName": "[concat(parameters('environmentName'),'-wf-',uniqueString(resourceGroup().id))]",
187188
"workflowServiceAccessKey": "WorkflowServiceAccessKey"
188189
},
@@ -203,6 +204,7 @@
203204
"ingestionSBName": "[concat(parameters('environmentName'),'-i-',uniqueString(resourceGroup().id))]",
204205
"ingestionServiceAccessKey": "IngestionServiceAccessKey",
205206
"droneSchedulerKeyVaultName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
207+
"droneSchedulerCosmosDbName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
206208
"workflowKeyVaultName": "[concat(parameters('environmentName'),'-wf-',uniqueString(resourceGroup().id))]",
207209
"workflowServiceAccessKey": "WorkflowServiceAccessKey"
208210
},
@@ -223,6 +225,7 @@
223225
"ingestionSBName": "[concat(parameters('environmentName'),'-i-',uniqueString(resourceGroup().id))]",
224226
"ingestionServiceAccessKey": "IngestionServiceAccessKey",
225227
"droneSchedulerKeyVaultName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
228+
"droneSchedulerCosmosDbName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
226229
"workflowKeyVaultName": "[concat(parameters('environmentName'),'-wf-',uniqueString(resourceGroup().id))]",
227230
"workflowServiceAccessKey": "WorkflowServiceAccessKey"
228231
},
@@ -243,6 +246,7 @@
243246
"ingestionSBName": "[concat(parameters('environmentName'),'-i-',uniqueString(resourceGroup().id))]",
244247
"ingestionServiceAccessKey": "IngestionServiceAccessKey",
245248
"droneSchedulerKeyVaultName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
249+
"droneSchedulerCosmosDbName": "[concat(parameters('environmentName'),'-ds-',uniqueString(resourceGroup().id))]",
246250
"workflowKeyVaultName": "[concat(parameters('environmentName'),'-wf-',uniqueString(resourceGroup().id))]",
247251
"workflowServiceAccessKey": "WorkflowServiceAccessKey"
248252
}
@@ -462,6 +466,22 @@
462466
"name": "[variables('environmentSettings')[parameters('environmentName')].packageMongoDbName]"
463467
}
464468
},
469+
{
470+
"type": "Microsoft.DocumentDB/databaseAccounts",
471+
"name": "[variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName]",
472+
"apiVersion": "2015-04-08",
473+
"location": "[resourceGroup().location]",
474+
"properties": {
475+
"name": "[variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName]",
476+
"databaseAccountOfferType": "Standard",
477+
"locations": [
478+
{
479+
"locationName": "[resourceGroup().location]",
480+
"failoverPriority": 0
481+
}
482+
]
483+
}
484+
},
465485
{
466486
"type": "Microsoft.ServiceBus/namespaces",
467487
"name": "[variables('environmentSettings')[parameters('environmentName')].ingestionSBNamespace]",
@@ -666,6 +686,96 @@
666686
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]",
667687
"[resourceId('Microsoft.Insights/components', variables('environmentSettings')[parameters('environmentName')].appInsightsName)]"
668688
]
689+
},
690+
{
691+
"type": "secrets",
692+
"name": "CosmosDBEndpoint",
693+
"apiVersion": "2015-06-01",
694+
"properties": {
695+
"value": "[reference(resourceId('Microsoft.DocumentDB/databaseAccounts', variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName)).documentEndpoint]"
696+
},
697+
"dependsOn": [
698+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]",
699+
"[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName)]"
700+
]
701+
},
702+
{
703+
"type": "secrets",
704+
"name": "CosmosDBKey",
705+
"apiVersion": "2015-06-01",
706+
"properties": {
707+
"value": "[listKeys(resourceId('Microsoft.DocumentDB/databaseAccounts', variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName), '2016-03-31').primaryMasterKey]"
708+
},
709+
"dependsOn": [
710+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]",
711+
"[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName)]"
712+
]
713+
},
714+
{
715+
"type": "secrets",
716+
"name": "CosmosDBConnectionMode",
717+
"apiVersion": "2015-06-01",
718+
"properties": {
719+
"value": "Gateway"
720+
},
721+
"dependsOn": [
722+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]"
723+
]
724+
},
725+
{
726+
"type": "secrets",
727+
"name": "CosmosDBConnectionProtocol",
728+
"apiVersion": "2015-06-01",
729+
"properties": {
730+
"value": "Https"
731+
},
732+
"dependsOn": [
733+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]"
734+
]
735+
},
736+
{
737+
"type": "secrets",
738+
"name": "CosmosDBMaxConnectionsLimit",
739+
"apiVersion": "2015-06-01",
740+
"properties": {
741+
"value": "50"
742+
},
743+
"dependsOn": [
744+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]"
745+
]
746+
},
747+
{
748+
"type": "secrets",
749+
"name": "CosmosDBMaxParallelism",
750+
"apiVersion": "2015-06-01",
751+
"properties": {
752+
"value": "-1"
753+
},
754+
"dependsOn": [
755+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]"
756+
]
757+
},
758+
{
759+
"type": "secrets",
760+
"name": "CosmosDBMaxBufferedItemCount",
761+
"apiVersion": "2015-06-01",
762+
"properties": {
763+
"value": "0"
764+
},
765+
"dependsOn": [
766+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]"
767+
]
768+
},
769+
{
770+
"type": "secrets",
771+
"name": "FeatureManagement--UsePartitionKey",
772+
"apiVersion": "2015-06-01",
773+
"properties": {
774+
"value": "false"
775+
},
776+
"dependsOn": [
777+
"[resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)]"
778+
]
669779
}
670780
]
671781
},
@@ -913,10 +1023,18 @@
9131023
"value": "[variables('environmentSettings')[parameters('environmentName')].deliveryCosmosDbName]",
9141024
"type": "string"
9151025
},
1026+
"droneSchedulerKeyVaultName": {
1027+
"value": "[variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName]",
1028+
"type": "string"
1029+
},
9161030
"droneSchedulerKeyVaultUri": {
9171031
"value": "[reference(resourceId('Microsoft.KeyVault/vaults', variables('environmentSettings')[parameters('environmentName')].droneSchedulerKeyVaultName)).vaultUri]",
9181032
"type": "string"
9191033
},
1034+
"droneSchedulerCosmosDbName": {
1035+
"value": "[variables('environmentSettings')[parameters('environmentName')].droneSchedulerCosmosDbName]",
1036+
"type": "string"
1037+
},
9201038
"packageMongoDbName": {
9211039
"value": "[variables('environmentSettings')[parameters('environmentName')].packageMongoDbName]",
9221040
"type": "string"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# ------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
4+
# ------------------------------------------------------------
5+
6+
###################################################################################################
7+
# ingress
8+
###################################################################################################
9+
{{- $svcversion := .Chart.AppVersion | replace "." "" }}
10+
{{- $appversion := .Chart.AppVersion }}
11+
{{- $defaultversionedpath := printf "/%s/" $appversion }}
12+
{{- $relname := .Release.Name }}
13+
apiVersion: extensions/v1beta1
14+
kind: Ingress
15+
metadata:
16+
name: {{ $relname }}-internal-ingress
17+
annotations:
18+
nginx.ingress.kubernetes.io/rewrite-target: /api/deliveries$1
19+
nginx.ingress.kubernetes.io/configuration-snippet: |
20+
internal;
21+
spec:
22+
rules:
23+
{{- range .Values.ingress.hosts }}
24+
- host: {{ .name }}
25+
http:
26+
paths:
27+
{{- if .path }}
28+
- path: {{ printf "%s/%s/" .path $appversion }}api/internal/deliveries(.*)
29+
{{- else }}
30+
- path: {{ $defaultversionedpath }}api/internal/deliveries(.*)
31+
{{- end }}
32+
backend:
33+
serviceName: "{{ .serviceName }}-{{ $svcversion }}"
34+
servicePort: http
35+
{{- if (eq $appversion "v0.1.0") }}
36+
- path: {{ default "/" .path }}api/internal/deliveries(.*)
37+
backend:
38+
serviceName: "{{ .serviceName }}"
39+
servicePort: http
40+
{{- end }}
41+
{{ end }}

charts/dronescheduler/templates/dronescheduler-deploy.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ spec:
4949
env:
5050
- name: KEY_VAULT_URI
5151
value: {{ .Values.keyvault.uri }}
52+
- name: COSMOSDB_DATABASEID
53+
value: {{ required "Cosmos DB name is required" .Values.cosmosdb.id }}
54+
- name: COSMOSDB_COLLECTIONID
55+
value: {{ required "Cosmos DB container name is required" .Values.cosmosdb.collectionid }}
5256
- name: LOGGING__ApplicationInsights__LOGLEVEL__DEFAULT
5357
value: {{ default "Error" .Values.telemetry.level | quote }}
5458
- name: no_proxy
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# ------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
4+
# ------------------------------------------------------------
5+
6+
###################################################################################################
7+
# ingress
8+
###################################################################################################
9+
{{- $svcversion := .Chart.AppVersion | replace "." "" }}
10+
{{- $appversion := .Chart.AppVersion }}
11+
{{- $defaultversionedpath := printf "/%s/" $appversion }}
12+
{{- $relname := .Release.Name }}
13+
apiVersion: extensions/v1beta1
14+
kind: Ingress
15+
metadata:
16+
name: {{ $relname }}-internal-ingress
17+
annotations:
18+
nginx.ingress.kubernetes.io/rewrite-target: /api/dronedeliveries$1
19+
nginx.ingress.kubernetes.io/configuration-snippet: |
20+
internal;
21+
spec:
22+
rules:
23+
{{- range .Values.ingress.hosts }}
24+
- host: {{ .name }}
25+
http:
26+
paths:
27+
{{- if .path }}
28+
- path: {{ printf "%s/%s/" .path $appversion }}api/internal/dronedeliveries(.*)
29+
{{- else }}
30+
- path: {{ $defaultversionedpath }}api/internal/dronedeliveries(.*)
31+
{{- end }}
32+
backend:
33+
serviceName: "{{ .serviceName }}-{{ $svcversion }}"
34+
servicePort: http
35+
{{- if (eq $appversion "v0.1.0") }}
36+
- path: {{ default "/" .path }}api/internal/dronedeliveries(.*)
37+
backend:
38+
serviceName: "{{ .serviceName }}"
39+
servicePort: http
40+
{{- end }}
41+
{{ end }}

charts/dronescheduler/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ image:
1111
pullPolicy: IfNotPresent
1212
keyvault:
1313
uri:
14+
cosmosdb:
15+
id:
16+
collectionid:
1417
reason: unknown
1518
telemetry:
1619
level: "Error"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# ------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
4+
# ------------------------------------------------------------
5+
6+
###################################################################################################
7+
# ingress
8+
###################################################################################################
9+
{{- $svcversion := .Chart.AppVersion | replace "." "" }}
10+
{{- $appversion := .Chart.AppVersion }}
11+
{{- $defaultversionedpath := printf "/%s/" $appversion }}
12+
{{- $relname := .Release.Name }}
13+
apiVersion: extensions/v1beta1
14+
kind: Ingress
15+
metadata:
16+
name: {{ $relname }}-internal-ingress
17+
annotations:
18+
nginx.ingress.kubernetes.io/rewrite-target: /api/package$1
19+
nginx.ingress.kubernetes.io/configuration-snippet: |
20+
internal;
21+
spec:
22+
rules:
23+
{{- range .Values.ingress.hosts }}
24+
- host: {{ .name }}
25+
http:
26+
paths:
27+
{{- if .path }}
28+
- path: {{ printf "%s/%s/" .path $appversion }}api/internal/package(.*)
29+
{{- else }}
30+
- path: {{ $defaultversionedpath }}api/internal/package(.*)
31+
{{- end }}
32+
backend:
33+
serviceName: "{{ .serviceName }}-{{ $svcversion }}"
34+
servicePort: http
35+
{{- if (eq $appversion "v0.1.0") }}
36+
- path: {{ default "/" .path }}api/internal/package(.*)
37+
backend:
38+
serviceName: "{{ .serviceName }}"
39+
servicePort: http
40+
{{- end }}
41+
{{ end }}

deployment.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,9 @@ export COSMOSDB_COL_NAME=packages
290290
helm install $HELM_CHARTS/package/ \
291291
--set image.tag=0.1.0 \
292292
--set image.repository=package \
293+
--set ingress.hosts[0].name=$EXTERNAL_INGEST_FQDN \
294+
--set ingress.hosts[0].serviceName=package \
295+
--set ingress.hosts[0].tls=false \
293296
--set secrets.appinsights.ikey=$AI_IKEY \
294297
--set secrets.mongo.pwd=$COSMOSDB_CONNECTION \
295298
--set cosmosDb.collectionName=$COSMOSDB_COL_NAME \
@@ -420,6 +423,11 @@ Extract resource details from deployment
420423

421424
```bash
422425
export DRONESCHEDULER_KEYVAULT_URI=$(az group deployment show -g $RESOURCE_GROUP -n azuredeploy-dev --query properties.outputs.droneSchedulerKeyVaultUri.value -o tsv)
426+
export DRONESCHEDULER_COSMOSDB_NAME=$(az group deployment show -g $RESOURCE_GROUP -n azuredeploy-dev --query properties.outputs.droneSchedulerCosmosDbName.value -o tsv) && \
427+
export ENDPOINT_URL=$(az cosmosdb show -n $DRONESCHEDULER_COSMOSDB_NAME -g $RESOURCE_GROUP --query documentEndpoint -o tsv) && \
428+
export AUTH_KEY=$(az cosmosdb list-keys -n $DRONESCHEDULER_COSMOSDB_NAME -g $RESOURCE_GROUP --query primaryMasterKey -o tsv) && \
429+
export DATABASE_NAME="invoicing" && \
430+
export COLLECTION_NAME="utilization"
423431
```
424432

425433
Build the dronescheduler services
@@ -454,9 +462,14 @@ helm install $HELM_CHARTS/dronescheduler/ \
454462
--set image.tag=0.1.0 \
455463
--set image.repository=dronescheduler \
456464
--set dockerregistry=$ACR_SERVER \
465+
--set ingress.hosts[0].name=$EXTERNAL_INGEST_FQDN \
466+
--set ingress.hosts[0].serviceName=dronescheduler \
467+
--set ingress.hosts[0].tls=false \
457468
--set identity.clientid=$DRONESCHEDULER_PRINCIPAL_CLIENT_ID \
458469
--set identity.resourceid=$DRONESCHEDULER_PRINCIPAL_RESOURCE_ID \
459470
--set keyvault.uri=$DRONESCHEDULER_KEYVAULT_URI \
471+
--set cosmosdb.id=$DATABASE_NAME \
472+
--set cosmosdb.collectionid=$COLLECTION_NAME \
460473
--set reason="Initial deployment" \
461474
--set tags.dev=true \
462475
--namespace backend-dev \

0 commit comments

Comments
 (0)