Skip to content

Commit d6f9caa

Browse files
authored
WX-921 TES support (#191)
1 parent 61bdc8e commit d6f9caa

File tree

6 files changed

+210
-104
lines changed

6 files changed

+210
-104
lines changed

coa-helm/local_values.template.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
# Obtain these values from someone on the development team.
44

55
config:
6+
landingZoneId: "UNDEFINED"
7+
subscriptionId: "UNDEFINED"
8+
region: "UNDEFINED"
69
resourceGroup: "UNDEFINED"
7-
azureServicesAuthConnectionString: "UNDEFINED"
8-
applicationInsightsAccountName: "UNDEFINED"
9-
cosmosDbAccountName: "UNDEFINED"
10+
applicationInsightsAccountKey: "UNDEFINED"
1011
batchAccountName: "UNDEFINED"
12+
batchAccountKey: "UNDEFINED"
1113
batchNodesSubnetId: "UNDEFINED"
1214
drsUrl: "UNDEFINED"
13-
workflowExecutionIdentity: "UNDEFINED"
1415

1516
relay:
16-
path: RUNTIME_PARAMETER
17+
path: "UNDEFINED"
1718

1819
persistence:
1920
storageAccount: "UNDEFINED"
@@ -24,4 +25,4 @@ persistence:
2425
workspaceId: "UNDEFINED"
2526
containerResourceId: "UNDEFINED"
2627

27-
fullnameOverride: "coa"
28+
fullnameOverride: "coa-abc123-coa-rls"

coa-helm/templates/cromwell.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ spec:
2222
- containerPort: {{ .Values.cromwell.port }}
2323
resources:
2424
requests:
25-
memory: "256Mi"
26-
cpu: "50m"
27-
limits:
2825
memory: "1024Mi"
29-
cpu: "200m"
26+
cpu: "1.0"
27+
limits:
28+
memory: "4096Mi"
29+
cpu: "8.0"
3030
volumeMounts:
3131
- mountPath: /cromwell-tmp
3232
name: cromwell-tmp-claim
@@ -68,9 +68,9 @@ data:
6868
}
6969
7070
system {
71-
max-concurrent-workflows = 10000
71+
max-concurrent-workflows = 100
7272
new-workflow-poll-rate = 10
73-
max-workflow-launch-count = 30
73+
max-workflow-launch-count = 10
7474
max-scatter-width-per-scatter = 35000
7575
total-max-jobs-per-root-workflow = 200000
7676
job-rate-control {
@@ -96,7 +96,7 @@ data:
9696
blob {
9797
class = "cromwell.filesystems.blob.BlobPathBuilderFactory"
9898
global {
99-
class = "cromwell.filesystems.blob.BlobFileSystemConfigWrapper"
99+
class = "cromwell.filesystems.blob.BlobFileSystemManager"
100100
config {
101101
workspace-manager: {
102102
url: "{{ .Values.persistence.workspaceManager.url }}"
@@ -147,10 +147,10 @@ data:
147147
}
148148
root = "https://{{ .Values.persistence.storageAccount }}.blob.core.windows.net/{{ .Values.persistence.blobContainer }}/workspace-services/cbas/{{ .Values.persistence.leoAppInstanceName }}/"
149149
dockerRoot = "/cromwell-executions"
150-
endpoint = "http://tes/v1/tasks"
150+
endpoint = "http://{{ include "app.fullname" . }}-tes-svc:{{ .Values.tes.port }}/v1/tasks"
151151
use_tes_11_preview_backend_parameters = true
152-
transform-blob-to-local-path = true
153-
workflow-execution-identity = "{{ .Values.config.workflowExecutionIdentity }}"
152+
workflow-execution-identity = "{{ .Values.identity.name }}"
153+
transform-blob-to-local-path = false
154154
default-runtime-attributes {
155155
cpu: 1
156156
failOnStderr: false

coa-helm/templates/tes.yaml

Lines changed: 151 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,151 @@
1-
#apiVersion: apps/v1
2-
#kind: Deployment
3-
#metadata:
4-
# labels:
5-
# io.kompose.service: tes
6-
# name: tes
7-
#spec:
8-
# replicas: 1
9-
# selector:
10-
# matchLabels:
11-
# io.kompose.service: tes
12-
# strategy:
13-
# type: Recreate
14-
# template:
15-
# metadata:
16-
# labels:
17-
# io.kompose.service: tes
18-
# aadpodidbinding: {{ .Values.identity.name }}
19-
# spec:
20-
# containers:
21-
# - env:
22-
# - name: DefaultStorageAccountName
23-
# value: {{ .Values.persistence.storageAccount }}
24-
# - name: AzureServicesAuthConnectionString
25-
# value: {{ .Values.config.azureServicesAuthConnectionString }}
26-
# - name: ApplicationInsightsAccountName
27-
# value: {{ .Values.config.applicationInsightsAccountName }}
28-
# - name: CosmosDbAccountName
29-
# value: {{ .Values.config.cosmosDbAccountName }}
30-
# - name: AzureOfferDurableId
31-
# value: {{ .Values.config.azureOfferDurableId }}
32-
# - name: BatchAccountName
33-
# value: {{ .Values.config.batchAccountName }}
34-
# - name: BatchNodesSubnetId
35-
# value: {{ .Values.config.batchNodesSubnetId }}
36-
# - name: BlobxferImageName
37-
# value: {{ .Values.config.blobxferImageName }}
38-
# - name: DisableBatchNodesPublicIpAddress
39-
# value: {{ .Values.config.disableBatchNodesPublicIpAddress | quote }}
40-
# - name: DisableBatchScheduling
41-
# value: {{ .Values.config.disableBatchScheduling | quote }}
42-
# - name: DockerInDockerImageName
43-
# value: {{ .Values.config.dockerInDockerImageName }}
44-
# - name: UsePreemptibleVmsOnly
45-
# value: {{ .Values.config.usePreemptibleVmsOnly | quote}}
46-
# - name: MarthaUrl
47-
# value: {{ .Values.config.drsUrl }}
48-
# - name: CromwellDrsLocalizerImageName
49-
# value: {{ .Values.cromwell.image | replace "cromwell" "cromwell-drs-localizer" }}
50-
# image: {{ .Values.tes.image }}
51-
# name: tes
52-
# ports:
53-
# - containerPort: {{ .Values.tes.port }}
54-
# resources: {}
55-
# restartPolicy: Always
56-
#status: {}
57-
#
58-
#---
59-
#
60-
#apiVersion: v1
61-
#kind: Service
62-
#metadata:
63-
# labels:
64-
# io.kompose.service: tes
65-
# name: tes
66-
#spec:
67-
# ports:
68-
# - name: {{ .Values.tes.port | quote }}
69-
# port: {{ .Values.tes.port }}
70-
# targetPort: {{ .Values.tes.port }}
71-
# selector:
72-
# io.kompose.service: tes
73-
#status:
74-
# loadBalancer: {}
75-
#
1+
{{- if .Values.cromwell.enabled }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
labels:
6+
{{- include "app.labels" . | nindent 4 }}
7+
name: {{ include "app.fullname" . }}-tes-depl
8+
spec:
9+
replicas: 1
10+
selector:
11+
matchLabels:
12+
io.kompose.service: tes
13+
strategy:
14+
type: Recreate
15+
template:
16+
metadata:
17+
labels:
18+
io.kompose.service: tes
19+
aadpodidbinding: {{ .Values.identity.name }}
20+
spec:
21+
containers:
22+
- env:
23+
- name: AllowedHosts
24+
value: {{ .Values.tes.allowedHosts | quote }}
25+
- name: ApplicationInsights_Connection_String
26+
value: {{ .Values.config.applicationInsightsConnectionString }}
27+
- name: AzureOfferDurableId
28+
value: {{ .Values.tes.azureOfferDurableId }}
29+
- name: BatchAccount__AccountName
30+
value: {{ .Values.config.batchAccountName }}
31+
- name: BatchAccount__BaseUrl
32+
value: "https://{{ .Values.config.batchAccountName }}.{{ .Values.config.region }}.batch.azure.com"
33+
- name: BatchAccount__AppKey
34+
value: {{ .Values.config.batchAccountKey }}
35+
- name: BatchAccount__Region
36+
value: {{ .Values.config.region }}
37+
- name: BatchAccount__ResourceGroup
38+
value: {{ .Values.config.resourceGroup }}
39+
- name: BatchAccount__SubscriptionId
40+
value: {{ .Values.config.subscriptionId }}
41+
- name: BatchImageGen1__NodeAgentSkuId
42+
value: {{ .Values.tes.batchImageGen1.nodeAgentSkuId }}
43+
- name: BatchImageGen1__Offer
44+
value: {{ .Values.tes.batchImageGen1.offer }}
45+
- name: BatchImageGen1__Publisher
46+
value: {{ .Values.tes.batchImageGen1.publisher }}
47+
- name: BatchImageGen1__Sku
48+
value: {{ .Values.tes.batchImageGen1.sku }}
49+
- name: BatchImageGen1__Version
50+
value: {{ .Values.tes.batchImageGen1.version }}
51+
- name: BatchImageGen2__NodeAgentSkuId
52+
value: {{ .Values.tes.batchImageGen2.nodeAgentSkuId }}
53+
- name: BatchImageGen2__Offer
54+
value: {{ .Values.tes.batchImageGen2.offer }}
55+
- name: BatchImageGen2__Publisher
56+
value: {{ .Values.tes.batchImageGen2.publisher }}
57+
- name: BatchImageGen2__Sku
58+
value: {{ .Values.tes.batchImageGen2.sku | quote }}
59+
- name: BatchImageGen2__Version
60+
value: {{ .Values.tes.batchImageGen2.version }}
61+
- name: BatchNodes__DisablePublicIpAddress
62+
value: {{ .Values.tes.batchNodes.disablePublicIpAddress | quote }}
63+
# Not currently working
64+
# - name: BatchNodes__SubnetId
65+
# value: {{ .Values.config.batchNodesSubnetId }}
66+
- name: BatchScheduling__Disable
67+
value: {{ .Values.tes.batchScheduling.disable | quote }}
68+
- name: BatchScheduling__PoolRotationForcedDays
69+
value: {{ .Values.tes.batchScheduling.poolRotationForcedDays | quote }}
70+
# Name needs to be unique per LZ with max length 9. coa-ABCDEF-coa-rls -> ABCDEF
71+
# Caution!! Consider hardening this to ensure uniqueness.
72+
- name: BatchScheduling__Prefix
73+
value: {{ .Values.fullnameOverride | substr 4 10 }}
74+
- name: BatchScheduling__UsePreemptibleVmsOnly
75+
value: {{ .Values.tes.batchScheduling.usePreemptibleVmsOnly | quote}}
76+
- name: ContainerRegistry__AutoDiscoveryEnabled
77+
value: {{ .Values.tes.containerRegistry.autoDiscoveryEnabled | quote }}
78+
- name: ContainerRegistry__RegistryInfoCacheExpirationInHour
79+
value: {{ .Values.tes.containerRegistry.registryInfoCacheExpirationInHour | quote }}
80+
- name: Logging__LogLevel__Default
81+
value: {{ .Values.tes.logLevel }}
82+
- name: Martha__Url
83+
value: {{ .Values.config.drsUrl }}
84+
- name: Martha__CromwellDrsLocalizer
85+
value: {{ .Values.cromwell.image | replace "cromwell" "cromwell-drs-localizer" }}
86+
- name: RetryPolicy__MaxRetryCount
87+
value: {{ .Values.tes.retryPolicy.maxRetryCount | quote }}
88+
- name: RetryPolicy__ExponentialBackOffExponent
89+
value: {{ .Values.tes.retryPolicy.exponentialBackOffExponent | quote }}
90+
- name: Terra__LandingZoneId
91+
value: {{ .Values.config.landingZoneId }}
92+
- name: Terra__LandingZoneApiHost
93+
value: {{ .Values.persistence.workspaceManager.url }}
94+
- name: Terra__SasTokenExpirationInSeconds
95+
value: {{ .Values.tes.sasTokenExpirationInSeconds | quote }}
96+
- name: Terra__WsmApiHost
97+
value: {{ .Values.persistence.workspaceManager.url }}
98+
- name: Terra__WorkspaceStorageContainerResourceId
99+
value: {{ .Values.persistence.workspaceManager.containerResourceId }}
100+
- name: Terra__WorkspaceStorageContainerName
101+
value: {{ .Values.persistence.blobContainer }}
102+
- name: Terra__WorkspaceStorageAccountName
103+
value: {{ .Values.persistence.storageAccount }}
104+
- name: Terra__WorkspaceId
105+
value: {{ .Values.persistence.workspaceManager.workspaceId }}
106+
- name: TesPostgreSql__ServerName
107+
value: {{ include "app.fullname" . }}
108+
- name: TesPostgreSql__ServerNameSuffix
109+
value: "-postgres"
110+
- name: TesPostgreSql__ServerSslMode
111+
value: Disable
112+
- name: TesPostgreSql__ServerPort
113+
value: {{ .Values.postgres.port | quote }}
114+
- name: TesPostgreSql__DatabaseName
115+
value: {{ .Values.postgres.tes.dbname }}
116+
- name: TesPostgreSql__DatabaseUserLogin
117+
value: {{ .Values.postgres.user | quote }}
118+
- name: TesPostgreSql__DatabaseUserPassword
119+
value: {{ include "dbPassword" . | b64enc | quote }}
120+
image: {{ .Values.tes.image }}
121+
name: tes
122+
ports:
123+
- containerPort: {{ .Values.tes.port }}
124+
resources:
125+
requests:
126+
cpu: "1.5"
127+
memory: "3072Mi"
128+
limits:
129+
cpu: "8.0"
130+
memory: "8192Mi"
131+
restartPolicy: Always
132+
status: {}
133+
{{ end }}
134+
---
135+
{{- if .Values.cromwell.enabled }}
136+
apiVersion: v1
137+
kind: Service
138+
metadata:
139+
labels:
140+
{{- include "app.labels" . | nindent 4 }}
141+
name: {{ include "app.fullname" . }}-tes-svc
142+
spec:
143+
ports:
144+
- name: {{ .Values.tes.port | quote }}
145+
port: {{ .Values.tes.port }}
146+
targetPort: {{ .Values.tes.port }}
147+
selector:
148+
io.kompose.service: tes
149+
status:
150+
loadBalancer: {}
151+
{{ end }}

coa-helm/values.yaml

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,51 @@
11
config:
22
resourceGroup: RUNTIME_PARAMETER
3-
azureServicesAuthConnectionString: RUNTIME_PARAMETER
3+
landingZoneId: RUNTIME_PARAMETER
4+
subscriptionId: RUNTIME_PARAMETER
5+
region: RUNTIME_PARAMETER
46
applicationInsightsConnectionString: RUNTIME_PARAMETER
5-
applicationInsightsAccountName: RUNTIME_PARAMETER
6-
cosmosDbAccountName: RUNTIME_PARAMETER
77
batchAccountName: RUNTIME_PARAMETER
8+
batchAccountKey: RUNTIME_PARAMETER
89
batchNodesSubnetId: RUNTIME_PARAMETER
9-
azureOfferDurableId: MS-AZR-0003p
10-
blobxferImageName: ""
11-
disableBatchNodesPublicIpAddress: false
12-
disableBatchScheduling: false
13-
dockerInDockerImageName: ""
14-
usePreemptibleVmsOnly: false
1510
drsUrl: RUNTIME_PARAMETER
16-
workflowExecutionIdentity: RUNTIME_PARAMETER
11+
12+
fullnameOverride: RUNTIME_PARAMETER
1713

1814
tes:
19-
image: mcr.microsoft.com/cromwellonazure/tes:3.1
15+
# Test image, should be replaced with an official release when available
16+
image: mcr.microsoft.com/ga4gh/tes:int-4.0.23005.6784
2017
port: 80
21-
18+
# One of Trace, Debug, Information, Warning, Error, Critical, None
19+
logLevel: Warning
20+
# Currently this represents the max task processing time
21+
sasTokenExpirationInSeconds: 86400
22+
allowedHosts: "*"
23+
azureOfferDurableId: MS-AZR-0003p
24+
retryPolicy:
25+
maxRetryCount: 5
26+
exponentialBackOffExponent: 2
27+
containerRegistry:
28+
autoDiscoveryEnabled: false
29+
registryInfoCacheExpirationInHour: 1
30+
batchImageGen1:
31+
nodeAgentSkuId: "batch.node.ubuntu 20.04"
32+
offer: "ubuntu-server-container"
33+
publisher: "microsoft-azure-batch"
34+
sku: "20-04-lts"
35+
version: "latest"
36+
batchImageGen2:
37+
nodeAgentSkuId: "batch.node.ubuntu 20.04"
38+
offer: "ubuntu-hpc"
39+
publisher: "microsoft-dsvm"
40+
sku: "2004"
41+
version: "latest"
42+
batchNodes:
43+
disablePublicIpAddress: false
44+
batchScheduling:
45+
disable: false
46+
poolRotationForcedDays: 7
47+
usePreemptibleVmsOnly: false
48+
2249
relay:
2350
path: RUNTIME_PARAMETER
2451

terra-batch-libchart/templates/_postgres.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ spec:
4141
- name: POSTGRES_USER
4242
value: {{ .Values.postgres.user }}
4343
- name: POSTGRES_MULTIPLE_DATABASES
44-
value: "{{ .Values.postgres.cromwell.dbname }},{{ .Values.postgres.wds.dbname }},{{ .Values.postgres.cbas.dbname }}"
44+
value: "{{ .Values.postgres.cromwell.dbname }},{{ .Values.postgres.wds.dbname }},{{ .Values.postgres.cbas.dbname }},{{ .Values.postgres.tes.dbname }}"
4545
{{- end -}}
4646
{{- define "terra-batch-libchart.postgres-deploy" -}}
4747
{{- include "terra-batch-libchart.util.merge" (append . "terra-batch-libchart.postgres-deploy.tpl") -}}

terra-batch-libchart/values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ exports:
6666
dbname: cromwell
6767
cbas:
6868
dbname: cbas
69+
tes:
70+
dbname: tes
6971
startup_dir: /docker-entrypoint-initdb.d
7072
startup_scripts: # Numbered because the scripts in initdb.d are run in alphabetical order
7173
create_dbs: 01_create_dbs.sh

0 commit comments

Comments
 (0)