diff --git a/apps/processing/aero/kustomization.yaml b/apps/processing/aero/kustomization.yaml index dcb17fd..fe4c717 100644 --- a/apps/processing/aero/kustomization.yaml +++ b/apps/processing/aero/kustomization.yaml @@ -19,17 +19,12 @@ patches: name: engine namespace: processing - # frontend удалён: адреса бэкендов зашиты в образ на этапе сборки через - # __BUILD_ENV__, и ни один из готовых профилей не смотрит на домен контура. - # Подключать его имеет смысл только вместе с пересборкой образа под aero. - - target: {kind: HelmRelease, name: frontend} - patch: | - $patch: delete - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - metadata: - name: frontend - namespace: processing + # frontend идёт из base без патчей. Адреса бэкендов вшиты в бандл на этапе + # сборки (константа __BUILD_ENV__), но сборка ugok2 обращается к тому же + # origin относительными путями — иначе в остальных кластерах не понадобился + # бы отдельный маршрут /workflows/api/ перед /workflows/. Поэтому фронтенд + # публикуется на домене платформы, а не на своём поддомене: маршруты в + # infrastructure/istio-config/aero, VirtualService platform. # --- workflows-api ---------------------------------------------------------- - target: {kind: HelmRelease, name: workflows-api} diff --git a/infrastructure/istio-config/aero/istio-config.yaml b/infrastructure/istio-config/aero/istio-config.yaml index f435aa0..94215d5 100644 --- a/infrastructure/istio-config/aero/istio-config.yaml +++ b/infrastructure/istio-config/aero/istio-config.yaml @@ -111,6 +111,29 @@ spec: prefix: /media/ service: s3-proxy-svc.django.svc.cluster.local port: 80 + # Микрофронтенд workflows и его API. Порядок внутри пары + # значим: /workflows/api/ обязан идти перед /workflows/, иначе + # запросы к API уйдут в раздачу статики. + # + # Оба маршрута висят на домене платформы, а не на отдельном + # поддомене, потому что адреса бэкендов вшиты в JS-бандл на + # этапе сборки (константа __BUILD_ENV__) и указывают на тот же + # origin относительными путями. Отдельный поддомен означал бы + # пересборку образа. + # + # Маршруты живут в ЭТОМ VirtualService, а не в своём: Istio не + # сливает несколько VirtualService, привязанных к одной паре + # хост+gateway, — часть правил молча потерялась бы. + - 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