Как мне получить кастомные опции в функции `init` роли Tarantool Cartridge? - PullRequest
6 голосов

Файл роли Tarantool Cartridge имеет функцию init .

Я хочу получить свои пользовательские параметры из файла instance.yml . Но в переменной opts его нет.

Как это сделать?

1 Ответ

9 голосов
/ 27 мая 2020

Картридж имеет встроенный модуль argparse. Он анализирует несколько источников конфигурации и объединяет их вместе:

  • instance.yml или файлы в /etc/tarantool/conf.d
  • аргументы командной строки
  • переменные среды, начинающиеся с TARANTOOL_

Картридж использует этот модуль для получения различных частей конфигурации, таких как номера портов или максимально допустимое использование памяти. Но это не мешает вам помещать в эти файлы все, что угодно, если только это не CLA sh со встроенными параметрами.

Вот что вы могли бы иметь в своем init ():

local argparse = require('cartridge.argparse')

-- ...

local function init()
    local args = argparse.parse()

    log.info("My parameter: %s", args.my_parameter) -- use anything you want in place of my_parameter
end
...