amarao (amarao_san) wrote,
amarao
amarao_san

Category:

Софтланч dibctl

Подготовка к релизу затянется надолго, я чую. Начинаю софтланч dibctl.

https://github.com/serverscom/dibctl

Спасибо servers.com за разрешение на релиз под свободной лицензией.

Я над этой штукой работал последние уже почти пол-года, и в настоящий момент это лучшее на что я способен, как программист.

К сожалению, оно ещё не с фиксированным форматом конфигов и как минимум одно болезненное изменение грядёт: вместо фиксированной комбинации image-test_env-tests_list будет понятие tests suite, которое позволит проверить image в более чем одном окружении с разными наборами тестов. Я ещё не придумал как это всё совместить с существующей (удобной) моделью.

Впрочем, прорвусь.

Описание.

Утилита для управления жизненным циклом image'ей в openstack. Позволяет build, test, upload (obsolete & rotate ещё не написаны - в обозримом будущем добавится). Расчитана на работу как с командной строки, так и в системах CI/CD.

Наибольшие усилия в районе тестов. Тесты есть двух видов: shell - когда на входе скрипта набор переменных, описывающих как инстанс (куда подключаться), так и характеристики image'а и istance'а. Второй - pytest, рассчитан на использование testinfra и позволяет использовать фикстуру ssh_backend, уже настроенную "как надо" для запуска кода внутри инстанса.

При запуске тестового инстанса есть "wait_for_port" (дождаться, что ssh/rdp отвечает), плюс сам dibctl отгружается с приличным набором тестов. Наши внутренние тесты более обширны, но они под нашу инфраструктуру завязаны. Всё что можно было генерализировать - я вынес в dibctl.

Внутри учитывает всякий ужас, вроде keystone2-keystone3, в т.ч. endpoint'ы без версий, умеет подавлять всякий хлам от sslwarning'ов.

Оно ещё пишется, но уже работает и используется. Интересен фитбэк от заинтересованной публики.

От "мимо пробегающих" - замечания по коду и/или инфраструктуре пакета. Сборка - в бранче xenial, ванильный код - в master'е.

Я про него буду много писать в ближайшее время (в основном в свете не решённых архитектурных проблем).
Tags: dibctl
Subscribe

  • systemd-networkd, netlink и arp флуд

    Нереально странный баг пофикшен с помощью eBPF затычки. Для меня большой неожиданностью является реакция на него.…

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments