Skip to content

Commit cb7c633

Browse files
authored
Add scenario to apply docker resource limits (#492)
1 parent 047e379 commit cb7c633

File tree

5 files changed

+108
-0
lines changed

5 files changed

+108
-0
lines changed

.env.dist

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,31 @@
8787
#############################################
8888

8989
# OLLAMA_PULL_MODEL=llama3.2
90+
91+
#############################################
92+
# scenarios/apply-resource-limits.yml
93+
#############################################
94+
95+
# By loading the scenario, these default limits
96+
# are applied. Uncomment and change if needed.
97+
98+
# ZAMMAD_BACKUP_RESOURCES_LIMITS_CPUS=1.0
99+
# ZAMMAD_BACKUP_RESOURCES_LIMITS_MEMORY=500m
100+
# ZAMMAD_ELASTICSEARCH_RESOURCES_LIMITS_CPUS=1.0
101+
# ZAMMAD_ELASTICSEARCH_RESOURCES_LIMITS_MEMORY=1G
102+
# ZAMMAD_INIT_RESOURCES_LIMITS_CPUS=1.0
103+
# ZAMMAD_INIT_RESOURCES_LIMITS_MEMORY=500M
104+
# ZAMMAD_MEMCACHED_RESOURCES_LIMITS_CPUS=1.0
105+
# ZAMMAD_MEMCACHED_RESOURCES_LIMITS_MEMORY=500M
106+
# ZAMMAD_NGINX_RESOURCES_LIMITS_CPUS=1.0
107+
# ZAMMAD_NGINX_RESOURCES_LIMITS_MEMORY=500M
108+
# ZAMMAD_POSTGRESQL_RESOURCES_LIMITS_CPUS=1.0
109+
# ZAMMAD_POSTGRESQL_RESOURCES_LIMITS_MEMORY=500M
110+
# ZAMMAD_RAILSSERVER_RESOURCES_LIMITS_CPUS=1.0
111+
# ZAMMAD_RAILSSERVER_RESOURCES_LIMITS_MEMORY=500M
112+
# ZAMMAD_REDIS_RESOURCES_LIMITS_CPUS=1.0
113+
# ZAMMAD_REDIS_RESOURCES_LIMITS_MEMORY=500M
114+
# ZAMMAD_SCHEDULER_RESOURCES_LIMITS_CPUS=1.0
115+
# ZAMMAD_SCHEDULER_RESOURCES_LIMITS_MEMORY=500M
116+
# ZAMMAD_WEBSOCKET_RESOURCES_LIMITS_CPUS=1.0
117+
# ZAMMAD_WEBSOCKET_RESOURCES_LIMITS_MEMORY=500M
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
3+
# shellcheck source=/dev/null
4+
. "$(dirname "$0")/include/functions.sh"
5+
6+
check_stack_start
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/sh
2+
3+
set -o errexit
4+
5+
docker compose -f docker-compose.yml -f scenarios/apply-resource-limits.yml up --pull always --quiet-pull --detach

.github/workflows/ci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ jobs:
5353
- add-hostport-to-elasticsearch
5454
- add-nginx-proxy-manager
5555
- add-ollama
56+
- apply-resource-limits
5657
- disable-backup-service
5758
- disable-elasticsearch-service
5859
steps:
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
version: "3.8"
3+
4+
#
5+
# Apply resource limits to the Zammad services.
6+
#
7+
8+
services:
9+
zammad-backup:
10+
deploy:
11+
resources:
12+
limits:
13+
cpus: "${ZAMMAD_BACKUP_RESOURCES_LIMITS_CPUS:-1.0}"
14+
memory: "${ZAMMAD_BACKUP_RESOURCES_LIMITS_MEMORY:-500m}"
15+
zammad-elasticsearch:
16+
deploy:
17+
resources:
18+
limits:
19+
cpus: "${ZAMMAD_ELASTICSEARCH_RESOURCES_LIMITS_CPUS:-1.0}"
20+
memory: "${ZAMMAD_ELASTICSEARCH_RESOURCES_LIMITS_MEMORY:-1G}"
21+
zammad-init:
22+
deploy:
23+
resources:
24+
limits:
25+
cpus: "${ZAMMAD_INIT_RESOURCES_LIMITS_CPUS:-1.0}"
26+
memory: "${ZAMMAD_INIT_RESOURCES_LIMITS_MEMORY:-500M}"
27+
zammad-memcached:
28+
deploy:
29+
resources:
30+
limits:
31+
cpus: "${ZAMMAD_MEMCACHED_RESOURCES_LIMITS_CPUS:-1.0}"
32+
memory: "${ZAMMAD_MEMCACHED_RESOURCES_LIMITS_MEMORY:-500M}"
33+
zammad-nginx:
34+
deploy:
35+
resources:
36+
limits:
37+
cpus: "${ZAMMAD_NGINX_RESOURCES_LIMITS_CPUS:-1.0}"
38+
memory: "${ZAMMAD_NGINX_RESOURCES_LIMITS_MEMORY:-500M}"
39+
zammad-postgresql:
40+
deploy:
41+
resources:
42+
limits:
43+
cpus: "${ZAMMAD_POSTGRESQL_RESOURCES_LIMITS_CPUS:-1.0}"
44+
memory: "${ZAMMAD_POSTGRESQL_RESOURCES_LIMITS_MEMORY:-500M}"
45+
zammad-railsserver:
46+
deploy:
47+
resources:
48+
limits:
49+
cpus: "${ZAMMAD_RAILSSERVER_RESOURCES_LIMITS_CPUS:-1.0}"
50+
memory: "${ZAMMAD_RAILSSERVER_RESOURCES_LIMITS_MEMORY:-500M}"
51+
zammad-redis:
52+
deploy:
53+
resources:
54+
limits:
55+
cpus: "${ZAMMAD_REDIS_RESOURCES_LIMITS_CPUS:-1.0}"
56+
memory: "${ZAMMAD_REDIS_RESOURCES_LIMITS_MEMORY:-500M}"
57+
zammad-scheduler:
58+
deploy:
59+
resources:
60+
limits:
61+
cpus: "${ZAMMAD_SCHEDULER_RESOURCES_LIMITS_CPUS:-1.0}"
62+
memory: "${ZAMMAD_SCHEDULER_RESOURCES_LIMITS_MEMORY:-500M}"
63+
zammad-websocket:
64+
deploy:
65+
resources:
66+
limits:
67+
cpus: "${ZAMMAD_WEBSOCKET_RESOURCES_LIMITS_CPUS:-1.0}"
68+
memory: "${ZAMMAD_WEBSOCKET_RESOURCES_LIMITS_MEMORY:-500M}"

0 commit comments

Comments
 (0)