30 lines
No EOL
758 B
Django/Jinja
30 lines
No EOL
758 B
Django/Jinja
{% if use_static_services | default(false) %}
|
|
http:
|
|
routers:
|
|
{% for service in all_services %}
|
|
{{ service.name }}:
|
|
rule: "Host(`{{ service.domain }}`)"
|
|
service: {{ service.name }}-service
|
|
entryPoints:
|
|
{% if use_ssl | default(false) %}
|
|
- websecure
|
|
tls:
|
|
certResolver: letsencrypt
|
|
{% else %}
|
|
- web
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
services:
|
|
{% for service in all_services %}
|
|
{{ service.name }}-service:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "{{ service.upstream_protocol }}://{{ service.backend_host }}:{{ service.port }}"
|
|
{% if service.health_check is defined %}
|
|
healthCheck:
|
|
path: "{{ service.health_check }}"
|
|
interval: "30s"
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %} |