Каталоги addons служат для добавления различных "файлов", необходимых для сборки и разворачивания контейнеров. Это могут быть скрипты запуска или вспомогательные скрипты, файлы с переменными окружения или настройками, конфигурационные файлы копируемые в собираемые образы и т.д. Ниже приведён список каталогов из которых берутся файлы в порядке приоритета:
- ./addons
- .daas/addons
- DAAS_ADDONS_DIR (переменная окружения)
- /usr/share/daas/addons.d
- /usr/share/daas/addons
Все файлы, лежащие в этих каталогах, копируются каждому узлу проекта в его сборочный каталог. При этом копирование происходит в обратном порядке, т.е начиная с каталога /usr/share/daas/addons и заканчивая каталогом ./addons. При этом файлы из более приоритетных каталогов (пользовательских) соответственно затирают файлы, скопированные из предыдущих, если они совпадают по имени.
Поэтому если какой-то системный addon-файл необходимо заменить на свой, достаточно положить свой с таким же названием в каталог ./addons или .daas/addons.
Системный каталог /usr/share/daas/addons.d служит для системных пользовательских файлов, которые устанавливаются из сторонних пакетов.
Цель каталогов addons обеспечить каждый узел всем необходимым для его сборки или функционирования. Например если вы указали (для узла, или группы или глобально для всего проекта) раздел copy
copy:
- "[go-rwx]sshd_config:/etc/openssh/"
- "init-ssh-agent:/usr/local/bin/"
- "my-install-packages.sh:/usr/local/bin/"
То эти файлы должны лежать в одном из addons-каталогов.
Но использование каталогов addons совершенно не обязательно. Главное чтобы на момент сборки или запуска контейнера все необходимые файлы лежали у него в каталоге. Т.е. не запрещается какие-то файлы самостоятельно копировать или генерировать в сборочный каталог узла перед сборкой контейнера.