Skip to main content
Version: 1.12-grodno (current)

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_environmentStagingОкружение .NET (Dev, Staging, Production)
image.repositorycr.yandex/crpt9c7igqasaqddbg0p/backend/content.api/indexerRegistry и имя образа
image.pullPolicyIfNotPresentПолитика 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

Примечания

  1. Расписание: В продакшене job запускается каждые 5 минут (*/5 * * * *). Измените job.schedule для настройки собственного расписания.

  2. TTL: ttlSecondsAfterFinished определяет, сколько времени хранятся завершенные Job-поды. В продакшене установлено на 250 секунд.

  3. Indexes: Версии индексов (publicationsVersion, channelsVersion и т.д.) должны соответствовать версиям, используемым в content-api.

  4. OpenSearch: Убедитесь, что content-indexer-creds Secret содержит корректные credentials для доступа к OpenSearch кластеру.