-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.ts
169 lines (164 loc) · 7.84 KB
/
config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import { region, AppStage, accountIdAlias } from './constants';
import { StatefulStackCollectionProps } from '../lib/workload/stateful/statefulStackCollectionClass';
import { StatelessStackCollectionProps } from '../lib/workload/stateless/statelessStackCollectionClass';
import { getSharedStackProps } from './stacks/shared';
import { getIcaEventPipeStackProps } from './stacks/icaEventPipe';
import { getTokenServiceStackProps } from './stacks/tokenService';
import { getPostgresManagerStackProps } from './stacks/postgresManager';
import { getMetadataManagerStackProps } from './stacks/metadataManager';
import { getSequenceRunManagerStackProps } from './stacks/sequenceRunManager';
import { getFileManagerStackProps } from './stacks/fileManager';
import { getBsshIcav2FastqCopyManagerStackProps } from './stacks/bsshIcav2FastqCopyManager';
import {
getCttsov2Icav2PipelineManagerStackProps,
getCttsov2Icav2PipelineTableStackProps,
} from './stacks/cttsov2Icav2PipelineManager';
import { getEventSchemaStackProps } from './stacks/schema/events';
import { getDataSchemaStackProps } from './stacks/schema/data';
import {
getBclConvertManagerTableStackProps,
getBclConvertManagerStackProps,
} from './stacks/bclConvertManager';
import { getWorkflowManagerStackProps } from './stacks/workflowRunManager';
import {
getBclconvertInteropQcIcav2PipelineManagerStackProps,
getBclconvertInteropQcIcav2PipelineTableStackProps,
} from './stacks/bclconvertInteropQcIcav2PipelineManager';
import { getGlueStackProps, getStatefulGlueStackProps } from './stacks/stackyMcStackFace';
import { getDataBucketStackProps } from './stacks/dataBucket';
import {
getWgtsQcIcav2PipelineManagerStackProps,
getWgtsQcIcav2PipelineTableStackProps,
} from './stacks/wgtsQcPipelineManager';
import {
getTnIcav2PipelineManagerStackProps,
getTnIcav2PipelineTableStackProps,
} from './stacks/tumorNormalPipelineManager';
import {
getWtsIcav2PipelineManagerStackProps,
getWtsIcav2PipelineTableStackProps,
} from './stacks/wtsPipelineManager';
import {
getUmccriseIcav2PipelineManagerStackProps,
getUmccriseIcav2PipelineTableStackProps,
} from './stacks/umccrisePipelineManager';
import {
getRnasumIcav2PipelineManagerStackProps,
getRnasumIcav2PipelineTableStackProps,
} from './stacks/rnasumPipelineManager';
import { getFmAnnotatorProps } from './stacks/fmAnnotator';
import {
getPierianDxPipelineManagerStackProps,
getPierianDxPipelineTableStackProps,
} from './stacks/pierianDxPipelineManager';
import { getAuthorizationManagerStackProps } from './stacks/authorizationManager';
import { getSashPipelineManagerStackProps, getSashPipelineTableStackProps } from './stacks/sash';
import {
getOncoanalyserPipelineManagerStackProps,
getOncoanalyserPipelineTableStackProps,
} from './stacks/oncoanalyser';
import {
getOraCompressionIcav2PipelineManagerStackProps,
getOraCompressionIcav2PipelineTableStackProps,
} from './stacks/oraCompressionPipelineManager';
import { getOraDecompressionManagerStackProps } from './stacks/oraDecompressionPipelineManager';
import { getPgDDProps } from './stacks/pgDD';
import { getDataMigrateStackProps } from './stacks/dataMigrate';
import { getHtsgetProps } from './stacks/htsget';
import { getSampleSheetCheckerProps } from './stacks/sampleSheetChecker';
import { getAccessKeySecretStackProps } from './stacks/accessKeySecret';
interface EnvironmentConfig {
name: string;
region: string;
accountId: string;
stackProps: {
statefulConfig: StatefulStackCollectionProps;
statelessConfig: StatelessStackCollectionProps;
};
}
/**
* The function will return the appropriate configuration for the given account
*
* @param stage the name of account stage
* @returns the configuration for the given app stage
*/
export const getEnvironmentConfig = (stage: AppStage): EnvironmentConfig | null => {
const stackProps = {
statefulConfig: {
authorizationManagerStackProps: getAuthorizationManagerStackProps(stage),
dataBucketStackProps: getDataBucketStackProps(stage),
sharedStackProps: getSharedStackProps(stage),
postgresManagerStackProps: getPostgresManagerStackProps(),
tokenServiceStackProps: getTokenServiceStackProps(),
icaEventPipeStackProps: getIcaEventPipeStackProps(),
bclconvertInteropQcIcav2PipelineTableStackProps:
getBclconvertInteropQcIcav2PipelineTableStackProps(),
cttsov2Icav2PipelineTableStackProps: getCttsov2Icav2PipelineTableStackProps(),
wgtsQcIcav2PipelineTableStackProps: getWgtsQcIcav2PipelineTableStackProps(),
tnIcav2PipelineTableStackProps: getTnIcav2PipelineTableStackProps(),
wtsIcav2PipelineTableStackProps: getWtsIcav2PipelineTableStackProps(),
umccriseIcav2PipelineTableStackProps: getUmccriseIcav2PipelineTableStackProps(),
rnasumIcav2PipelineTableStackProps: getRnasumIcav2PipelineTableStackProps(),
oraCompressionIcav2PipelineTableStackProps: getOraCompressionIcav2PipelineTableStackProps(),
BclConvertTableStackProps: getBclConvertManagerTableStackProps(stage),
stackyStatefulTablesStackProps: getStatefulGlueStackProps(),
pierianDxPipelineTableStackProps: getPierianDxPipelineTableStackProps(),
oncoanalyserPipelineTableStackProps: getOncoanalyserPipelineTableStackProps(),
sashPipelineTableStackProps: getSashPipelineTableStackProps(),
accessKeySecretStackProps: getAccessKeySecretStackProps(stage),
},
statelessConfig: {
metadataManagerStackProps: getMetadataManagerStackProps(stage),
sequenceRunManagerStackProps: getSequenceRunManagerStackProps(stage),
fileManagerStackProps: getFileManagerStackProps(stage),
bsshIcav2FastqCopyManagerStackProps: getBsshIcav2FastqCopyManagerStackProps(stage),
bclconvertInteropQcIcav2PipelineManagerStackProps:
getBclconvertInteropQcIcav2PipelineManagerStackProps(stage),
cttsov2Icav2PipelineManagerStackProps: getCttsov2Icav2PipelineManagerStackProps(stage),
wgtsQcIcav2PipelineManagerStackProps: getWgtsQcIcav2PipelineManagerStackProps(stage),
tnIcav2PipelineManagerStackProps: getTnIcav2PipelineManagerStackProps(stage),
wtsIcav2PipelineManagerStackProps: getWtsIcav2PipelineManagerStackProps(stage),
umccriseIcav2PipelineManagerStackProps: getUmccriseIcav2PipelineManagerStackProps(stage),
rnasumIcav2PipelineManagerStackProps: getRnasumIcav2PipelineManagerStackProps(stage),
pieriandxPipelineManagerStackProps: getPierianDxPipelineManagerStackProps(stage),
oncoanalyserPipelineManagerStackProps: getOncoanalyserPipelineManagerStackProps(stage),
sashPipelineManagerStackProps: getSashPipelineManagerStackProps(stage),
oraCompressionIcav2PipelineManagerStackProps:
getOraCompressionIcav2PipelineManagerStackProps(stage),
oraDecompressionManagerStackProps: getOraDecompressionManagerStackProps(stage),
eventSchemaStackProps: getEventSchemaStackProps(),
dataSchemaStackProps: getDataSchemaStackProps(),
bclConvertManagerStackProps: getBclConvertManagerStackProps(stage),
workflowManagerStackProps: getWorkflowManagerStackProps(stage),
stackyMcStackFaceProps: getGlueStackProps(stage),
fmAnnotatorProps: getFmAnnotatorProps(),
dataMigrateProps: getDataMigrateStackProps(stage),
htsgetProps: getHtsgetProps(stage),
sampleSheetCheckerProps: getSampleSheetCheckerProps(stage),
pgDDProps: getPgDDProps(stage),
},
};
switch (stage) {
case AppStage.BETA:
return {
name: 'beta',
region,
accountId: accountIdAlias[stage], // umccr_development
stackProps: stackProps,
};
case AppStage.GAMMA:
return {
name: 'gamma',
region,
accountId: accountIdAlias[stage], // umccr_staging
stackProps: stackProps,
};
case AppStage.PROD:
return {
name: 'prod',
region,
accountId: accountIdAlias[stage], // umccr_production
stackProps: stackProps,
};
}
};