--- 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). Так решает не выбор, а собранный бандл платформы. # Проверено по трём независимым источникам: # # 1. В образе sarex-frontend-dev:contour_5.22.0 из 18 упоминаний # remoteEntry.js воркспейсовое ровно одно — /workspaces-v2/module/..., # а из имён ремоутов встречается только srx_workspacesV2 # (у v1 имя без суффикса — srx_workspaces, вхождений ноль). # 2. Отдаваемый контуром /module/remoteEntry.js объявляет srx_workspacesV2. # 3. В cr.yandex у образа workspaces-v2-frontend 61 тег contour_*, # у workspaces-frontend (v1) — ни одного, только preprod и stage. # Репозитория workspace-frontend в реестре нет вовсе. # # Тег в base — contour_2a4ce3fd — и есть САМАЯ СВЕЖАЯ contour-сборка: # по датам создания образов в реестре она от 2026-07-24, следующая за ней # contour_09b9baba от 2026-07-19. Собираются такие образы джобой # build_contour из generic/build-contour-frontend, и её правило — # ветка master при ENABLE_BUILD_IMAGE_CONTOUR=true, то есть contour_* по # определению приезжает с мастера. Поэтому тег здесь не переопределяется: # base уже указывает на нужное, и bump в base автоматически приедет сюда.