diff --git a/awx/main/routing.py b/awx/main/routing.py index bf2c06cfe3..4d61e1a85a 100644 --- a/awx/main/routing.py +++ b/awx/main/routing.py @@ -63,6 +63,10 @@ websocket_urlpatterns = [ re_path(r'api/websocket/$', consumers.EventConsumer.as_asgi()), re_path(r'websocket/$', consumers.EventConsumer.as_asgi()), ] + +if settings.OPTIONAL_API_URLPATTERN_PREFIX: + websocket_urlpatterns.append(re_path(r'api/{}/v2/websocket/$'.format(settings.OPTIONAL_API_URLPATTERN_PREFIX), consumers.EventConsumer.as_asgi())) + websocket_relay_urlpatterns = [ re_path(r'websocket/relay/$', consumers.RelayConsumer.as_asgi()), ] diff --git a/tools/docker-compose/ansible/roles/sources/defaults/main.yml b/tools/docker-compose/ansible/roles/sources/defaults/main.yml index 647aabd5a1..d336f29fc4 100644 --- a/tools/docker-compose/ansible/roles/sources/defaults/main.yml +++ b/tools/docker-compose/ansible/roles/sources/defaults/main.yml @@ -9,6 +9,7 @@ minikube_container_group: false receptor_socket_file: /var/run/awx-receptor/receptor.sock receptor_image: quay.io/ansible/receptor:devel ingress_path: / +api_urlpattern_prefix: '' # Keys for signing work receptor_rsa_bits: 4096 diff --git a/tools/docker-compose/ansible/roles/sources/templates/local_settings.py.j2 b/tools/docker-compose/ansible/roles/sources/templates/local_settings.py.j2 index 43be7b33d8..fe9596a7b0 100644 --- a/tools/docker-compose/ansible/roles/sources/templates/local_settings.py.j2 +++ b/tools/docker-compose/ansible/roles/sources/templates/local_settings.py.j2 @@ -20,6 +20,10 @@ # The UUID of the system, for HA. SYSTEM_UUID = '00000000-0000-0000-0000-000000000000' +{% if api_urlpattern_prefix | length > 0 %} +OPTIONAL_API_URLPATTERN_PREFIX = '{{ api_urlpattern_prefix }}' +{% endif %} + # If set, use -vvv for project updates instead of -v for more output. # PROJECT_UPDATE_VVV=True diff --git a/tools/docker-compose/ansible/roles/sources/templates/nginx.locations.conf.j2 b/tools/docker-compose/ansible/roles/sources/templates/nginx.locations.conf.j2 index 5e79c1bfdd..f302eb0ad3 100644 --- a/tools/docker-compose/ansible/roles/sources/templates/nginx.locations.conf.j2 +++ b/tools/docker-compose/ansible/roles/sources/templates/nginx.locations.conf.j2 @@ -10,7 +10,11 @@ location {{ (ingress_path + '/favicon.ico').replace('//', '/') }} { alias /awx_devel/awx/public/static/favicon.ico; } +{% if api_urlpattern_prefix | length > 0 %} +location ~ ^({{ (ingress_path + '/websocket/').replace('//', '/') }}|{{ (ingress_path + '/api/websocket/').replace('//', '/') }}|{{ (ingress_path + '/api/' + api_urlpattern_prefix + '/v2/websocket/').replace('//', '/') }}) { +{% else %} location ~ ^({{ (ingress_path + '/websocket/').replace('//', '/') }}|{{ (ingress_path + '/api/websocket/').replace('//', '/') }}) { +{% endif %} # Pass request to the upstream alias proxy_pass http://daphne; # Require http version 1.1 to allow for upgrade requests