From aea6cb498f2db58432b295b0da87d266ee027ca3 Mon Sep 17 00:00:00 2001 From: Dobli <61doal1mst@hft-stuttgart.de> Date: Mon, 28 Jan 2019 16:22:21 +0100 Subject: [PATCH] added lables for subdomains --- building_manager.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/building_manager.py b/building_manager.py index b7a9adc..f93a014 100755 --- a/building_manager.py +++ b/building_manager.py @@ -149,6 +149,8 @@ def add_nodered_service(base_dir, hostname): template['deploy']['labels'].append(f'backup={hostname}') template['deploy']['labels'].extend( generate_traefik_path_labels(service_name, segment='main')) + template['deploy']['labels'].extend( + generate_traefik_subdomain_labels(service_name, segment='sub')) add_or_update_compose_service(compose_path, service_name, template) @@ -209,6 +211,25 @@ def generate_traefik_host_labels(hostname, segment=None, priority=1): return label_list +def generate_traefik_subdomain_labels(subdomain, segment=None, priority=2): + """Generates a traefik subdomain with necessary redirects + + :subdomain: subdomain that will be assigned to a service + :segment: Optional traefik segment when using multiple rules + :priority: Priority of frontend rule + :returns: list of labels for traefik + """ + label_list = [] + # check segment + segment = f'.{segment}' if segment is not None else '' + # fill list + label_list.append( + f'traefik{segment}.frontend.rule=' + f'HostRegexp:{subdomain}.{{domain:[a-zA-z0-9-]+}}') + label_list.append(f'traefik{segment}.frontend.priority={priority}') + return label_list + + def generate_traefik_path_labels(url_path, segment=None, priority=2): """Generates a traefik path url with necessary redirects -- GitLab