Переопределение конфигурации

Оператор YTsaurus автоматически генерирует статические конфигурационные файлы для всех компонентов кластера — на основе спецификации Ytsaurus. Если необходимо точечно изменить параметры, которые не вынесены в поля этой спецификации (например, чтобы включить debug-логирование для диагностики или настроить RPC-таймауты), используйте поле configOverrides. Этот механизм позволяет наложить свои настройки поверх конфигурации, сгенерированной оператором.

Как это работает

Механизм переопределения работает по принципу наложения изменений (патчинга). Вы создаёте отдельный Kubernetes ConfigMap, в котором описываете только те параметры, которые хотите изменить или добавить. В спецификации вашего YTsaurus-кластера в поле configOverrides вы указываете имя этого ConfigMap. Оператор считывает эти настройки и «вливает» их в автоматически сгенерированную конфигурацию перед запуском компонентов.

Примечание

При использовании configOverrides заранее убедитесь, что переопределяемая опция присутствует в конфигурации нужного компонента и что она поддерживается в текущей версии YTsaurus — оператор такой проверки не выполняет. Если опция в оверрайде указана неверно, изменения будут проигнорированы.

Формат конфигурации

ConfigMap должен содержать фрагмент конфигурации в формате YSON.

Структура ConfigMap

При формировании ConfigMap используйте следующую структуру:

  • Каждый ключ — это имя конфигурационного файла компонента. Например, ytserver-http-proxy.yson для HTTP-прокси или ytserver-master.yson для мастера.
  • Каждое значение — это фрагмент YSON-конфигурации с переопределяемыми параметрами.

Пример

Ниже приведён пример использования configOverrides для настройки домена cookie для HTTP прокси:

Шаг 1: Создайте ConfigMap с переопределениями конфигурации:

apiVersion: v1
kind: ConfigMap
metadata:
  name: overrides
data:
  ytserver-http-proxy.yson: |
    {
        "auth" = {
            "cypress_cookie_manager" = {
                "cookie_generator" = {
                    "domain" = ".yt-cluster.my-domain.com";
                }
            };
        };
    }

Шаг 2: Укажите ссылку на ConfigMap в спецификации Ytsaurus:

apiVersion: cluster.ytsaurus.tech/v1
kind: Ytsaurus
metadata:
  name: ytdemo
spec:
  configOverrides:
    name: overrides

  # ... Остальная часть спецификации

Доступные конфигурационные файлы

Ниже перечислены компоненты кластера, для которых можно переопределить конфигурацию — используя соответствующее имя конфигурационного файла:

  • ytserver-master.yson — мастер-серверы
  • ytserver-http-proxy.yson — HTTP-прокси
  • ytserver-rpc-proxy.yson — RPC-прокси
  • ytserver-data-node.yson — ноды данных
  • ytserver-exec-node.yson — Exec ноды
  • ytserver-tablet-node.yson — таблет-ноды
  • ytserver-scheduler.yson — планировщик
  • ytserver-controller-agent.yson — контроллер-агенты
  • ytserver-discovery.yson — сервис обнаружения прокси