Skip to content

Commit 95a67a9

Browse files
authored
Merge pull request #88 from CBIIT/ghaction
Github action for ezQTL
2 parents 49ac22f + 9dfa883 commit 95a67a9

File tree

3 files changed

+499
-0
lines changed

3 files changed

+499
-0
lines changed

.github/aws/web.yml

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
family: "$ECS_WEB_TASK"
2+
networkMode: awsvpc
3+
cpu: "$ECS_WEB_TASK_CPU_UNITS"
4+
memory: "$ECS_WEB_TASK_MEMORY_UNITS"
5+
executionRoleArn: "$ROLE_ARN"
6+
taskRoleArn: "$ROLE_ARN"
7+
requiresCompatibilities:
8+
- FARGATE
9+
volumes:
10+
- name: data
11+
efsVolumeConfiguration:
12+
fileSystemId: "$EFS_FILESYSTEM_ID"
13+
authorizationConfig:
14+
accessPointId: "$EFS_ACCESS_POINT_ID"
15+
iam: ENABLED
16+
transitEncryption: ENABLED
17+
containerDefinitions:
18+
- name: logs
19+
image: public.ecr.aws/aws-observability/aws-for-fluent-bit:stable
20+
firelensConfiguration:
21+
type: fluentbit
22+
memoryReservation: 50
23+
logConfiguration:
24+
logDriver: awslogs
25+
options:
26+
awslogs-group: "/analysistools/$TIER/$APP/web"
27+
awslogs-region: "$AWS_REGION"
28+
awslogs-stream-prefix: logs
29+
30+
- name: frontend
31+
image: "$FRONTEND_IMAGE_LATEST"
32+
portMappings:
33+
- protocol: tcp
34+
containerPort: $FRONTEND_CONTAINER_PORT
35+
environment:
36+
- name: API_BASE_URL
37+
value: http://localhost:$BACKEND_CONTAINER_PORT
38+
secrets:
39+
- name: APP_PATH
40+
valueFrom: "/analysistools/$TIER/$APP/application_path"
41+
- name: SERVER_TIMEOUT
42+
valueFrom: "/analysistools/$TIER/$APP/server_timeout"
43+
logConfiguration:
44+
logDriver: awsfirelens
45+
options:
46+
Name: datadog
47+
tls: "on"
48+
tls.verify: "off"
49+
dd_service: "$TIER-$APP-frontend"
50+
dd_source: "httpd"
51+
dd_tags: "project:$APP tier:$TIER"
52+
provider: ecs
53+
secretOptions:
54+
- name: Host
55+
valueFrom: /analysistools/$TIER/datadog/log_endpoint_host
56+
- name: apikey
57+
valueFrom: /analysistools/$TIER/datadog/api_key
58+
memoryReservation: 100
59+
60+
- name: backend
61+
image: "$BACKEND_IMAGE_LATEST"
62+
environment:
63+
- name: AWS_DEFAULT_REGION
64+
value: "$AWS_REGION"
65+
- name: APP_NAME
66+
value: "$APP"
67+
- name: APP_PORT
68+
value: "$BACKEND_CONTAINER_PORT"
69+
- name: APP_TIER
70+
value: "$TIER"
71+
- name: WORKER_TYPE
72+
value: "fargate"
73+
- name: "TZ"
74+
value: "$TZ"
75+
secrets:
76+
- name: APP_BASE_URL
77+
valueFrom: "/analysistools/$TIER/$APP/base_url"
78+
- name: API_BASE_URL
79+
valueFrom: "/analysistools/$TIER/$APP/base_url"
80+
- name: LOG_LEVEL
81+
valueFrom: "/analysistools/$TIER/datadog/log_level"
82+
- name: SERVER_TIMEOUT
83+
valueFrom: "/analysistools/$TIER/$APP/server_timeout"
84+
- name: APP_DATA_FOLDER
85+
valueFrom: "/analysistools/$TIER/$APP/app_data_folder"
86+
- name: APP_SCRIPTS
87+
valueFrom: "/analysistools/$TIER/$APP/app_scripts"
88+
- name: DATA_FOLDER
89+
valueFrom: "/analysistools/$TIER/$APP/data_folder"
90+
- name: DATA_BUCKET
91+
valueFrom: "/analysistools/$TIER/$APP/data_bucket"
92+
- name: DATA_BUCKET_PREFIX
93+
valueFrom: "/analysistools/$TIER/$APP/data_bucket_prefix"
94+
- name: INPUT_FOLDER
95+
valueFrom: "/analysistools/$TIER/$APP/input_folder"
96+
- name: INPUT_KEY_PREFIX
97+
valueFrom: "/analysistools/$TIER/$APP/input_key_prefix"
98+
- name: IO_BUCKET
99+
valueFrom: "/analysistools/$TIER/$APP/io_bucket"
100+
- name: OUTPUT_FOLDER
101+
valueFrom: "/analysistools/$TIER/$APP/output_folder"
102+
- name: OUTPUT_KEY_PREFIX
103+
valueFrom: "/analysistools/$TIER/$APP/output_key_prefix"
104+
- name: VPC_ID
105+
valueFrom: "/analysistools/$TIER/$APP/vpc_id"
106+
- name: SUBNET_IDS
107+
valueFrom: "/analysistools/$TIER/$APP/subnet_ids"
108+
- name: SECURITY_GROUP_IDS
109+
valueFrom: "/analysistools/$TIER/$APP/security_group_ids"
110+
- name: ECS_CLUSTER
111+
valueFrom: "/analysistools/$TIER/$APP/ecs_cluster"
112+
- name: WORKER_TASK_NAME
113+
valueFrom: "/analysistools/$TIER/$APP/ecs_worker_task"
114+
- name: EMAIL_ADMIN
115+
valueFrom: "/analysistools/$TIER/$APP/email_admin"
116+
- name: EMAIL_SMTP_HOST
117+
valueFrom: "/analysistools/$TIER/$APP/email_smtp_host"
118+
- name: EMAIL_SMTP_PORT
119+
valueFrom: "/analysistools/$TIER/$APP/email_smtp_port"
120+
- name: EMAIL_TECH_SUPPORT
121+
valueFrom: "/analysistools/$TIER/$APP/email_tech_support"
122+
mountPoints:
123+
- sourceVolume: data
124+
containerPath: "/data"
125+
readOnly: false
126+
logConfiguration:
127+
logDriver: awsfirelens
128+
options:
129+
Name: datadog
130+
tls: "on"
131+
tls.verify: "off"
132+
dd_service: "$TIER-$APP-backend"
133+
dd_source: "nodejs"
134+
dd_tags: "project:$APP tier:$TIER"
135+
provider: ecs
136+
secretOptions:
137+
- name: Host
138+
valueFrom: /analysistools/$TIER/datadog/log_endpoint_host
139+
- name: apikey
140+
valueFrom: /analysistools/$TIER/datadog/api_key
141+
tags:
142+
- key: Project
143+
value: "$APP"
144+
- key: ResourceName
145+
value: "$TIER-$APP-web-ecs-task"
146+
- key: EnvironmentTier
147+
value: "$ENVIRONMENT_TIER"
148+
- key: ResourceFunction
149+
value: compute
150+
- key: Creator
151+
value: TF

