Skip to content

Commit fe74cec

Browse files
Merge pull request #96 from FSU-ACM/release
site iconography + domjudge, bastion and judgehosts docker secrets integration
2 parents 8aca560 + 663298c commit fe74cec

File tree

17 files changed

+275
-214
lines changed

17 files changed

+275
-214
lines changed

deploy/prod/bastion/docker-swarm.yaml

+50-29
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,79 @@
11
version: '3.8'
2+
23
services:
34
domserver:
45
image: domjudge/domserver:7.3.3
6+
secrets:
7+
- bastion_db_password
8+
- bastion_db_root_password
59
environment:
6-
- LETSENCRYPT_HOST=bastion.cs.fsu.edu
7-
- VIRTUAL_HOST=bastion.cs.fsu.edu
10+
# Domain name
11+
LETSENCRYPT_HOST: bastion.cs.fsu.edu
12+
VIRTUAL_HOST: bastion.cs.fsu.edu
813

9-
- CONTAINER_TIMEZONE=America/New_York
14+
# Time config
15+
CONTAINER_TIMEZONE: America/New_York
1016

11-
- MYSQL_HOST=mariadb
12-
- MYSQL_DATABASE=domjudge
13-
- MYSQL_USER=domjudge
14-
- MYSQL_PASSWORD=djpw
15-
- MYSQL_ROOT_PASSWORD=rootpw
17+
# Database
18+
MYSQL_HOST: mariadb
19+
MYSQL_DATABASE: domjudge
20+
MYSQL_USER: domjudge
21+
MYSQL_PASSWORD_FILE: /run/secrets/bastion_db_password
22+
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/bastion_db_root_password
1623
volumes:
1724
- ./config/initial_admin_password.secret:/opt/domjudge/domserver/etc/initial_admin_password.secret:ro
1825
networks:
1926
- frontend
20-
- bastion-jh-backend
21-
- bastion-db-backend
27+
- jh-backend
28+
- db-backend
2229
deploy:
30+
restart_policy:
31+
delay: 5s
32+
max_attempts: 10
33+
window: 120s
2334
rollback_config:
24-
parallelism: 0
35+
monitor: 75s
2536
update_config:
26-
parallelism: 1
27-
delay: 5s
37+
monitor: 75s
2838
failure_action: rollback
2939
mariadb:
3040
image: mariadb:10.6-focal
41+
secrets:
42+
- bastion_db_password
43+
- bastion_db_root_password
3144
environment:
32-
- MARIADB_DATABASE=domjudge
33-
- MARIADB_USER=domjudge
34-
- MARIADB_PASSWORD=djpw
35-
- MARIADB_ROOT_PASSWORD=rootpw
45+
MARIADB_DATABASE: domjudge
46+
MARIADB_USER: domjudge
47+
MARIADB_PASSWORD_FILE: /run/secrets/bastion_db_password
48+
MARIADB_ROOT_PASSWORD_FILE: /run/secrets/bastion_db_root_password
3649
volumes:
37-
- domserver_db_data:/var/lib/mysql
50+
- domserver_db:/var/lib/mysql
3851
networks:
39-
- bastion-db-backend
52+
- db-backend
4053
deploy:
54+
restart_policy:
55+
delay: 5s
56+
max_attempts: 10
57+
window: 75s
4158
rollback_config:
42-
parallelism: 0
59+
monitor: 75s
4360
update_config:
44-
parallelism: 1
45-
delay: 5s
46-
failure_action: rollback
61+
monitor: 75s
62+
failure_action: rollback
63+
secrets:
64+
# Database
65+
bastion_db_password:
66+
external: true
67+
bastion_db_root_password:
68+
external: true
4769
volumes:
48-
domserver_db_data:
70+
domserver_db:
4971
networks:
5072
frontend:
5173
external: true
5274
name: proxied-apps
53-
bastion-jh-backend:
54-
name: bastion-jh-backend
75+
jh-backend:
76+
name: bastion_jh-backend
5577
attachable: true
56-
bastion-db-backend:
57-
name: bastion-db-backend
58-
78+
db-backend:
79+
name: bastion_db-backend

deploy/prod/contestsuite/docker-swarm.yaml

