diff --git a/ansible/roles/showroom/defaults/main.yml b/ansible/roles/showroom/defaults/main.yml index 1a89029d027..b3bd53f1491 100644 --- a/ansible/roles/showroom/defaults/main.yml +++ b/ansible/roles/showroom/defaults/main.yml @@ -137,3 +137,6 @@ showroom_pip_packages: showroom_work_dirs: - "{{ showroom_user_home_dir }}/content" # The showroom repo itself, asciidoc source e.g. Antora - "{{ showroom_user_home_dir }}/orchestration" # compose, kube files etc + +# Add a random path to the showroom endpoint ie. https://guid.sandbox1234.showroom.com/this-should-be-random/showroom +showroom_random_path: this-should-be-random diff --git a/ansible/roles/showroom/tasks/60-showroom-verify.yml b/ansible/roles/showroom/tasks/60-showroom-verify.yml index 71d3431b626..d1f142afada 100644 --- a/ansible/roles/showroom/tasks/60-showroom-verify.yml +++ b/ansible/roles/showroom/tasks/60-showroom-verify.yml @@ -6,7 +6,7 @@ - name: Capture lab_ui_url as fact ansible.builtin.set_fact: f_lab_ui_url: - "https://{{ showroom_host }}:{{ showroom_primary_port }}/{{ showroom_primary_path }}" + "https://{{ showroom_host }}:{{ showroom_primary_port }}/{{ showroom_random_path }}/{{ showroom_primary_path }}" - name: Output showroom view(s) URLs as userinfo and userdata agnosticd_user_info: diff --git a/ansible/roles/showroom/tasks/main.yml b/ansible/roles/showroom/tasks/main.yml index 50bce9293dc..405161e60e5 100644 --- a/ansible/roles/showroom/tasks/main.yml +++ b/ansible/roles/showroom/tasks/main.yml @@ -4,6 +4,11 @@ when: showroom_deploy | default(true) | bool block: + - name: Generate random showroom path if not provided + when: showroom_random_path is not defined or showroom_random_path in ['', 'this-should-be-random'] + ansible.builtin.set_fact: + showroom_random_path: "{{ lookup('password', '/dev/null', 'length=12', 'chars=ascii_letters,digits') | lower }}" + - name: Setup OS dependencies, packages ansible.builtin.include_tasks: file: 10-showroom-dependencies.yml diff --git a/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 b/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 index 8f84636e355..3359d28b5f0 100644 --- a/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 +++ b/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 @@ -32,6 +32,6 @@ showroom: - "traefik.http.services.showroom.loadbalancer.server.port=80" - "traefik.http.routers.entrypoints=showroomsecure" - "traefik.http.routers.showroom.tls.certresolver=le" - - "traefik.http.routers.showroom.rule=Host(`{{ showroom_host }}`) && PathPrefix(`/showroom`)" + - "traefik.http.routers.showroom.rule=Host(`{{ showroom_host }}`) && PathPrefix(`/{{ showroom_random_path }}/showroom`)" - "traefik.http.routers.showroom.middlewares=showroom-stripprefix" - - "traefik.http.middlewares.showroom-stripprefix.stripprefix.prefixes=/showroom" + - "traefik.http.middlewares.showroom-stripprefix.stripprefix.prefixes=/{{ showroom_random_path }}/showroom" diff --git a/ansible/roles/showroom/templates/service_codeserver/service_codeserver.j2 b/ansible/roles/showroom/templates/service_codeserver/service_codeserver.j2 index 95ea6259f6c..6a42e1b0398 100644 --- a/ansible/roles/showroom/templates/service_codeserver/service_codeserver.j2 +++ b/ansible/roles/showroom/templates/service_codeserver/service_codeserver.j2 @@ -17,6 +17,6 @@ codeserver: - "traefik.enable=true" - "traefik.http.services.vscode.loadbalancer.server.port=8080" - "traefik.http.routers.vscode.tls.certresolver=le" - - "traefik.http.routers.vscode.rule=Host(`{{ showroom_host }}`) && PathPrefix(`/codeserver`)" + - "traefik.http.routers.vscode.rule=Host(`{{ showroom_host }}`) && PathPrefix(`/{{ showroom_random_path }}/codeserver`)" - "traefik.http.routers.vscode.middlewares=vscode-stripprefix" - - "traefik.http.middlewares.vscode-stripprefix.stripprefix.prefixes=/codeserver" + - "traefik.http.middlewares.vscode-stripprefix.stripprefix.prefixes=/{{ showroom_random_path }}/codeserver" diff --git a/ansible/roles/showroom/templates/service_codeserver/tab_codeserver.j2 b/ansible/roles/showroom/templates/service_codeserver/tab_codeserver.j2 index 7153e8bfec3..69588769e87 100644 --- a/ansible/roles/showroom/templates/service_codeserver/tab_codeserver.j2 +++ b/ansible/roles/showroom/templates/service_codeserver/tab_codeserver.j2 @@ -1,3 +1,3 @@