Сертифицированные и проверенные коллекции#
Форматы распространения кода Ansible#
Код для автоматизации с помощью Ansible может включать следующие элементы:
сценарии;
определения переменных;
модули и другие.
Код может иметь произвольную структуру каталогов в проекте. Для обеспечения модульности и переиспользования Astra Automation предлагает контент в виде коллекций Ansible, которые объединяют элементы кода в стандартную структуру. Смотрите более подробную информацию в описании коллекций Ansible.
Все коллекции Astra Automation доступны в Astra Automation Hub и являются проверенными.
API#
Коллекции Ansible используются посредством подключения их к другому коду Ansible (например, к playbook или другим коллекциям) в качестве зависимостей и «библиотек» – подобно тому, как аналогичный подход применяется в высокоуровневых языках программирования. У пользователя коллекции нет необходимости редактировать ее код, чтобы использовать необходимую функциональность в своем окружении.
Пользователь взаимодействует с коллекцией с помощью следующих элементов интерфейса:
переменные ролей и playbook, объявленные в коллекции;
инвентарь в формате, определенном коллекцией;
параметры модулей, содержащихся в коллекции;
названия ролей, модулей и playbook.
Совокупность перечисленных интерфейсов можно воспринимать как API коллекции, который для каждой коллекции описан в ее документации. API определяется функциональными возможностями коллекции, но также на него может влиять состав Execution Environment.
Проверенный контент#
В условиях динамического развития продуктов ПАО Группа Астра, а также продуктов других компаний, потенциальные пользователи Astra Automation хотели бы получать код автоматизации на тестирование как можно раньше, даже если он не полностью охватывает все запланированные возможности и не стабилизирован. К такому коду со стороны Astra Automation предъявляется ограниченный набор требований:
Код организован в соответствии со структурой коллекции Ansible.
Коллекция версионируется в соответствии с SemVer (Semantic Versioning).
Код не требует интерактивного взаимодействия с пользователем.
Коллекция содержит документацию на все компоненты (роли, модули, общий
README.md
).
После прохождения проверки инженерами Astra Automation коллекция, отвечающая данным требованиям, получает статус проверенной.
Проверенный контент имеет следующие ограничения:
Отсутствует фиксированный жизненный цикл и выпуски с длительным сроком поддержки.
Код может быть неидемпотентным.
Сертифицированный контент#
Коллекции Ansible могут быть сертифицированы в рамках определенной версии Astra Automation. К сертифицированным коллекциям предъявляются следующие требования (помимо требований, предъявляемых к проверенным коллекциям):
Код не должен дублироваться. Если коллекция collection1 разработана для настройки сервиса service1, которому для функционирования необходим сервис service2, код настройки которого уже есть в составе отдельной сертифицированной коллекции collection2, то запрещается дублировать его в коллекцию collection1.
Коллекция настраивает только тот объект (сервис, устройство), для которого разрабатывается. Коллекция не должна содержать реализации функций настройки каких-либо других объектов – такие функции должны быть добавлены в соответствующие сертифицированные коллекции.
Код коллекции должен быть идемпотентным.
Возможности коллекции должны быть покрыты тестами.
Жизненный цикл#
Для сертифицированных коллекций поддерживаются следующие типы выпусков:
FR (feature release) – выпуски с новыми возможностями коллекции. Периодичность выпуска составляет 4 недели, если есть готовые к публикации изменения.
LTS (long-term support) – выпуски с длительным сроком поддержки в течение 24 месяцев. В таких выпусках зафиксированы функциональность коллекции и версии поддерживаемых продуктов. Выпуски получают только обновления безопасности и устранение ошибок, а также совместимость с новой версией Astra Automation Controller, если подходит к концу срок поддержки текущей версии контроллера.
Порядок выпуска FR#
В рамках выпуска FR в сертифицированных коллекциях могут происходить следующие изменения, отражающиеся в соответствующем изменении версии коллекции согласно семантическому версионированию:
Исправления – исправления обнаруженных ошибок, в том числе исправление и дополнение документации.
Минорные обновления – добавление новых функций или новой версии коллекции, не затрагивающие обратную совместимость с текущей мажорной версией API. Это означает, что playbook и другие коллекции, использующие данную коллекцию, не потребуют адаптации для уже задействованных в них возможностей коллекции.
Мажорные обновления – значительные изменения в коллекции, которые меняют формат входных/выходных параметров ролей, playbook и других компонентов коллекции (API). Для таких версий теряется обратная совместимость с предыдущими мажорными версиями коллекции. Изменения могут быть связаны с добавлением поддержки новой версии продукта, исправлениями критических ошибок или удалением компонентов коллекции.
При внесении изменений в служебные файлы (taskfile.yml
, конфигурации linter и другие) и тесты версия коллекции не меняется.
Версия FR выпускается каждые 4 недели или чаще в случае обнаружения значительных ошибок. Если изменений в коллекции за цикл выпуска не произошло, новая версия не выпускается.
В рамках выпусков FR может добавляться поддержка новых версий продуктов. Для сертифицированных коллекций это должно происходить при очередном выпуске FR после даты релиза продукта или ранее.
Порядок выпуска LTS#
Использование долговременно-поддерживаемых версий (LTS, long-term support) позволяет сопровождать инфраструктуру с помощью коллекции с зафиксированным API в течение длительного времени. Новый выпуск LTS формируется каждые 18 месяцев на основе текущего выпуска FR, что позволяет плавно мигрировать с предыдущего LTS-выпуска.
Выпуски LTS поддерживаются в течение 24 месяцев со дня выпуска. В течение этого периода коллекция получает следующие обновления:
исправления обнаруженных ошибок;
исправления безопасности;
новые функции, если это требуется для исправлений.
Мажорная и минорные значения версии коллекции всегда зафиксированы для выпуска LTS. В версии коллекции изменяется только поле patch.
Поддержка#
Для сертифицированных и проверенных коллекций клиент может направлять запросы о нововведениях или исправлениях ошибок в поддержку Astra Automation. Запросы будут отрабатываться инженерами Astra Automation и партнерами, сопровождающими сертифицированную коллекцию.
Удаление коллекций#
Коллекции могут терять свой статус сертифицированной или проверенной, а также быть удалены с Astra Automation Hub.
Коллекция теряет статус сертифицированной в следующих случаях:
Если сопровождающий коллекцию не обеспечивает устранение ошибок для выпусков LTS.
Если сопровождающий коллекцию не обеспечил совместимость с новой версией Astra Automation.
Если закончилась поддержка версии Astra Automation, для которой сертифицировалась коллекция.
Коллекция теряет статус проверенной, когда версия Astra Automation Controller, для которой она предназначена, перестает поддерживаться.