swarm-v1.j2 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ---
  2. services:
  3. {{ service_name }}:
  4. image: {{ test_image }}
  5. {% if swarm_enabled %}
  6. deploy:
  7. mode: {{ swarm_placement_mode }}
  8. {% if swarm_placement_mode == 'replicated' %}
  9. replicas: {{ swarm_replicas }}
  10. {% endif %}
  11. {% if swarm_placement_host %}
  12. placement:
  13. constraints:
  14. - node.hostname == {{ swarm_placement_host }}
  15. {% endif %}
  16. {% if traefik_enabled %}
  17. labels:
  18. - traefik.enable=true
  19. - traefik.http.services.{{ service_name }}-web.loadBalancer.server.port={{ test_port }}
  20. - traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
  21. - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}`)
  22. - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
  23. {% if traefik_tls_enabled %}
  24. - traefik.http.routers.{{ service_name }}-https.service={{ service_name }}-web
  25. - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}`)
  26. - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
  27. - traefik.http.routers.{{ service_name }}-https.tls=true
  28. - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  29. {% endif %}
  30. {% endif %}
  31. update_config:
  32. parallelism: 1
  33. delay: 10s
  34. restart_policy:
  35. condition: on-failure
  36. {% else %}
  37. {% if traefik_enabled %}
  38. labels:
  39. - traefik.enable=true
  40. - traefik.http.services.{{ service_name }}-web.loadBalancer.server.port={{ test_port }}
  41. - traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
  42. - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}`)
  43. - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
  44. {% if traefik_tls_enabled %}
  45. - traefik.http.routers.{{ service_name }}-https.service={{ service_name }}-web
  46. - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}`)
  47. - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
  48. - traefik.http.routers.{{ service_name }}-https.tls=true
  49. - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  50. {% endif %}
  51. {% endif %}
  52. restart: {{ restart_policy }}
  53. {% endif %}
  54. networks:
  55. {% if traefik_enabled %}
  56. - {{ traefik_network }}
  57. {% endif %}
  58. - {{ network_name }}
  59. {% if swarm_enabled %}
  60. networks:
  61. {% if traefik_enabled %}
  62. {{ traefik_network }}:
  63. external: true
  64. {% endif %}
  65. {{ network_name }}:
  66. driver: overlay
  67. attachable: true
  68. {% else %}
  69. networks:
  70. {% if traefik_enabled %}
  71. {{ traefik_network }}:
  72. external: true
  73. {% endif %}
  74. {{ network_name }}:
  75. driver: bridge
  76. {% endif %}