diff --git a/infrastructure/istio-config/aero/istio-config.yaml b/infrastructure/istio-config/aero/istio-config.yaml index fce92a4..a507ea5 100644 --- a/infrastructure/istio-config/aero/istio-config.yaml +++ b/infrastructure/istio-config/aero/istio-config.yaml @@ -111,29 +111,28 @@ spec: prefix: /media/ service: s3-proxy-svc.django.svc.cluster.local port: 80 - # Микрофронтенд workflows и его API. Порядок внутри пары - # значим: /workflows/api/ обязан идти перед /workflows/, иначе - # запросы к API уйдут в раздачу статики. + # API микрофронтенда workflows. Висит на домене платформы, а + # не на отдельном поддомене: адреса вшиты в JS-бандл на этапе + # сборки и указывают на тот же origin относительными путями. # - # Оба маршрута висят на домене платформы, а не на отдельном - # поддомене, потому что адреса бэкендов вшиты в JS-бандл на - # этапе сборки (константа __BUILD_ENV__) и указывают на тот же - # origin относительными путями. Отдельный поддомен означал бы - # пересборку образа. - # - # Маршруты живут в ЭТОМ VirtualService, а не в своём: Istio не + # Маршрут живёт в ЭТОМ VirtualService, а не в своём: Istio не # сливает несколько VirtualService, привязанных к одной паре # хост+gateway, — часть правил молча потерялась бы. + # + # ЗДЕСЬ НЕТ МАРШРУТА /workflows/ НА frontend-svc.processing, и + # это осознанно. Такой маршрут был и ломал навигацию: адрес + # вида /workflows/ — это путь ВНУТРИ SPA платформы, + # который должен отдать её index.html, а istio уводил его в + # nginx микрофронтенда, где такого файла нет: + # 404 Not Found — nginx/1.19.6 + # Статика микрофронтенда при этом доезжает и без него: nginx + # платформы сам проксирует /workflows/*.js в processing + # (apps/django/aero/nginx-configmap.yaml). Проверено — 200. - path: prefix: /workflows/api/ rewrite: /api/ service: backend-svc.processing.svc.cluster.local port: 80 - - path: - prefix: /workflows/ - rewrite: / - service: frontend-svc.processing.svc.cluster.local - port: 80 - path: prefix: /api/ service: backend-svc.django.svc.cluster.local