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): ...@@ -91,7 +91,7 @@ class DeploySpeciesStack(speciesData.SpeciesData):
logging.info("Directory tree generated for %s" % self.full_name) 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 Create a formatted copy of the template compose file inside a species directory tree
...@@ -118,15 +118,6 @@ class DeploySpeciesStack(speciesData.SpeciesData): ...@@ -118,15 +118,6 @@ class DeploySpeciesStack(speciesData.SpeciesData):
# Merge the two dicts # Merge the two dicts
render_vars = {**self.config, **input_vars} 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 # Render the gspecies docker-compose file and write it
gspecies_compose_template = env.get_template("gspecies_compose_template.yml.j2") gspecies_compose_template = env.get_template("gspecies_compose_template.yml.j2")
gspecies_compose_output = gspecies_compose_template.render(render_vars) gspecies_compose_output = gspecies_compose_template.render(render_vars)
...@@ -176,7 +167,7 @@ def make_dirs(dir_paths_li): ...@@ -176,7 +167,7 @@ def make_dirs(dir_paths_li):
return created_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 Create or update the traefik directory, docker-compose file and authelia conf files
Only called when the argument "--traefik" is specified Only called when the argument "--traefik" is specified
...@@ -189,15 +180,6 @@ def make_traefik_compose_files(config, main_dir, entrypoint_mode): ...@@ -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])) script_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
render_vars = config 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) os.chdir(main_dir)
# Create directory tree # Create directory tree
...@@ -366,14 +348,6 @@ if __name__ == "__main__": ...@@ -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)", help="Initialize/wverwrite traefik directory all docker-compose and conf files in the traefik and authelia directories (default=False)",
action="store_true") 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() args = parser.parse_args()
if args.verbose: if args.verbose:
...@@ -398,13 +372,8 @@ if __name__ == "__main__": ...@@ -398,13 +372,8 @@ if __name__ == "__main__":
# Create traefik directory and compose files if specified # Create traefik directory and compose files if specified
if args.traefik: if args.traefik:
config = utilities.parse_config(args.config) config = utilities.parse_config(args.config)
if args.https: make_traefik_compose_files(config=config, main_dir=main_dir)
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()
logging.info("Deploying stacks for organisms in input file %s" % args.input) logging.info("Deploying stacks for organisms in input file %s" % args.input)
for sp_dict in sp_dict_list: for sp_dict in sp_dict_list:
...@@ -442,13 +411,7 @@ if __name__ == "__main__": ...@@ -442,13 +411,7 @@ if __name__ == "__main__":
logging.info("Successfully generated the directory tree for %s" % deploy_stack_for_current_organism.full_name) logging.info("Successfully generated the directory tree for %s" % deploy_stack_for_current_organism.full_name)
# Make compose files # Make compose files
if args.https: deploy_stack_for_current_organism.make_compose_files()
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()
logging.info("Successfully generated the docker-compose files for %s" % deploy_stack_for_current_organism.full_name) logging.info("Successfully generated the docker-compose files for %s" % deploy_stack_for_current_organism.full_name)
logging.info("Deploying stacks") logging.info("Deploying stacks")
......
...@@ -14,11 +14,15 @@ services: ...@@ -14,11 +14,15 @@ services:
deploy: deploy:
labels: labels:
# Download page # Download page
- "traefik.http.routers.{{ genus_species }}-nginx.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/download`))" - "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
# - "traefik.http.routers.{{ genus_species }}-nginx.tls=true" {% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-nginx.entryPoints={{ entrypoint }}" # lg - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
# - "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-auth,sp-app-trailslash,sp-prefix" - "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 - "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-app-trailslash,sp-prefix" # lg
{% endif %}
- "traefik.http.services.{{ genus_species }}-nginx.loadbalancer.server.port=80" - "traefik.http.services.{{ genus_species }}-nginx.loadbalancer.server.port=80"
restart_policy: restart_policy:
condition: on-failure condition: on-failure
...@@ -67,11 +71,15 @@ services: ...@@ -67,11 +71,15 @@ services:
- {{ genus_species }} - {{ genus_species }}
deploy: deploy:
labels: labels:
- "traefik.http.routers.{{ genus_species }}-tripal.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}`))" - "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
# - "traefik.http.routers.{{ genus_species }}-tripal.tls=true" {% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-tripal.entryPoints={{ entrypoint }}" # lg - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
# - "traefik.http.routers.{{ genus_species }}-tripal.middlewares=sp-auth,sp-trailslash,sp-prefix,tripal-addprefix" - "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 - "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" - "traefik.http.services.{{ genus_species }}-tripal.loadbalancer.server.port=80"
restart_policy: restart_policy:
condition: on-failure condition: on-failure
...@@ -155,10 +163,14 @@ services: ...@@ -155,10 +163,14 @@ services:
deploy: deploy:
labels: labels:
- "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))" - "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
# - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true" {% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints={{ entrypoint }}" - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
# - "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix" - "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 - "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.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.rule=(Host(`localhost`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
- "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.entryPoints=web" - "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.entryPoints=web"
...@@ -181,11 +193,15 @@ services: ...@@ -181,11 +193,15 @@ services:
- {{ genus_species }} - {{ genus_species }}
deploy: deploy:
labels: labels:
- "traefik.http.routers.{{ genus_species }}-jbrowse.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/jbrowse`))" - "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
# - "traefik.http.routers.{{ genus_species }}-jbrowse.tls=true" {% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-jbrowse.entryPoints={{ entrypoint }}" # lg - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
# - "traefik.http.routers.{{ genus_species }}-jbrowse.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix" - "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 - "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" - "traefik.http.services.{{ genus_species }}-jbrowse.loadbalancer.server.port=80"
restart_policy: restart_policy:
condition: on-failure condition: on-failure
...@@ -236,11 +252,15 @@ services: ...@@ -236,11 +252,15 @@ services:
- {{ genus_species }} - {{ genus_species }}
deploy: deploy:
labels: labels:
- "traefik.http.routers.{{ genus_species }}-blast.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/blast`))" - "traefik.http.routers.{{ genus_species }}-galaxy.rule=(Host(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
# - "traefik.http.routers.{{ genus_species }}-blast.tls=true" {% if https_port is defined %}
- "traefik.http.routers.{{ genus_species }}-blast.entryPoints={{ entrypoint }}" # lg - "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
# - "traefik.http.routers.{{ genus_species }}-blast.middlewares=sp-big-req,sp-auth,sp-app-trailslash,sp-app-prefix" - "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 - "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" - "traefik.http.services.{{ genus_species }}-blast.loadbalancer.server.port=80"
restart_policy: restart_policy:
condition: on-failure condition: on-failure
......
...@@ -15,9 +15,13 @@ services: ...@@ -15,9 +15,13 @@ services:
- "--entryPoints.webs.address=:443" - "--entryPoints.webs.address=:443"
- "--entryPoints.webs.forwardedHeaders.trustedIPs={{ proxy_ip }}" # The ips of our upstream proxies: eci - "--entryPoints.webs.forwardedHeaders.trustedIPs={{ proxy_ip }}" # The ips of our upstream proxies: eci
ports: ports:
{% if dashboard_port is defined %}
- {{ dashboard_port }}:8080 # added by lg to debug, for dashboard - {{ dashboard_port }}:8080 # added by lg to debug, for dashboard
{% endif %}
- {{ http_port }}:80 - {{ http_port }}:80
{% if if https_port is defined %}
- {{ https_port }}:443 - {{ https_port }}:443
{% endif %}
networks: networks:
- traefikbig - traefikbig
volumes: volumes:
...@@ -29,9 +33,12 @@ services: ...@@ -29,9 +33,12 @@ services:
labels: labels:
# - "traefik.http.routers.traefik-api.rule=PathPrefix(`/traefik`)" # - "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.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`) || PathPrefix(`/traefik`)" # lg
# - "traefik.http.routers.traefik-api.tls=true" {% if https_port is defined %}
- "traefik.http.routers.traefik-api.entryPoints=web" # lg - "traefik.http.routers.traefik-api.tls=true"
# - "traefik.http.routers.traefik-api.entryPoints=webs" - "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.routers.traefik-api.service=api@internal"
- "traefik.http.middlewares.traefik-strip.stripprefix.prefixes=/traefik" - "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/" - "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: ...@@ -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.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.trustForwardHeader=true"
- "traefik.http.middlewares.sp-auth.forwardauth.authResponseHeaders=Remote-User,Remote-Groups" - "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 - "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.replacement=$${1}/"
- "traefik.http.middlewares.sp-trailslash.redirectregex.permanent=true" - "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 - "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.replacement=$${1}/"
- "traefik.http.middlewares.sp-app-trailslash.redirectregex.permanent=true" - "traefik.http.middlewares.sp-app-trailslash.redirectregex.permanent=true"
- "traefik.http.middlewares.sp-prefix.stripprefixregex.regex=/sp/[^/]+" - "traefik.http.middlewares.sp-prefix.stripprefixregex.regex=/sp/[^/]+"
...@@ -74,7 +87,7 @@ services: ...@@ -74,7 +87,7 @@ services:
- ./authelia/:/etc/authelia/:ro - ./authelia/:/etc/authelia/:ro
deploy: deploy:
labels: 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" - "traefik.http.services.authelia.loadbalancer.server.port=9091"
restart_policy: restart_policy:
condition: on-failure 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