service-labels-v1.j2 1.6 KB

123456789101112131415161718192021222324252627282930313233
  1. {#
  2. Archetype: service-labels-traefik-middleware-v1
  3. Description:
  4. Traefik labels with middleware support for authentication, headers, etc.
  5. Approach:
  6. - Extends HTTPS configuration with middleware assignment
  7. - Middlewares applied to both HTTP and HTTPS routers
  8. - Supports chaining multiple middlewares (comma-separated)
  9. Usage:
  10. Use when you need authentication, rate limiting, headers, or other
  11. Traefik middleware features. Define middlewares in Traefik config or labels.
  12. #}
  13. {% if traefik_enabled %}
  14. labels:
  15. - traefik.enable=true
  16. - traefik.docker.network={{ traefik_network }}
  17. - traefik.http.services.{{ service_name }}-web.loadBalancer.server.port={{ service_port }}
  18. - traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
  19. - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}`)
  20. - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
  21. - traefik.http.routers.{{ service_name }}-http.middlewares={{ traefik_middleware }}
  22. {% if traefik_tls_enabled %}
  23. - traefik.http.routers.{{ service_name }}-https.service={{ service_name }}-web
  24. - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}`)
  25. - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
  26. - traefik.http.routers.{{ service_name }}-https.tls=true
  27. - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  28. - traefik.http.routers.{{ service_name }}-https.middlewares={{ traefik_middleware }}
  29. {% endif %}
  30. {% endif %}