Skip to content

Commit

Permalink
traefik: add fqdn override option
Browse files Browse the repository at this point in the history
  • Loading branch information
saltydk committed Mar 8, 2025
1 parent 1345b16 commit 5211562
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 4 deletions.
29 changes: 29 additions & 0 deletions filter_plugins/traefik_host_rule.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
def traefik_host_rule(host, host_override, fqdn_override_list):
"""
Ansible filter to generate Traefik host rule.
Args:
host (str): The base host.
host_override (str): The host override.
fqdn_override_list (list): The FQDN override list.
Returns:
str: The generated Traefik host rule.
"""
if host_override:
return f'({host_override})'
elif fqdn_override_list:
formatted_fqdn_overrides = [f"Host(`{fqdn}`)" for fqdn in fqdn_override_list]
fqdn_override_string = " || ".join(formatted_fqdn_overrides)
return f"({fqdn_override_string})"
else:
return f"Host(`{host}`)"

class FilterModule(object):
""" Ansible filter module """

def filters(self):
""" return list of filters """
return {
'traefik_host_rule': traefik_host_rule,
}
7 changes: 3 additions & 4 deletions inventories/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -333,10 +333,9 @@ traefik_host: "{{ traefik_subdomain + '.' + traefik_domain
if (traefik_subdomain | length > 0)
else traefik_domain }}"

traefik_host_override: "{{ lookup('vars', traefik_role_var + '_web_host_override', default=lookup('vars', role_name + '_web_host_override', default='')) | length > 0 }}"
traefik_host_template: "{{ lookup('vars', traefik_role_var + '_web_host_override', default=lookup('vars', role_name + '_web_host_override', default=''))
if traefik_host_override
else 'Host(`' + traefik_host + '`)' }}"
traefik_host_override_lookup: "{{ lookup('vars', traefik_role_var + '_web_host_override', default=lookup('vars', role_name + '_web_host_override', default='')) }}"
traefik_fqdn_override_lookup: "{{ lookup('vars', traefik_role_var + '_web_fqdn_override', default=lookup('vars', role_name + '_web_fqdn_override', default='')) }}"
traefik_host_template: "{{ traefik_host | traefik_host_rule(traefik_host_override_lookup, traefik_fqdn_override_lookup) }}"

traefik_entrypoint_web_default: "{{ 'web' if not (lookup('vars', traefik_role_var + '_traefik_tailscale_enabled', default=false) | bool) else 'tailscale-web' }}"
traefik_entrypoint_web: "{{ lookup('vars', traefik_role_var + '_traefik_entrypoint_web', default=traefik_entrypoint_web_default) }}"
Expand Down

0 comments on commit 5211562

Please # to comment.