+50-39
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ services:
1515
deploy:
1616
replicas: 2
1717
restart_policy:
18+
delay: 5s
1819
max_attempts: 10
20+
window: 60s
1921
rollback_config:
20-
parallelism: 0
22+
delay: 5s
23+
monitor: 60s
2124
update_config:
2225
parallelism: 1
2326
delay: 5s
@@ -69,17 +72,18 @@ services:
6972
- django_static:/app/static
7073
networks:
7174
- nginx-backend
72-
- mariadb-backend
75+
- db-backend
7376
- redis-backend
7477
- rabbitmq-backend
7578
deploy:
7679
restart_policy:
80+
delay: 5s
7781
max_attempts: 10
82+
window: 60s
7883
rollback_config:
79-
parallelism: 0
84+
monitor: 75s
8085
update_config:
81-
parallelism: 1
82-
delay: 5s
86+
monitor: 75s
8387
failure_action: rollback
8488
scrape_bot:
8589
image: acmfsu/contestsuite:latest
@@ -107,15 +111,16 @@ services:
107111
GUILD_ID: /run/secrets/contestsuite_discord_guild_id # ID of Discord server
108112
SCRAPE_BOT_TOKEN: /run/secrets/contestsuite_scrapebot_token # Token for integrated bot
109113
networks:
110-
- mariadb-backend
114+
- db-backend
111115
deploy:
112116
restart_policy:
117+
delay: 5s
113118
max_attempts: 10
119+
window: 60s
114120
rollback_config:
115-
parallelism: 0
121+
monitor: 75s
116122
update_config:
117-
parallelism: 1
118-
delay: 5s
123+
monitor: 75s
119124
failure_action: rollback
120125
celery_worker:
121126
image: acmfsu/contestsuite:latest
@@ -159,17 +164,18 @@ services:
159164
- django_app:/app/media
160165
- django_static:/app/static
161166
networks:
162-
- mariadb-backend
167+
- db-backend
163168
- redis-backend
164169
- rabbitmq-backend
165170
deploy:
166171
restart_policy:
172+
delay: 5s
167173
max_attempts: 10
174+
window: 60s
168175
rollback_config:
169-
parallelism: 0
176+
monitor: 75s
170177
update_config:
171-
parallelism: 1
172-
delay: 5s
178+
monitor: 75s
173179
failure_action: rollback
174180
celery_beat:
175181
image: acmfsu/contestsuite:latest
@@ -195,17 +201,18 @@ services:
195201
volumes:
196202
- django_static:/app/static
197203
networks:
198-
- mariadb-backend
204+
- db-backend
199205
- redis-backend
200206
- rabbitmq-backend
201207
deploy:
202208
restart_policy:
209+
delay: 5s
203210
max_attempts: 10
211+
window: 60s
204212
rollback_config:
205-
parallelism: 0
213+
monitor: 75s
206214
update_config:
207-
parallelism: 1
208-
delay: 5s
215+
monitor: 75s
209216
failure_action: rollback
210217
flower:
211218
image: mher/flower:latest
@@ -219,12 +226,13 @@ services:
219226
- rabbitmq-backend
220227
deploy:
221228
restart_policy:
229+
delay: 5s
222230
max_attempts: 10
231+
window: 60s
223232
rollback_config:
224-
parallelism: 0
233+
monitor: 75s
225234
update_config:
226-
parallelism: 1
227-
delay: 5s
235+
monitor: 75s
228236
failure_action: rollback
229237
mariadb:
230238
image: mariadb:10.6-focal
@@ -234,22 +242,23 @@ services:
234242
- contestsuite_db_password
235243
- contestsuite_db_root_password
236244
environment:
237-
MARIADB_DATABASE: /run/secrets/contestsuite_db_name
238-
MARIADB_USER: /run/secrets/contestsuite_db_user
239-
MARIADB_PASSWORD: /run/secrets/contestsuite_db_password
240-
MARIADB_ROOT_PASSWORD: /run/secrets/contestsuite_db_root_password
245+
MARIADB_DATABASE_FILE: /run/secrets/contestsuite_db_name
246+
MARIADB_USER_FILE: /run/secrets/contestsuite_db_user
247+
MARIADB_PASSWORD_FILE: /run/secrets/contestsuite_db_password
248+
MARIADB_ROOT_PASSWORD_FILE: /run/secrets/contestsuite_db_root_password
241249
volumes:
242250
- django_db:/var/lib/mysql
243251
networks:
244-
- mariadb-backend
252+
- db-backend
245253
deploy:
246254
restart_policy:
255+
delay: 5s
247256
max_attempts: 10
257+
window: 75s
248258
rollback_config:
249-
parallelism: 0
259+
monitor: 75s
250260
update_config:
251-
parallelism: 1
252-
delay: 5s
261+
monitor: 75s
253262
failure_action: rollback
254263
redis:
255264
image: redis:5-buster
@@ -259,12 +268,13 @@ services:
259268
- redis-backend
260269
deploy:
261270
restart_policy:
271+
delay: 5s
262272
max_attempts: 10
273+
window: 75s
263274
rollback_config:
264-
parallelism: 0
275+
monitor: 75s
265276
update_config:
266-
parallelism: 1
267-
delay: 5s
277+
monitor: 75s
268278
failure_action: rollback
269279
rabbitmq:
270280
image: rabbitmq:3-management
@@ -274,12 +284,13 @@ services:
274284
- rabbitmq-backend
275285
deploy:
276286
restart_policy:
287+
delay: 5s
277288
max_attempts: 10
289+
window: 75s
278290
rollback_config:
279-
parallelism: 0
291+
monitor: 75s
280292
update_config:
281-
parallelism: 1
282-
delay: 5s
293+
monitor: 75s
283294
failure_action: rollback
284295
secrets:
285296
# Database
@@ -326,10 +337,10 @@ networks:
326337
external: true
327338
name: proxied-apps
328339
nginx-backend:
329-
name: nginx-backend
330-
mariadb-backend:
331-
name: mariadb-backend
340+
name: contestsuite_nginx-backend
341+
db-backend:
342+
name: contestsuite_db-backend
332343
redis-backend:
333-
name: redis-backend
344+
name: contestsuite_redis-backend
334345
rabbitmq-backend:
335-
name: rabbitmq-backend
346+
name: contestsuite_rabbitmq-backend

0 commit comments

Comments
 (0)