Назад | Перейти на главную страницу

Интерполировать значения как целые числа в файлах HLC

Я пишу шаблон для параметризованной работы HashiCorp Nomad. Один из его параметров - priority, которое должно быть целым числом от 0 до 100.

Как и другие инструменты, Nomad поддерживает переменная интерполяция, так что переменная может быть определена в какой-то момент и позже на нее будет ссылаться. Nomad также позволяет определять «мета-переменные», которые передаются во время выполнения и могут использоваться в файле HLC.

То, что я пытаюсь сделать, выглядит следующим образом:

job "my-job" {
    parametrized {
        meta_required = ["TASK_PRIORITY"]
    }
    priority = "${NOMAD_META_TASK_PRIORITY}"
    ...
}

Я нашел единственный способ прочитать эти переменные - внутри строк. Поскольку priority строфа ожидает целое число, выдается следующая ошибка:

error parsing 'job': 1 error(s) decoding: * cannot parse 'Priority' as int: strconv.ParseInt: parsing "${NOMAD_META_TASK_PRIORITY}": invalid syntax

Есть ли способ «преобразовать» строку в целое число? Или, альтернативно, есть ли какой-нибудь другой способ ссылки на переменную, который будет работать?

Кажется, это было проблема в какой-то момент это было исправлено, но если вы используете самую последнюю версию, это должно сработать:

prioritystr = "${NOMAD_META_TASK_PRIORITY}"
priority = int(prioritystr)

В итоге я поднял вопрос на Github. Они ответили, что пока невозможно интерполировать поле приоритета. См. Проблему.