Skip to content
Snippets Groups Projects
Commit 51fe0090 authored by Arthur Le Bars's avatar Arthur Le Bars
Browse files

web/webs modes in jinja templates

parent c31da771
No related branches found
No related tags found
1 merge request!1Release 1.0
......@@ -91,7 +91,7 @@ class DeploySpeciesStack(speciesData.SpeciesData):
logging.info("Directory tree generated for %s" % self.full_name)
def make_compose_files(self, entrypoint_mode):
def make_compose_files(self):
"""
Create a formatted copy of the template compose file inside a species directory tree
......@@ -118,15 +118,6 @@ class DeploySpeciesStack(speciesData.SpeciesData):
# Merge the two dicts
render_vars = {**self.config, **input_vars}
# Define entrypoint mode (http=web, https=webs)
if entrypoint_mode == "web" or entrypoint_mode == "webs":
entrypoint = {"entrypoint": entrypoint_mode}
else:
logging.critical("Entrypoint mode defined is invalid (%s defined, valid options : ['webs', 'web']")
sys.exit()
# Add entrypoint to render_vars dor templating
render_vars = {**render_vars, **entrypoint}
# Render the gspecies docker-compose file and write it
gspecies_compose_template = env.get_template("gspecies_compose_template.yml.j2")
gspecies_compose_output = gspecies_compose_template.render(render_vars)
......@@ -176,7 +167,7 @@ def make_dirs(dir_paths_li):
return created_dir_paths_li
def make_traefik_compose_files(config, main_dir, entrypoint_mode):
def make_traefik_compose_files(config, main_dir):
"""
Create or update the traefik directory, docker-compose file and authelia conf files
Only called when the argument "--traefik" is specified
......@@ -189,15 +180,6 @@ def make_traefik_compose_files(config, main_dir, entrypoint_mode):
script_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
render_vars = config
# Define entrypoint mode (http=web, https=webs)
if entrypoint_mode == "web" or entrypoint_mode == "webs":
entrypoint = {"entrypoint": entrypoint_mode}
else:
logging.critical("Entrypoint mode defined is invalid (%s defined, valid options : ['webs', 'web']" % entrypoint_mode)
sys.exit()
# Add entrypoint to render_vars dor templating
render_vars = {**render_vars, **entrypoint}
os.chdir(main_dir)
# Create directory tree
......@@ -366,14 +348,6 @@ if __name__ == "__main__":
help="Initialize/wverwrite traefik directory all docker-compose and conf files in the traefik and authelia directories (default=False)",
action="store_true")
parser.add_argument("--http",
help="Use a HTTP authelia configuration",
action="store_true")
parser.add_argument("--https",
help="Use a HTTPS authelia configuration",
action="store_true")
args = parser.parse_args()
if args.verbose:
......@@ -398,13 +372,8 @@ if __name__ == "__main__":
# Create traefik directory and compose files if specified
if args.traefik:
config = utilities.parse_config(args.config)
if args.https:
make_traefik_compose_files(config=config, main_dir=main_dir, entrypoint_mode="webs")
elif args.http:
make_traefik_compose_files(config=config, main_dir=main_dir, entrypoint_mode="web")
else:
logging.critical("Entrypoint mode is not defined (missing http or https argument")
sys.exit()
make_traefik_compose_files(config=config, main_dir=main_dir)
logging.info("Deploying stacks for organisms in input file %s" % args.input)
for sp_dict in sp_dict_list:
......@@ -442,13 +411,7 @@ if __name__ == "__main__":
logging.info("Successfully generated the directory tree for %s" % deploy_stack_for_current_organism.full_name)
# Make compose files
if args.https:
deploy_stack_for_current_organism.make_compose_files(entrypoint_mode="webs")
elif args.http:
deploy_stack_for_current_organism.make_compose_files(entrypoint_mode="web")
else:
logging.critical("Entrypoint mode is not defined (missing http or https argument")
sys.exit()
deploy_stack_for_current_organism.make_compose_files()
logging.info("Successfully generated the docker-compose files for %s" % deploy_stack_for_current_organism.full_name)
logging.info("Deploying stacks")
......
......@@ -14,11 +14,15 @@ services:
deploy:
labels:
# Download page
- "traefik.http.routers.{{ genus_species }}-nginx.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/download`))"
# - "traefik.http.routers.{{ genus_species }}-nginx.tls=true"
- "traefik.http.routers.{{ genus_species }}-nginx.entryPoints={{ entrypoint }}" # lg
# - "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-auth,sp-app-trailslash,sp-prefix"
- "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
{% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-auth,sp-app-trailslash,sp-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-app-trailslash,sp-prefix" # lg
{% endif %}
- "traefik.http.services.{{ genus_species }}-nginx.loadbalancer.server.port=80"
restart_policy:
condition: on-failure
......@@ -67,11 +71,15 @@ services:
- {{ genus_species }}
deploy:
labels:
- "traefik.http.routers.{{ genus_species }}-tripal.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}`))"
# - "traefik.http.routers.{{ genus_species }}-tripal.tls=true"
- "traefik.http.routers.{{ genus_species }}-tripal.entryPoints={{ entrypoint }}" # lg
# - "traefik.http.routers.{{ genus_species }}-tripal.middlewares=sp-auth,sp-trailslash,sp-prefix,tripal-addprefix"
- "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
{% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-tripal.middlewares=sp-auth,sp-trailslash,sp-prefix,tripal-addprefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-tripal.middlewares=sp-trailslash,sp-prefix,tripal-addprefix" # lg
{% endif %}
- "traefik.http.services.{{ genus_species }}-tripal.loadbalancer.server.port=80"
restart_policy:
condition: on-failure
......@@ -155,10 +163,14 @@ services:
deploy:
labels:
- "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
# - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints={{ entrypoint }}"
# - "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
{% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-app-trailslash,sp-app-prefix" #lg
{% endif %}
- "traefik.http.services.{{ genus_species }}-galaxy.loadbalancer.server.port=80"
- "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.rule=(Host(`localhost`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
- "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.entryPoints=web"
......@@ -181,11 +193,15 @@ services:
- {{ genus_species }}
deploy:
labels:
- "traefik.http.routers.{{ genus_species }}-jbrowse.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/jbrowse`))"
# - "traefik.http.routers.{{ genus_species }}-jbrowse.tls=true"
- "traefik.http.routers.{{ genus_species }}-jbrowse.entryPoints={{ entrypoint }}" # lg
# - "traefik.http.routers.{{ genus_species }}-jbrowse.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
- "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
{% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-jbrowse.middlewares=sp-app-trailslash,sp-app-prefix" #lg
{% endif %}
- "traefik.http.services.{{ genus_species }}-jbrowse.loadbalancer.server.port=80"
restart_policy:
condition: on-failure
......@@ -236,11 +252,15 @@ services:
- {{ genus_species }}
deploy:
labels:
- "traefik.http.routers.{{ genus_species }}-blast.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/blast`))"
# - "traefik.http.routers.{{ genus_species }}-blast.tls=true"
- "traefik.http.routers.{{ genus_species }}-blast.entryPoints={{ entrypoint }}" # lg
# - "traefik.http.routers.{{ genus_species }}-blast.middlewares=sp-big-req,sp-auth,sp-app-trailslash,sp-app-prefix"
- "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
{% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-blast.middlewares=sp-big-req,sp-auth,sp-app-trailslash,sp-app-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-blast.middlewares=sp-big-req,sp-app-trailslash,sp-app-prefix" # lg
{% endif %}
- "traefik.http.services.{{ genus_species }}-blast.loadbalancer.server.port=80"
restart_policy:
condition: on-failure
......
......@@ -15,9 +15,13 @@ services:
- "--entryPoints.webs.address=:443"
- "--entryPoints.webs.forwardedHeaders.trustedIPs={{ proxy_ip }}" # The ips of our upstream proxies: eci
ports:
{% if dashboard_port is defined %}
- {{ dashboard_port }}:8080 # added by lg to debug, for dashboard
{% endif %}
- {{ http_port }}:80
{% if if https_port is defined %}
- {{ https_port }}:443
{% endif %}
networks:
- traefikbig
volumes:
......@@ -29,9 +33,12 @@ services:
labels:
# - "traefik.http.routers.traefik-api.rule=PathPrefix(`/traefik`)"
- "traefik.http.routers.traefik-api.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`) || PathPrefix(`/traefik`)" # lg
# - "traefik.http.routers.traefik-api.tls=true"
- "traefik.http.routers.traefik-api.entryPoints=web" # lg
# - "traefik.http.routers.traefik-api.entryPoints=webs"
{% if https_port is defined %}
- "traefik.http.routers.traefik-api.tls=true"
- "traefik.http.routers.traefik-api.entryPoints=webs"
{% else %}
- "traefik.http.routers.traefik-api.entryPoints={{ entrypoint }}" # lg
{% endif %}
- "traefik.http.routers.traefik-api.service=api@internal"
- "traefik.http.middlewares.traefik-strip.stripprefix.prefixes=/traefik"
- "traefik.http.middlewares.traefik-auth.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.abims-gga.sb-roscoff.fr/"
......@@ -44,12 +51,18 @@ services:
- "traefik.http.middlewares.sp-auth.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.abims-gga.sb-roscoff.fr/"
- "traefik.http.middlewares.sp-auth.forwardauth.trustForwardHeader=true"
- "traefik.http.middlewares.sp-auth.forwardauth.authResponseHeaders=Remote-User,Remote-Groups"
# - "traefik.http.middlewares.sp-trailslash.redirectregex.regex=^(https?://[^/]+/sp/[^/]+)$$"
{% if https_port is defined %}
- "traefik.http.middlewares.sp-trailslash.redirectregex.regex=^(https?://[^/]+/sp/[^/]+)$$"
{% else %}
- "traefik.http.middlewares.sp-trailslash.redirectregex.regex=^(http?://[^/]+/sp/[^/]+)$$" # lg
{% endif %}
- "traefik.http.middlewares.sp-trailslash.redirectregex.replacement=$${1}/"
- "traefik.http.middlewares.sp-trailslash.redirectregex.permanent=true"
# - "traefik.http.middlewares.sp-app-trailslash.redirectregex.regex=^(https?://[^/]+/sp/[^/]+/[^/]+)$$"
{% if https_port is defined %}
- "traefik.http.middlewares.sp-app-trailslash.redirectregex.regex=^(https?://[^/]+/sp/[^/]+/[^/]+)$$"
{% else %}
- "traefik.http.middlewares.sp-app-trailslash.redirectregex.regex=^(http?://[^/]+/sp/[^/]+/[^/]+)$$" # lg
{% endif %}
- "traefik.http.middlewares.sp-app-trailslash.redirectregex.replacement=$${1}/"
- "traefik.http.middlewares.sp-app-trailslash.redirectregex.permanent=true"
- "traefik.http.middlewares.sp-prefix.stripprefixregex.regex=/sp/[^/]+"
......@@ -74,7 +87,7 @@ services:
- ./authelia/:/etc/authelia/:ro
deploy:
labels:
- "traefik.http.routers.authelia.rule=Host(`auth.example.org`)"
- "traefik.http.routers.authelia.rule=Host(`{{ auth_hostname }}`)"
- "traefik.http.services.authelia.loadbalancer.server.port=9091"
restart_policy:
condition: on-failure
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment