mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
145 lines
7.6 KiB
Django/Jinja
145 lines
7.6 KiB
Django/Jinja
{% include 'roles/sys-svc-compose/templates/base.yml.j2' %}
|
|
|
|
{% if DEPLOYMENT_MODE == 'compose' %}
|
|
{% set service_name = ZAMMAD_PRECHECK_SERVICE %}
|
|
{% set docker_restart_policy = 'no' %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'zammad') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_PRECHECK_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command: ["{{ ZAMMAD_SEARCH_PRECHECK_TARGET }}", "{{ ZAMMAD_SEARCH_READY_SECONDS }}", "{{ ZAMMAD_SEARCH_POLL_SECONDS }}", "{{ ZAMMAD_SEARCH_ALLOCATION_TIMEOUT_SECONDS }}", "true"]
|
|
{{ lookup('depends_on', {ZAMMAD_SEARCH_SERVICE: 'service_started'}, indent=4) }}
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% endif %}
|
|
{% set service_name = ZAMMAD_INIT_SERVICE %}
|
|
{% set docker_restart_policy = 'on-failure' %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'zammad') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_INIT_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command: ["{{ ZAMMAD_SEARCH_PRECHECK_TARGET }}", "{{ ZAMMAD_SEARCH_READY_SECONDS }}", "{{ ZAMMAD_SEARCH_POLL_SECONDS }}", "{{ ZAMMAD_SEARCH_ALLOCATION_TIMEOUT_SECONDS }}", "/opt/zammad/bin/docker-entrypoint", "zammad-init"]
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_depends_on', application_id, extra=({
|
|
ZAMMAD_PRECHECK_SERVICE: {'condition': 'service_completed_successfully'},
|
|
} if DEPLOYMENT_MODE == 'compose' else {})) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% set service_name = ZAMMAD_RAILS_SERVICE %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'zammad') }}
|
|
{{ lookup('container_healthcheck', service_name) | indent(4) }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_RAILS_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command: ["zammad-railsserver"]
|
|
{{ lookup('depends_on', {ZAMMAD_INIT_SERVICE: 'service_completed_successfully'}, indent=4) }}
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% set service_name = ZAMMAD_WEBSOCKET_SERVICE %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'zammad') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_WEBSOCKET_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command: ["zammad-websocket"]
|
|
{{ lookup('depends_on', {ZAMMAD_RAILS_SERVICE: 'service_started'}, indent=4) }}
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% set service_name = ZAMMAD_SCHEDULER_SERVICE %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'zammad') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_SCHEDULER_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command: ["zammad-scheduler"]
|
|
{{ lookup('depends_on', {ZAMMAD_RAILS_SERVICE: 'service_started'}, indent=4) }}
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% set service_name = ZAMMAD_SEARCH_SERVICE %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'search') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_SEARCH_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
environment:
|
|
- discovery.type=single-node
|
|
- xpack.security.enabled=false
|
|
- ES_JAVA_OPTS=-Xms{{ ZAMMAD_SEARCH_HEAP_MB }}m -Xmx{{ ZAMMAD_SEARCH_HEAP_MB }}m
|
|
- path.data={{ ZAMMAD_SEARCH_DATA_DIR }}
|
|
- cluster.routing.allocation.disk.watermark.low={{ ZAMMAD_SEARCH_WATERMARK.low }}
|
|
- cluster.routing.allocation.disk.watermark.high={{ ZAMMAD_SEARCH_WATERMARK.high }}
|
|
- cluster.routing.allocation.disk.watermark.flood_stage={{ ZAMMAD_SEARCH_WATERMARK.flood_stage }}
|
|
- cluster.routing.allocation.disk.watermark.low.max_headroom={{ ZAMMAD_SEARCH_WATERMARK.max_headroom.low }}
|
|
- cluster.routing.allocation.disk.watermark.high.max_headroom={{ ZAMMAD_SEARCH_WATERMARK.max_headroom.high }}
|
|
- cluster.routing.allocation.disk.watermark.flood_stage.max_headroom={{ ZAMMAD_SEARCH_WATERMARK.max_headroom.flood_stage }}
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% if not (lookup('engine', 'memcached', application_id, 'shared') | bool) %}
|
|
{% set service_name = ZAMMAD_MEMCACHED_SERVICE %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', 'svc-db-memcached', 'memcached') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_MEMCACHED_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command: ["memcached", "-m", "{{ lookup('service_memory_mb', application_id, service_name, 0.125) }}"]
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
{% endif %}
|
|
|
|
{% set service_name = ZAMMAD_NGINX_SERVICE %}
|
|
{{ service_name }}:
|
|
{{ lookup('container_image', application_id, 'zammad') }}
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_NGINX_CONTAINER) }}
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
cp /docker-entrypoint.sh /tmp/entrypoint-patched.sh
|
|
sed -i 's|grep "nameserver" < /etc/resolv.conf|grep -E "^nameserver" /etc/resolv.conf|' /tmp/entrypoint-patched.sh
|
|
exec /tmp/entrypoint-patched.sh zammad-nginx
|
|
{{ lookup('depends_on', {ZAMMAD_RAILS_SERVICE: 'service_started', ZAMMAD_WEBSOCKET_SERVICE: 'service_started'}, indent=4) }}
|
|
{{ lookup('container_ports', ['zammad', 'http', DOCKER_BIND_HOST]) | indent(4) }}
|
|
{{ lookup('container_volumes', service_name) | indent(4) }}
|
|
{{ lookup('container_extra_hosts') | indent(4) }}
|
|
{{ lookup('container_networks') | indent(4) }}
|
|
|
|
{% if ZAMMAD_MCP_ENABLED | bool %}
|
|
{% set service_name = ZAMMAD_MCP_SERVICE_KEY %}
|
|
{{ service_name }}:
|
|
{% include 'roles/sys-svc-container/templates/base.yml.j2' %}
|
|
{{ lookup('container_image', application_id, 'zammadmcp') }}
|
|
build:
|
|
context: {{ ZAMMAD_MCP_INSTANCE_DIR }}
|
|
dockerfile: Dockerfile
|
|
args:
|
|
MCP_ADAPTER_BASE_IMAGE: {{ lookup('config', application_id, 'services.zammadmcp.image') }}
|
|
MCP_ADAPTER_BASE_VERSION: "{{ lookup('config', application_id, 'services.zammadmcp.version') }}"
|
|
{{ lookup('compose_only', 'container_name', ZAMMAD_MCP_CONTAINER) }}
|
|
read_only: true
|
|
cap_drop:
|
|
- ALL
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
environment:
|
|
ADAPTER_CONTRACT: {{ ZAMMAD_MCP_CONTRACT | to_json | to_json | replace('$', '$$') }}
|
|
ADAPTER_BEARER: {{ ZAMMAD_MCP_BEARER | to_json }}
|
|
ADAPTER_PORT: "{{ ZAMMAD_MCP_PORT }}"
|
|
ADAPTER_UPSTREAM_KEY: {{ ZAMMAD_MCP_UPSTREAM_KEY | to_json }}
|
|
ADAPTER_UPSTREAM_AUTH_HEADER: {{ ZAMMAD_MCP_UPSTREAM_AUTH_HEADER | to_json }}
|
|
ADAPTER_UPSTREAM_AUTH_FORMAT: {{ ZAMMAD_MCP_UPSTREAM_AUTH_FORMAT | to_json }}
|
|
expose:
|
|
- "{{ ZAMMAD_MCP_PORT }}"
|
|
{{ lookup('container_networks', own_network_only=True, provider_self_alias=False) | indent(4) }}
|
|
{% endif %}
|
|
|
|
{{ lookup('compose_volumes') }}
|
|
{{ lookup('compose_networks') }}
|