Processing: фронтенд включён, api и фронтенд выведены наружу
Фронтенд был исключён из-за адресов, вшитых в бандл на этапе сборки через константу __BUILD_ENV__. Опасение не подтвердилось: сборка обращается к тому же origin относительными путями — иначе в yc-k8s-test и d8-ugmk-prod не понадобился бы отдельный маршрут /workflows/api/ перед /workflows/. Маршруты добавлены на домен платформы, а не на отдельный поддомен: поддомен потребовал бы пересборки образа с другим __BUILD_ENV__. /workflows/api/ -> rewrite /api/ -> backend-svc.processing /workflows/ -> rewrite / -> frontend-svc.processing Порядок внутри пары значим: /workflows/api/ обязан идти перед /workflows/, иначе запросы к API уйдут в раздачу статики. Оба стоят перед /api/ и / — правила django их бы перехватили. Маршруты положены в существующий VirtualService platform, а не в отдельный: Istio не сливает несколько VirtualService на одной паре хост+gateway, и часть правил молча потерялась бы.
This commit is contained in:
parent
c7c194feaa
commit
77204c1550
@ -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}
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user