.github/aws/worker.yml

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
family: "$ECS_WORKER_TASK"
2+
networkMode: awsvpc
3+
cpu: "$ECS_WORKER_TASK_CPU_UNITS"
4+
memory: "$ECS_WORKER_TASK_MEMORY_UNITS"
5+
executionRoleArn: "$ROLE_ARN"
6+
taskRoleArn: "$ROLE_ARN"
7+
requiresCompatibilities:
8+
- FARGATE
9+
volumes:
10+
- name: data
11+
efsVolumeConfiguration:
12+
fileSystemId: "$EFS_FILESYSTEM_ID"
13+
authorizationConfig:
14+
accessPointId: "$EFS_ACCESS_POINT_ID"
15+
iam: ENABLED
16+
transitEncryption: ENABLED
17+
containerDefinitions:
18+
- name: logs
19+
image: public.ecr.aws/aws-observability/aws-for-fluent-bit:stable
20+
firelensConfiguration:
21+
type: fluentbit
22+
memoryReservation: 50
23+
logConfiguration:
24+
logDriver: awslogs
25+
options:
26+
awslogs-group: "/analysistools/$TIER/$APP/worker"
27+
awslogs-region: "$AWS_REGION"
28+
awslogs-stream-prefix: logs
29+
30+
- name: "worker"
31+
image: "$BACKEND_IMAGE_LATEST"
32+
environment:
33+
- name: AWS_DEFAULT_REGION
34+
value: "$AWS_REGION"
35+
- name: APP_NAME
36+
value: "$APP"
37+
- name: APP_PORT
38+
value: "$BACKEND_CONTAINER_PORT"
39+
- name: APP_TIER
40+
value: "$TIER"
41+
- name: WORKER_TYPE
42+
value: "fargate"
43+
- name: "TZ"
44+
value: "$TZ"
45+
secrets:
46+
- name: APP_BASE_URL
47+
valueFrom: "/analysistools/$TIER/$APP/base_url"
48+
- name: API_BASE_URL
49+
valueFrom: "/analysistools/$TIER/$APP/base_url"
50+
- name: LOG_LEVEL
51+
valueFrom: "/analysistools/$TIER/datadog/log_level"
52+
- name: SERVER_TIMEOUT
53+
valueFrom: "/analysistools/$TIER/$APP/server_timeout"
54+
- name: APP_DATA_FOLDER
55+
valueFrom: "/analysistools/$TIER/$APP/app_data_folder"
56+
- name: APP_SCRIPTS
57+
valueFrom: "/analysistools/$TIER/$APP/app_scripts"
58+
- name: DATA_FOLDER
59+
valueFrom: "/analysistools/$TIER/$APP/data_folder"
60+
- name: DATA_BUCKET
61+
valueFrom: "/analysistools/$TIER/$APP/data_bucket"
62+
- name: DATA_BUCKET_PREFIX
63+
valueFrom: "/analysistools/$TIER/$APP/data_bucket_prefix"
64+
- name: INPUT_FOLDER
65+
valueFrom: "/analysistools/$TIER/$APP/input_folder"
66+
- name: INPUT_KEY_PREFIX
67+
valueFrom: "/analysistools/$TIER/$APP/input_key_prefix"
68+
- name: IO_BUCKET
69+
valueFrom: "/analysistools/$TIER/$APP/io_bucket"
70+
- name: OUTPUT_FOLDER
71+
valueFrom: "/analysistools/$TIER/$APP/output_folder"
72+
- name: OUTPUT_KEY_PREFIX
73+
valueFrom: "/analysistools/$TIER/$APP/output_key_prefix"
74+
- name: VPC_ID
75+
valueFrom: "/analysistools/$TIER/$APP/vpc_id"
76+
- name: SUBNET_IDS
77+
valueFrom: "/analysistools/$TIER/$APP/subnet_ids"
78+
- name: SECURITY_GROUP_IDS
79+
valueFrom: "/analysistools/$TIER/$APP/security_group_ids"
80+
- name: ECS_CLUSTER
81+
valueFrom: "/analysistools/$TIER/$APP/ecs_cluster"
82+
- name: WORKER_TASK_NAME
83+
valueFrom: "/analysistools/$TIER/$APP/ecs_worker_task"
84+
- name: EMAIL_ADMIN
85+
valueFrom: "/analysistools/$TIER/$APP/email_admin"
86+
- name: EMAIL_SMTP_HOST
87+
valueFrom: "/analysistools/$TIER/$APP/email_smtp_host"
88+
- name: EMAIL_SMTP_PORT
89+
valueFrom: "/analysistools/$TIER/$APP/email_smtp_port"
90+
- name: EMAIL_TECH_SUPPORT
91+
valueFrom: "/analysistools/$TIER/$APP/email_tech_support"
92+
mountPoints:
93+
- sourceVolume: data
94+
containerPath: "/data"
95+
readOnly: false
96+
logConfiguration:
97+
logDriver: awsfirelens
98+
options:
99+
Name: datadog
100+
tls: "on"
101+
tls.verify: "off"
102+
dd_service: "$TIER-$APP-worker"
103+
dd_source: "nodejs"
104+
dd_tags: "project:$APP tier:$TIER"
105+
provider: ecs
106+
secretOptions:
107+
- name: Host
108+
valueFrom: /analysistools/$TIER/datadog/log_endpoint_host
109+
- name: apikey
110+
valueFrom: /analysistools/$TIER/datadog/api_key
111+
tags:
112+
- key: Project
113+
value: "$APP"
114+
- key: ResourceName
115+
value: "$TIER-$APP-worker-ecs-task"
116+
- key: EnvironmentTier
117+
value: "$ENVIRONMENT_TIER"
118+
- key: ResourceFunction
119+
value: compute
120+
- key: Creator
121+
value: TF

0 commit comments

Comments
 (0)