Content Indexer job
Введение
Чарт: content-indexer
Версия чарта: 260717.173.1600
Тип: CronJob для индексации контента в OpenSearch
OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer
Необходимые Secret'ы
Для развертывания необходимы следующие Secret'ы:
ConfigMap'ы генерируются автоматически из шаблонов чарта.
Получение чарта из OCI-репозитория
Установка чарта (одной командой)
helm install medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--values .values/content-indexer_prod.yaml
Скачивание и распаковка чарта
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--untar --untardir ./charts
Обновление чарта
helm upgrade medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--values .values/content-indexer_prod.yaml
Развертывание с помощью Helm
Установка (new release)
helm install medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--values .values/content-indexer_prod.yaml
Обновление существующего релиза
helm upgrade medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--values .values/content-indexer_prod.yaml
Удаление релиза
helm uninstall medikt-content-indexer --namespace prod
Конфигурация (values.yaml)
Основные параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
dotnet_environment | Staging | Окружение .NET (Dev, Staging, Production) |
image.repository | cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/indexer | Registry и имя образа |
image.pullPolicy | IfNotPresent | Политика pull образа |
Конфигурация приложения (Production)
# Основной хост Medikt для API
userApiGrpcAddress: "http://medikt-user-api:8081"
# Настройки OpenSearch
oss:
secretNameRef: "content-indexer-creds"
indexes:
publicationsVersion: "20260205"
channelsVersion: "20250807"
personasVersion: "20250830_1"
businessProfilesVersion: "20250807"
eventsVersion: "20250808"
shards: 1
replicas: 0
Настройки CronJob (Production)
job:
schedule: "*/5 * * * *" # Расписание выполнения (каждые 5 минут)
ttlSecondsAfterFinished: 250 # Время хранения завершенных задач (4 минуты 10 секунд)
Ресурсы
resources:
requests:
memory: 300Mi
Проверка развертывания
Проверка статуса релиза
helm status medikt-content-indexer --namespace prod
Проверка CronJob
kubectl get cronjob -n prod -l app.kubernetes.io/name=content-indexer
Проверка последнего запуска
kubectl get jobs -n prod -l app.kubernetes.io/name=content-indexer --sort-by=.metadata.creationTimestamp
Проверка логов последнего запуска
kubectl logs -n prod -l job-name=medikt-content-indexer-<timestamp> --tail=100
Проверка истории запусков
# Последние 5 запусков
kubectl get jobs -n prod -l app.kubernetes.io/name=content-indexer --sort-by=.metadata.creationTimestamp | tail -n 5
Примеры команд
Установка в environment prod
helm install medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--values .values/content-indexer_prod.yaml
Запуск вручную (one-off job)
# Скачайте чарт
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--untar --untardir ./charts
# Измените kind: CronJob на kind: Job в templates/indexer-job.yaml
# или используйте helm template для генерации манифестов
helm template medikt-content-indexer ./charts/content-indexer \
--namespace prod \
--values .values/content-indexer_prod.yaml \
--set job.schedule="" \
> indexer-job-manifest.yaml
kubectl apply -f indexer-job-manifest.yaml
Проверка конфигурации (dry-run)
helm upgrade medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--values .values/content-indexer_prod.yaml \
--dry-run
Обновление с сохранением значений
helm upgrade medikt-content-indexer \
oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/charts/content-indexer \
--version 260717.173.1600 \
--namespace prod \
--reuse-values
Примечания
-
Расписание: В продакшене job запускается каждые 5 минут (
*/5 * * * *). Изменитеjob.scheduleдля настройки собственного расписания. -
TTL:
ttlSecondsAfterFinishedопределяет, сколько времени хранятся завершенные Job-поды. В продакшене установлено на 250 секунд. -
Indexes: Версии индексов (publicationsVersion, channelsVersion и т.д.) должны соответствовать версиям, используемым в content-api.
-
OpenSearch: Убедитесь, что
content-indexer-credsSecret содержит корректные credentials для доступа к OpenSearch кластеру.