--- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: workspaces resources: - ../base patches: # --- workspaces-api --------------------------------------------------------- # Патчи адресуются по индексу, поэтому перед каждым replace идёт op: test на # имя переменной. Если в base порядок envs изменится, сборка упадёт явно, # вместо того чтобы молча перезаписать соседнее значение. - target: {kind: HelmRelease, name: backend} patch: | # В base адрес django неверный ДВАЖДЫ: сервиса backend не существует # (он называется backend-svc), и порт 8000 — это targetPort контейнера, # а сам сервис принимает на 80. Проверено в кластере: # backend-svc...:80 -> HTTP 200 # backend-svc...:8000 -> таймаут # backend...:8000 -> имя не резолвится # Ровно та же ошибка была в base у processing/engine-low. - op: test path: /spec/values/services/backend/envs/11/name value: DJANGO_HOST - op: replace path: /spec/values/services/backend/envs/11/value/_default value: http://backend-svc.django.svc.cluster.local:80 # ENVIRONMENT/ORIGINATOR в base говорят «prod» — это контур, а не прод. # Значение уезжает в Sentry и в заголовки запросов к смежным сервисам. - op: test path: /spec/values/services/backend/envs/10/name value: ENVIRONMENT - op: replace path: /spec/values/services/backend/envs/10/value/_default value: aero - op: test path: /spec/values/services/backend/envs/12/name value: DJANGO_ORIGINATOR - op: replace path: /spec/values/services/backend/envs/12/value/_default value: aero_ws # documentations в контуре нет и не будет. Выключить интеграцию целиком # нечем: DOCUMENTATION_LOGGER_FEATURE (уже "0" в base) гасит только # логирование, а GetDocumentByWS вызывается из обработчика GET workspace # безусловно. Поэтому адрес оставлен «говорящим»: в логах будет видно имя # несуществующего сервиса, а не молчаливый таймаут в никуда. # Практическое следствие: карточка воркспейса отдаёт данные без документа. - op: test path: /spec/values/services/backend/envs/7/name value: DOCUMENTATION_HOST - op: replace path: /spec/values/services/backend/envs/7/value/_default value: http://documentations-api-svc.documentations.svc.cluster.local:80 # --- frontend --------------------------------------------------------------- # Идёт из base без единого патча — и это осознанно, а не «руки не дошли». # # Фронтенд workspaces — это Module Federation remote с именем srx_workspaces, # точка входа /module/remoteEntry.js. Его подгружает главный фронтенд # платформы, поэтому наружу он НЕ публикуется: маршрут ему не нужен, нужен # проксирующий location внутри nginx главного фронтенда. Он уже есть — # apps/django/aero/nginx-configmap.yaml, location ~^/workspaces-v2/(.+).js, # rewrite снимает префикс и проксирует в frontend-svc.workspaces:80. # # Версия — именно v2, хотя в репозитории есть и v1 (workspaces-frontend-static # в apps/workspaces/dsinv). Так решает не выбор, а собранный бандл платформы: # в образе sarex-frontend-dev:contour_5.22.0 лежит строка # "/workspaces-v2/module/remoteEntry.js" и имя ремоута srx_workspaces, # обращений к v1 в нём нет вовсе. Плюс у v1 нет ни одной contour-сборки: # в его CI (platform/workspaces-frontend) слова contour не встречается.