Кухонный докер: как выполнить команду оболочки до того, как кухонный конвергент сойдет
При использовании бродячих машин с тест-кухней pre_create_command
позволяет указать команду, которая запускается локально до создания бродячей машины. С кухонным докером такой опции конфигурации, похоже, не существует, и гнуть chef_omnibus_url
как предложено здесь, не вариант.
Сценарий указан как pre_create_command
для тестирования бродяги генерирует пакет данных местного шеф-повара.
Есть ли решение, которое я не заметил?
2 ответа
Это можно сделать с помощью
driver_config:
provision_command: <command>
в kitchen.yml
Узнайте больше здесь
Kr,
Ршад
Лучшие практики включают Rakefile и Thor.
По сути, вы контролируете свои тесты из Rakefile. Например:
rake style
Это запустит все команды под ваши задачи стиля (возможно, lint/syntax/unit и kitchen tests). Конечно, вы можете изменить ваши задачи, чтобы выполнять все, что вам нравится. Вот несколько хороших ресурсов:
https://blog.chef.io/2015/04/21/overview-of-test-driven-infrastructure-with-chef/
См. Раздел "Вспомогательные инструменты и зависимости".
Вот пример Rakefile:
https://github.com/chef-cookbooks/chef-server/blob/master/Rakefile
Я набросал патч для кухонного докера здесь. Однако, как показывает обсуждение этого запроса, есть аргументы против соответствующей функциональности в кухонном докере, а именно тот, который такой функциональности (если вообще когда-либо) должен идти в ядре кухни.
Таким образом, в настоящее время мы должны жить с этим несоответствием между докером и бродягой, и именно здесь ответ Туна вступает в игру.