KeyStack Release Notes
2024.2.5
New Features
Добавлена поддержка Sberlinux 9.3.4.
Nexus обновлен до версии 3.70.1.
Vault обновлен до версии 1.16.3.
GitLab обновлен до версии 16.11.6-ce.0.
Netbox обновлен до версии 4.0.8.
Теперь доступна полная поддержка стороннего Nexus для хранения всех артефактов. Для этого требуются дополнительные действия в стороннем Nexus.
Admin UI
Список ВМ: при отправке запроса Live migrate поле Ignore AZ Restriction теперь передается в запросе как force.
Гипервизоры: Maintenance mode определяется поиском в подстроке статуса, полученной от Admin UI Backend, вместо строгого сравнения.
Добавлена поддержка Castellan, секреты из region-файла перенесены в Vault. Возможна нормальная работа AdminUI как с Castellan, так и без него.
При переводе гипервизора в режим ММ эвакуация ВМ происходит параллельно в соответствии с настройками “max_concurrent_live_migrations”. Процесс миграции логируется.
Можно скрыть пароль в OpenRC с помощю настройки “hide_password_in_openrc” в разделе openstack файла adminui-backend-osloconf.conf.
HA
Формат трейсов и конфигурация логов доработан под стандарты oslo.log.
Обновлено уведомление “Nova compute failure”, а все поля события теперь заполнены.
Добавлены в promeheus поля уведомления для Alertmanager (+ severity, az, vm_uuid, source_hypervisor).
Nova
Добавлены фильтры “created-since”, “created-before”, “deleted-since”, “deleted-before” в API списка инстансов.
Cinder
Улучшена производительность драйвера Huawei FC при обработке одновременных операций присоединия и отсоединения дисков на одном и том же гипервизоре.
Upgrade Notes
Admin UI
Добавлена переменная “region_names” в секцию [DEFAULT] конфигурационного файла adminui-backend-regions.conf. Для подключения регионов KeyStack к AdminUI необходимо добавить список названий регионов в переменную “region_names” через запятую.
Bug Fixes
Исправлена ошибка, из-за которой было невозможно восстановить AMQP при потере одного из участников RMQ. Подробности см. по ссылке.
Исправлено поведение при перезапуске docker.service — возвращена возможность не перезапускать контейнеры вместе со службой docker.service. Подробности см. по ссылке.
Admin UI
Префикс AUTO заменен на FENCED для HA.
Исправлена некорректная работа группы серверов в случае превышения параметра “max_server_per_host” для группы серверов с политикой anti-affinity.
Гипервизоры вне хост аггрегатов в дефолтной зоне доступности (availability zone) Nova не получают поле hypervisor_availability_zone.
HA
Исправлен конфликт эвакуации с префиксом AUTO в поле disable_reason. Сервисы nova-compute отключаются с префиксом FENCED: в disable_reason.
Доработана логика перехода вычислительного узла в maintenance mode (MM). Вычислительные узлы переходят в MM изолированно во всех случаях, не влияя на другие узлы в том же регионе.
Исправлен ложный статус MM вместо Fencing для некоторых гипервизоров HA Consul при частично успешной миграции.
Nova
Добавление ВМ в anti-affinity группу серверов теперь возрвращает ошибку, если целевая конфигурация группы нарушает ограничение “max_server_per_host”.
Для “server_evacuate API” включена проверка на “task_state” сервера для защиты ВМ от гонок при одновременном ребилде в случае повторных попыток эвакуации (возникает при отработке HA).
2024.2
New Features
Добавлена поддержка Sberlinux 9.3.3.
Драйвер Cinder-volume Huawei обновлен до версии 2.42.
Добавлена возможность загрузки пользовательских образов Glance через механизм tf_states.
Добавлена возможность проксирования HTTP-заголовков X-Forwarded-IP, X-Client-IP, X-Real-IP в Octavia.
Библиотека oslo.lib обновлена до версии 5.3.1.
Библиотека castellian обновлена до версии 4.4.0.
Добавлена поддержка VictoriaMetrics 1.101.0 в качестве долговременного хранилища данных Prometheus.
Добавлена поддержка cinder-volume driver для работы с Cloud SDS.
Добавлена возможность интеграции с ActiveDirectory/LDAP следующих компонентов: GitLab, Netbox и Grafana.
Добавлена возможность использовать метод фенсинга “hardreboot” в компоненте HA. Для выбора режима добавлена переменная bmc_power_fence_mode.
Добавлены правила уведомлений (alerts) для мониторинга RabbitMQ.
Добавлены правила уведомлений для мониторинга docker-контейнеров с помощью cAdvisor exporter.
Добавлены правила уведомлений для мониторинга MariaDB.
Добавлено правило уведомлений для мониторинга смены AZ у виртуальной машины.
Добавлено правило уведомлений для мониторинга перевода гипервизора в режиме обслуживания (Maintenance mode).
Добавлены новые правила уведомлений.
Добавлены новые дашборды в Grafana.
Добавлен шаблон для email-уведомлений от Alertmanager.
Admin UI
Добавлены новые страницы, таблицы и другое.
Images: новая страница списка образов, отображающая детали образа по ID. На странице доступна кнопка “Загрузить Image” с диалоговым окном выбора параметров (name, os_type, container_format, disk_format) и файла для загрузки, а также действия “Edit” и “Delete” с соответствующими диалоговыми окнами.
Server Groups: новая страница списка групп серверов, отображающая детали группы по ID. На странице доступна кнопка “Создать Server Group” с диалоговым окном выбора параметров (name, policy, max_server_per_host), а также действия “Показать сервера”, “Убрать сервер” и “Удалить” с соответствующими диалоговыми окнами.
Создание ВМ: новое поле Server Group, необязательное для заполнения.
Список ВМ:
Новое действие “Change Server Group” с диалоговым окном выбора новой группы серверов.
В таблице списка добавлены синие значки-теги, если выключен DRS или Evacuation с надписями “no DRS” и “no HA” соответственно.
Новые действия “Nova Rescue/Unrescue” с диалоговыми окнами.
Новый маркер Wrong AZ для серверов с AZ, отличающимся от AZ гипервизора, на которой он находится.
Новое действие “Change AZ”, позволяющее сменить зону доступности у сервера. Доступно, если сервер имеет Wrong AZ, либо у него отсутствует AZ.
В действие “Live Migrate” добавлен фильтр гипервизоров по зоне доступности (должен совпадать с AZ сервера) с возможностью отключения этого фильтра через опцию Ignore AZ Restriction.
Новое действие “Stop migration”, доступное для серверов в статусе MIGRATING, которое останавливает последнюю миграцию сервера.
Новая колонка power state в таблице списка.
Страница ВМ: на странице конкретной ВМ добавлены графики статистики за последние 10 минут показателей производительности.
Порты: добавлено действие удаления с подтверждающим диалоговым окном.
Добавлена кнопка “Создать порт”, открывающая страницу “Создание порта” со следующими полями: Project*, Network*, Fixed Ips*, Port name*, Mac address, Port security enabled, Security Groups и Allowed address pairs.
Drs Configs:
При создании добавлено поле algorithm. При этом help_overloaded_hypervisors — разгрузка перегруженных гипервизоров, equal_hypervisors_load — равномерная нагрузка по ЦПУ, ОЗУ и сети между гипервизорами, а balance_network — равномерная сетевая нагрузка между гипервизорами. В зависимости от выбранного значения определяются остальные параметры base_config.
При создании файла конфигурации добавлена валидация параметров весов (их сумма должны равняться единице).
В таблице теперь вместо полей параметров отображается поле base_config со всеми его параметрами.
Гипервизоры:
На строки в таблице добавлены визуальные элементы Maintenance mode и Fenced, и при нахождении в соответствующих статусах цвет строки меняется на желтый.
При нахождении гипервизора в статусе Fenced выполняется действие “Disable Fence Mode”.
DRS
Новая опция файла конфигурации TARGET_HYPERVISOR_SOFT_LIMIT заменяет собой MOVE_SYN_DIFF_AFTER для алгоритма ‘help_overloaded_hypervisors’. Потенциальная рекомендация к миграции не выдается, если предсказываемая нагрузка на целевой гипервизор после совершения этой миграции больше, чем TARGET_HYPERVISOR_SOFT_LIMIT.
Алгоритм ‘equal_hypervisor_load’ теперь поддерживает балансировку по новому измерению — сетевому траффику (сумма входящего и исходящего трафика на tap-интерфейсах ВМ). Соответствующий вес ‘network_weight’ добавлен в файл конфигурации этого алгоритма.
Дополнительное логирование уровня ERROR в случае недоступности Prometheus.
Опция ‘allowed_load_above_average’ файла конфигурации алгоритма ‘equal_hypervisor_load’ позволяет регулировать жесткость критерия сбалансированности. Гипервизоры, чья нагрузка (score) меньше, чем average_load_across_region (средняя нагрузка в регионе) + ‘allowed_load_above_average’, считаются сбалансированными, поэтому миграций с них рекомендовано не будет.
Формат логирования приближен к остальным сервисам OpenStack. Новая конфигурационная опция сервиса ‘max_concurrent_live_migrations’ в секции файла конфигурации Default (значение по умолчанию — 1). Позволяет увеличить число одновременных миграций, в которых гипервизор может участвовать.
HA
Параметр “dead_computes” теперь находится в строгом неравенстве с количеством отказавших гипервизоров. Если отказало два гипервизора, а параметр выставлен в значение 2 — эвакуация произойдет.
Дополнительное логирование INFO-уровня, агрегирующее статус и количество вычислительных узлов, сгруппированных по зонам доступности.
В тела уведомлений для Prometheus Alertmanager добавлены лейблы “severity” и “description”. Лейбл “alert_name” переименован в “alertname”.
HA более не повторяет операции фенсинга по интерфейсу BMC, если такая операция была ранее успешно проведена. Такие гипервизоры имеют статус в API сервиса nova: “disable_reason” начинается с префикса “AUTO:”.
Новая опция “power_fence_mode” файла конфигурации в секции “bmc”. Если она пропущена или выставлена в ‘poweroff’ — старое поведение выключения гипервизора сохраняется. Если выставлено значение “hardreboot” — отказавший гипервизор будет перезапущен соответствующим образом при фенсинге.
Upgrade Notes
Admin UI
Внесены значительные улучшения в UX и визуальную часть продукта.
Логирование трейсов ошибок приведено к общему стандарту.
Поддерживается опциональная персонализация операций пользователя в GitLab (создание коммитов и старт пайплайнов от учетной записи пользователя). Пароль теперь отсутствует в скачиваемом файле OpenRC. Прежнее поведение можно восстановить с помощью параметра openstack.hide_password_in_openrc.
Bug Fixes
Устранены ложные сообщения об ошибках в журнал nova-compute. Подробности см. по ссылке.
Устранена ошибка работы с multipathd (отсутствующий конфигурационный файл) для служб glance и nova-compute для Sberlinux.
Внесены исправления в правила уведомлений (alerts).
Внесены исправления в дашборды.
Admin UI
Header: изменена ссылка “Документация/FAQ” с wiki.itkey.com/pages/viewpage.action?pageId=59146341 на актуальную — docs.keystack.ru.
Title: если не выбран регион, вместо null отображается пустое значение.
Auth page: теперь домен автоматически выбирается, если он не был выбран, и при этом всегда отправляется при авторизации.
Квоты: поправлены стили диалогового окна “Редактировать квоты”.
Список ВМ: действия “Drs Disable/Enable” и “Evacuation Disable/Enable” переименованы в “Disable/Enable Drs” и “Disable/Enable Evacuation”.
Создание ВМ:
Проект теперь учитывается при создании ВМ и устанавливается для самой ВМ.
Поле “Security Groups” больше не имеет маркера галочки или крестика в правом меню Request summary.
Изменена подпись полей “Key Pairs” и “Hypervisors” на “Key Pair” и “Hypervisor” соответственно.
QoS: при создании QoS поле consumer теперь учитывается и задается. Можно выбрать из доступных значений: “front-end”, “back-end” и “both”.
Drs Board: сообщение при отсутствии оптимизаций “Запустите джобу для старта оптимизаций” изменено на “Запустите джобу и дождитесь начала оптимизации”
Drs Optimizations: устранена ошибка в диалоговом окне “Показать рекомендации”, из-за которой при нажатии на ID рекомендации открывалась страница оптимизации по ID, а не рекомендации.
Порты: исправлено условие (теперь работает на любой зоне доступности) для “Detach” и отображения device как ссылки на страницу конкретной ВМ.
Гипервизоры: диалоговое окно действия “Disable service” теперь закрывается после выполнения запроса.
Users: в диалоговом окне действия “Редактировать” исправлен цвет кнопок.
Projects:
Из отправки запроса на создание проекта убрано поле parent.
Исправлено условие для отправки запроса на создание и редактирование проекта.
Исправлен сброс состояния валидации при повторном открытии диалогового окна действий “Создать” и “Редактировать проект”.
Roles:
В таблице убрано отображение поля domain.
Убрано поле domain при редактировании.
Поле description отмечено как необязательное при редактировании.
Тома выводятся для всех проектов, а не только для проекта по умолчанию. Работает фильтрация томов по проекту.
Восстановлено отображение ВМ, созданных в кастомных AZ.
Изменен невалидный импорт клиентских сертификатов, из-за которого возникали ошибки.
Исправлена схема для валидации fixed-ip при создании порта.
Переписано логическое условие, из-за которого ранее возникала ошибка при применении рекомендации DRS.
Добавлено недостающее поле algorithm в схему для обновления файла конфигурации DRS.
Устранена ошибка, в результате которой не удалялись присоединенные диски.
В результате добавления логирования была нарушена работа cadf. Сейчас работает и cadf, и логи.
Исправлена схема валидации параметров для фильтрации списка серверов. Ранее не работала сортировка по убыванию.
В логах ошибки теперь не выводится пароль GitLab. Сообщение ошибки исправлено.
Код ошибки исправлен с 400 на 401 для случая, когда ключа нет в memcache, что позволяет возвращаться на страницу авторизации.
Исправлена swaggger-документация для списка ролей.
Поле TARGET_HYPERVISOR_SOFT_LIMIT стало необязательным для обновления файла конфигурации DRS. Ранее при отсутствии значения для него возникала ошибка.
Устранена ошибка, в результате которой возвращался неверный код исключения.
Исправлен put-запрос /servers/<string:server_id>/drs/enable, не работавший ранее из-за неверных метаданных.
DRS
Исправлены валидации полей периода задания (job) и имени алгоритма файла конфигурации.
Проверка существования TLS-сертификата, указанного в файле конфигурации, теперь проводится при запуске сервиса.
2024.1.3
Upgrade Notes
Netbox обновлен до версии 3.68.1-02.
Добавлена возможность загрузки данных в Netbox из CSV-файлов.
Bug Fixes
Устранена ошибка, приводившая к несовместимости запросов 2.32 и docker-py. Подробности см. по ссылке.
2024.1.2
New Features
DRS
Клиент возвращает дополнительную информацию в случае возникновения ошибки.
Добавлена поддержка алгоритмов в конфигурации.
Admin UI
Добавлены новые страницы, таблицы и разделы.
Новые страницы:
Порты: страница конкретного порта и ссылка на нее из колонки ID.
Snapshots: отдельная страница в меню во вкладке “Ресурсы”. Доступные список снимков таблицей, страница конкретного снимка по ID. Диалоговые окна действий “Изменение” (name, description) и “Удаление”.
Users: новая страница со списком в таблице и фильтрами, кнопкой “Создать” и действиями “Редактировать”, “Удалить”, “Изменить пароль”, “Сменить роль” с соответствующими диалоговыми окнами. Также по ID доступна страница конкретного пользователя.
Projects: новая страница со списком в таблице и фильтрами, кнопкой “Создать” и действиями “Редактировать” и “Удалить” с соответствующими диалоговыми окнами. Также по ID доступна страница конкретного проекта.
Roles: новая страница со списком в таблице и фильтрами, кнопкой “Создать” и действиями “Редактировать” и “Удалить” с соответствующими диалоговыми окнами. Также по ID доступна страница конкретной роли.
Volume types: страница со списком volume types в таблице, действиями “Edit” и “Delete” с соответствующими диалогами, а также кнопка “Создать” с диалогом.
Новые таблицы:
QoS: таблица со списком Quality of Service (QoS) на странице Volume Types с кнопкой “Создать” и действиями на удаление, а также редактирование, добавление и удаление spec, привязывание и отвязывание от типа тома.
Quality of Service: таблица сущностей на странице Volume Types с кнопкой “Создать” и действиями на удаление, а также редактирование, добавление и удаление spec, привязывание и отвязывание от типа тома.
Другое:
Title: заголовок вкладки браузера меняется в зависимости от нахождения на странице и выбранного региона.
Идентификация: новый раздел в левом меню с тремя страницами: Users, Projects, Roles.
Upgrade Notes
HA
Autoevacuator
Изменена логика работы параметров alive_compute_threshold и dead_compute_threshold. Теперь подсчет и контроль этих параметров идет в рамках каждой зоны, а не всего региона.
Admin UI
Внесены значительные улучшения, включая обновление библиотек кода, рефакторные правки кода, модульность стилей и другие изменения кода для повышения производительности. Также есть изменения в дизайне, шрифте, цветах и отступах.
Список ВМ:
Добавлена колонка discs. Колонки name и id поменялись местами. Из заголовка колонки “flavor:name” убрано “:name”, в поле добавлено отображение RAM/vCPUs.
Для ВМ в статусе ERROR заблокированы действия, недоступные из-за статуса.
В диалоговом окне действия Resize добавлено RAM и CPU рядом с именем флейвора.
В диалоговом окне действия Attach interface выбор порта теперь происходит по имени; если его нет у порта, то по IP-адресу; если его тоже нет — по ID.
В диалоговых окнах действия Attach/Detach Interface/Volume вместо статуса disabled у выпадающих списков сделан эффект загрузки, пока не появился список.
В диалоговом окне действия Edit VM переименованы поля и убрана приставка “New “.
После выполнения операций действия Power management теперь через 2,5 секунды происходит вызов списка.
После выполнения операций действия Live migrate, Reset state теперь происходит вызов списка.
Всплывающее сообщение действия Live migrate изменено с “VM миграция запущена” на “Процесс живой миграции [server.name] инициирован”.
Всплывающее сообщение действия Delete VM изменено с “ВМ удалена” на “Процесс удаления [server.name] запущен”.
Создание ВМ:
Убран проект internal из доступных для выбора проектов.
Instance Name Options переименован в Instance Folder Options, оттуда убрано “Count VM”.
Instance Name теперь предварительно заполняется дефолтным значением “test_vm_a1b2”.
К именам созданных ВМ теперь добавляется суффикс с номером -n — например, test_vm_a1b2-1, test_vm_a1b2-2.
Созданный в диалоговом окне флейвор теперь выбирается автоматически.
Сеть с параметром shared=true теперь доступна для выбора вне зависимости от выбранного проекта.
Security Groups больше не является обязательным.
В Security Groups заменена галочка фильтра на выпадающий список (name, port) с текстом “Искать по” перед ним.
Для выбора теперь показываются только доступные гипервизоры (state != down, status != disabled).
При повторном нажатии на любую кнопку Options теперь выводится Summary.
Диски:
Добавлены колонки status и name.
Колонка attachments переименована в VM-name, в ней теперь выводятся server_name или — если он пустой — server_id.
В диалоговом окне действия Attach to server в списке серверов теперь выводится server_name вместо server_id.
Добавлено действие Retype volume, запускающее диалоговое окно выбора типа тома с параметром Migrate volume on retype.
Действие Change size теперь всегда доступно для нажатия вне зависимости от статуса диска.
Изменен текст всплывающих уведомлений действия Attach/Detach, а также добавлена валидация в диалоговом окне действия Attach.
Квоты: доступно редактирование поля trunk у Neutron.
Status Page: диаграммы “Бублики” перемещены и теперь отображаются как третья колонка к таблицам.
Гипервизор: на странице конкретного гипервизора добавлен заголовок с именем (и ошибкой в скобках при наличии) и кнопкой “назад”.
Security Groups: раскрыта информация колонки rules — вместо их количества отображается каждое правило со всеми присутствующими параметрами.
Auth page: по умолчанию опция “Включить режим ReadOnly” выключена.
Порты:
Добавлена колонка vm_name в таблицу списком.
Вместо колонки network_id теперь network_name.
Ресурсы: tenant_id заменен на project_name в колонках таблиц списком.
Список ВМ, Диски, Порты: действия (“actions”) и заголовки диалоговых окон переименованы на Attach/Detach interface/volume to/from server.
Левое меню:
Добавлен отступ по бокам на всех страницах, который убирается при открытии левого меню. Контент более не расширяется при закрытии левого меню.
Добавлен логотип на верхнюю часть левого меню, чтобы заменить логотип заголовка.
Выпадающие списки:
Добавлен эффект загрузки выпадающих списков, пока ожидается список сущностей.
Все выпадающие списки теперь переворачивают свою иконку стрелки при раскрытии.
404: создана страница ErrorPage, которая показывается вместо пустой страницы.
Дополнительные улучшения:
URL-адрес: изменен URL-адрес страницы Консоль ВМ с “/virtual-machines/remote-console/[server_id]” на “/virtual-machines/[server_id]/remote-console”.
Создание ВМ:
Изменен формат отправки ВМ, image=null, у первого volume добавлен параметр boot_index=”0”.
Поле hostname больше не передается вместе с запросом создания.
Квоты: изменен формат отображения квот cinder volume types — теперь они отображаются по группам. Также изменен формат запросов на сервер: volume_type_quotas — отдельное поле с массивом квот для каждого типа.
Всплывающие уведомления: доработан метод показа сообщения об ошибке и добавлен message в текст ошибки.
Код:
Версия библиотеки UI-компонентов PrimeReact обновлена с 8 на 10. Есть изменения в дизайне, шрифте, отступах, цветах, часть приведена к старому образцу, а часть осталась измененной.
CSS-фреймворк заменен с PrimeFlex на Tailwind, внешний вид приведен к старому образцу с небольшими изменениями.
Внедрена CSS-модульность для изоляции стилей разных компонентов на страницах.
Библиотека управления данными хранилища заменена с Redux на Redux Toolkit.
Внедрена библиотека RTK Query для более оптимизированных запросов на сервер.
Изменено поведение отрисовки страниц, уменьшено количество лишней перерисовки за счет использования кэша React.memo.
Проведен рефакторинг компонентов, страницы вынесены как отдельные компоненты, а компоненты переименованы для упрощения импорта.
Bug Fixes
DRS
Устранена ошибка, вызванная тем, что клиент удалил конечную “1” из эндпоинта DRS, что выглядело так: “127.0.0.1:8081” → “127.0.0.1:808”.
HA
Autoevacuator
Исправлена ситуация, когда процесс эвакуации обрывался, если возникали проблемы с отключением гипервизора, такие как сбой отправки команды отключения, недоступность по сети и т.п.
Admin UI
ВМ Папки:
Использование списка available_flavors при resize теперь такое же, как на странице без папок.
Цвет кнопки “Применить” у диалога действия Edit сделан зеленым, как в других диалогах.
Создание ВМ:
Выбранное значение теперь не сбрасывается после получения списка от сервера.
Сделан уникальным ключ для отрисовки списков, из-за которого возникало предупреждение в консоли.
Устранена ошибка, из-за которой образ отмечался галочкой в правом меню, даже когда еще не был выбран.
Квоты: устранена ошибка у Neutron и Nova, из-за которой в диалоге редактирования не показывались лимиты квот, равные 0.
Status Page: исправлено поведение в ситуации overcommit. Все, что используется сверх нормы, отображается более красным цветом с надписью “Перегружено x”.
Security Groups: в диалоговом окне действия Delete кнопки сделаны по образцу других диалоговых окон удаления.
Drs Configs: при создании и редактировании для metric weight cpu/mem теперь допустимо использовать дробные значения.
Ресурсы:
В диалоговых окнах действия Edit переименовано из “Редактировать” в “Применить”.
Фильтры теперь сохраняют заполненные значения при изменении их количества в выпадающем списке.
Выбранный регион больше не применяется, если его уже нет в списке регионов.
2024.1.1
New Features
Installer
В состав инсталлятора добавлены образа Ubuntu 22.04 и SberLinux 9.2 c поддержкой mdraid.
Upgrade Notes
Installer
Обновлена версия GitLab до 16.8.2.
Обновлена версия Hashicorp Vault до 1.15.5.
Обновлена версия Sonatype Nexus до 3.65.0-02.
Обновлена версия Netbox до 3.7.2-2.8.0.
Обновлена версия Postgres до 1.17.
Пересобраны остальные компоненты.
В дамп для Netbox добавлен новый тег sw_raid для установки ОС на soft raid1.
Bug Fixes
Installer
Исправлена ошибка в пайплане установки Bifrost.
2024.1
New Features
Installer
Обновлен образ с IPA до версии 2023.1.
Удален компонент веб-страницы с данными текущей конфигурацией облачной платформы.
Добавлен поддержка SberLinux 9 в паплайн сборки архива инсталлятора, бандла Nexus.
Добавлены docker-контейнеры LCM, собранные под Ubuntu 22.04 и SberLinux 9.2.
DRS
Начиная с текущей версии, для операций создания и обновления конфигурации не требуется подавать все атрибуты конфигурации в HTTP-запросе. Из всех атрибутов конфигурации обязательным является только “name”. Опциональные атрибуты получают значения по умолчанию, если они не указаны.
Возможно применение всех рекомендаций для определенной оптимизации. Для этого необходимо указать “optimization_id” в теле HTTP POST-запроса в “/migrations”. В ответе сервиса возвращается список запущенных миграций.
В группу конфигурации “database” добавлена опция “sql_debug”, которая регистрирует все SQL-операции DRS.
Гипервизор/виртуальная машина исключаются из оптимизации, если для них нет метрик. При этом в журнале записывается сообщение об ошибке.
Атрибут оптимизации “metrics” заполняется необработанными метриками. Ранее этот атрибут всегда был пустым.
HA
Autoevacuator
Добавлен циклический фенсинг. Фенсинг и эвакуация неисправных вычислительных узлов теперь применяются в периодическом цикле проверки узлов до тех пор, пока администратор не сбросит disabled_reason.
Admin UI
Admin UI Frontend
Добавлена мультирегиональность, новая страница Flavors, а также различные действия (actions) с ВМ, дисками, портами, гипервизорами.
Мультирегиональность: в верхнем меню интерфейса теперь доступен выпадающий список, где можно выбрать регион для отправки всех API-запросов. По умолчанию выбирается первый регион из списка. Данные о выбранном регионе хранятся в localstorage. При смене региона обновляется вся страница.
Авторизация: добавлен выпадающей список доменов на странице авторизации (опционально). Если не выбрать домен, будет выбрано значение “default”.
Flavors: новая страница для флейворов (flavors) в левом меню в списке ресурсов.
Доступно создание флейвора с добавлением необходимых параметров extra_specs.
Доступна таблица списка флейворов и их сортировка по имени.
Доступно действие “Редактировать”, открывающее диалоговое окно изменения значений для description и extra_specs.
Доступна страница конкретного флейвора со всеми параметрами.
Гипервизоры: добавлены действия Enable/Disable maintenance mode, запускающие соответствующие события. Disable доступно при disable_reason=’maintenance mode’, иначе будет предложено Enable.
Список ВМ:
Добавлено действие Live migrate, открывающее диалоговое окно с выбором гипервизора. Действие запускает живую миграцию ВМ на выбранный гипервизор.
Добавлено действие Edit VM, открывающее диалоговое окно, где можно менять значения для следующих параметров ВМ: name, description и hostname.
Добавлено действие Power management, которое открывает доступ к четырем действиям для ВМ: Power on, Shutoff, Soft/Hard reboot.
Добавлены действия Attach/Detach interfaces и соответствующие диалоговые окна. Для Detach необходимо выбрать порт (port) среди портов с device_id выбранной ВМ. Для Attach необходимо либо выбрать существующий порт среди портов с параметром device_id=’’, либо создать новый, выбрав проект (по умолчанию выбран проект ВМ), сеть и фиксированный IP (опционально).
Добавлены действия Attach/Detach volumes с соответствующими диалоговыми окнами и функциями. Для Attach можно выбрать только диски, не привязанные к серверам (пустой список attachmets). Для Detach можно выбрать один из привязанных томов (volume) с параметром booted=’false’.
Порты: добавлено действие Attach/Detach to/from server. Attach открывает диалоговое окно с выбором сервера (server). Действие доступно при параметре device_id=’’. Detach работает при параметре device_id!=’’ и доступно только для ВМ с параметром device_owner=’compute:nova’. Действие открывает подтверждающее диалоговое окно.
Диски:
Добавлено действие Attach/Detach server. Attach server доступно, если нет вложений (attachments), и оно открывает диалоговое окно выбора сервера для прикрепления. Detach server доступно, когда есть вложения и указан параметр bootable=false, и это действие открывает диалоговое окно подтверждения.
Добавлено действие Resize, запускающее диалоговое окно, которое позволяет изменить размер диска в большую сторону.
Добавлено действие Delete, запускающее подтверждающее диалоговое окно.
Kolla
Добавлена поддержка BGP для OVN.
Добавлены следующие контейнеры:
bird
frr
ovn-bgp-agent
В настоящее время поддерживается только базовый дистрибутив Ubuntu.
Kolla-ansible
Добавлен новый компонент prometheus-alertmanager-hpsm, который позволяет отправлять уведомления из alertmanager в Zabbix.
Добавлена поддержка noVNC TLS. Чтобы ее включить, добавьте параметр “yes” в глобальные параметры региона nova_qemu_vnc_tls.
Upgrade Notes
DRS
Изменен формат ответа HTTP POST-запроса на “/migrations”. Теперь он всегда отвечает списком миграций, даже если присутствует только одна миграция.
Операции создания и обновления сущности “job” теперь возвращают все атрибуты “job” из базы данных.
Admin UI
Admin UI Frontend
Гипервизоры:
Переделан диалог отключения сервиса (действие Disable Sevrice). Причина отключения обязательна для указания, добавлено значение по умолчанию “disabled from admin ui”, а также изменены стили отображения.
В таблице у статуса теперь в скобках показывается значение disabled_reason.
При эвакуации (действие Host Evacuate Live) во всплывающем сообщении отображается количество эвакуированных и нетронутых ВМ.
Создание ВМ: у обязательных полей до их заполнения отображаются синие звездочки.
Список ВМ:
При изменении ресурсов ВМ (resize) список флейворов для выбора в диалоговом окне берется из флейворов, доступных для данной ВМ, а не из всех флейворов.
Переделано меню actions. Теперь доступна вложенность, а также изменился цвет текста при наведении на синий.
Порты: добавлен параметр device_owner в таблицу, который отображается в скобках колонки device_id.
DRS Board: добавлена кнопка применения всех рекомендаций.
Bug Fixes
Installer
Дополнен данными дамп БД Netbox с демонстрационными данными.
DRS
Устранен сбой оптимизации, когда опция “исключение из DRS” была включена и некоторые виртуальные машины не были исключены после проведения фильтрации этой опцией.
Устранена ошибка, когда все параметры подключения к базе данных (кроме DB URI) из файла конфигурации не применялись, а вместо этого применялись значения по умолчанию.
Исправлены неточные данные для всех объектов DRS, связанных с пользователями и временными метками — в частности, атрибуты “created_user”, “updated_user”, “created_at”, “updated_at”, “started_at”, “ended_at” и т. д.
Удалены устаревшие параметры из файла конфигурации. Эти параметры не применялись в DRS и мешали работе пользователя.
Исправлена сортировка и фильтрация для всех операций “GET” и “LIST”.
API-методы создания и обновления сущности “job” возвращают все атрибуты “job” из базы данных.
Когда DRS возвращает сообщение об ошибке, DNS-клиент показывает HTTP-код и сообщение, тогда как раньше предоставлялся только HTTP-код ошибки.
Для “optimization” удалено несуществующее поле “updated_at”.
HA
Autoevacuator
Теперь disabled_reason каждого вычислительного узла содержит не просто общую статистику по эвакуированным ВМ, а статистику, сегрегированную по хостам.
Admin UI
Admin UI Frontend
Status Page:
Добавлена анимация загрузки таблицы nodes statuses, пока идет запрос. Ранее отображалось сообщение “No results found”.
Теперь статус disabled у агентов отмечается как ошибочный и выделяется красным цветом, в то время как статус enabled отображается как работающий и поэтому не выделяется красным цветом.
Создание ВМ:
При импорте ключа во время создания ВМ теперь можно сразу использовать ключ либо выбрать его из списка.
При создании флейвора теперь можно убирать поле extra_specs. Кроме того, добавлена валидация на обязательные поля.
Список ВМ: в диалоговом окне действия Delete VM после подтверждения удаления кнопка блокируется до ответа сервера.
Kolla-ansible
Устранены проблемы с ролью AdminUI для версии 2024.1.
Удалены некоторые переменные и добавлены новые переменные.
Добавлен новый файл конфигурации для AdminUI нескольких регионов.
Устранены проблемы с ролью DRS. Обновлены среды для DRS.
Отключен tls_backend для DRS в версии 2024.1.
Исправлена restart_policy в oneshot для bootstrap drs.
2023.2.1
New Features
Installer
Добавлен дамп БД Netbox с демонстрационными данными.
Добавлен сервис бэкапа LCM.
Добавлен сервис обновления репозиториев в GitLab и артефактов в Nexus.
Добавлен паплайн сборки архива инсталлятора, бандла Nexus и архива с обновлениями.
DRS
Добавлена опция конфигурации “after_migrations_pause”, определяющая период времени, в течение которого не запускаются новые оптимизации, если миграции были выполнены в ходе предыдущей оптимизации. Это время необходимо для того, чтобы неверные показатели не собирались сразу после миграции виртуальных машин.
Добавлена поддержка авторизации и SSL-верификации для отправки уведомлений (alerts) в Prometheus Alert Manager. Добавлены новые параметры конфигурации “enable_prometheus_alert_manager_auth”, “prometheus_alert_manager_user” и “prometheus_alert_manager_password” в раздел “alerting” для авторизации. Существующий параметр конфигурации “ssl_verify” в разделе ” DEFAULT” используется для SSL- верификации.
Добавлена возможность обновлять название и период выполнения задания (job).
Добавлено поле статуса гипервизора в оценку гипервизора при оптимизации.
Добавлено поле статуса последней миграции в рекомендацию.
Добавлены детали рекомендации в тело миграции в API.
HA
Redfish
Добавлена поддержка исключения узла через BMC по протоколу Redfish. В конфигурационном файле теперь можно указать тип интерфейса: IPMI или Redfish для работы по соответствующему протоколу.
Admin UI
Admin UI Backend
Добавлены DRS, inventory, квоты для Octavia, логирование трейса ошибок.
DRS:
/drs/recommendations — get-запрос, получение списка рекомендаций;
/drs/recommendations/<string:recommendation_id> — get-запрос, получение рекомендации по id;
/drs/jobs — get-запрос, получение списка заданий (jobs) и post-запрос, создание задания;
/drs/jobs/<string:job_id> — get-запрос, получение задания по ID, а также put-запрос, изменение задания и delete-запрос, удаление задания;
/drs/migrations — get-запрос, получение списка миграций и post-запрос, создание миграции;
/drs/configs — get-запрос, получение списка конфигов и post-запрос, создание конфига;
/drs/configs/<string:config_id> — get-запрос, получение конфига по ID, а также put-запрос, изменение конфига и delete-запрос, удаление конфига;
/drs/optimizations — get-запрос, получение списка оптимизаций;
/drs/optimizations/<string:recommendation_id> — get-запрос, получение оптимизаций по ID.
Octavia quotas:
/quotas/octavia/default — get-запрос, получение дефолтных значений для квот;
/quotas/octavia/<string:project_id> — get-запрос, получение квоты сервиса Octavia для проекта по ID, а также put-запрос, изменение квоты сервиса Octavia для проекта по ID и delete-запрос, сброс квоты сервиса Octavia для проекта по ID.
Nodes:
/nodes — get-запрос, получение списка узлов и post-запрос, добавление узла в inventory-ci;
/nodes/<string:nodename> — get-запрос, получение узла по ID, а также put-запрос, изменение узла и delete-запрос, сброс квоты сервиса Octavia для проекта по ID.
Pipelines:
/pipeline — get-запрос, получение статуса последнего пайплана, а также post-запрос, создане пайплана, в результате чего последовательно запускаются bootstrap и deploy;
/pipeline/<int:pipeline_id> — get-запрос, получение статуса пайплана с указанным ID;
/pipeline/<int:pipeline_id>/stop — post-запрос, остановка пайплана.
Backup_db — внесены изменения, связанные с переходом на новые стенды:
/status_page/backup_db — get-запрос, получение списка бекапов за последнюю неделю.
Добавлена трассировка ошибок, обработанных Admin UI backend.
Доступна поддержка двух способов авторизации в GitLab: логин + пароль и access token.
Admin UI Frontend
Добавлены страницы моделей DRS, страница DRS Board, страница Inventory, страница Quotas, таблица DB Backups а также другие небольшие детали.
Страница DRS:
Страницы списка в таблице каждой модели с выводом основной информации (Configs, Jobs, Optimizations, Recommendations и Migrations). Сортировка от старых к новым.
Страницы таблиц сущностей DRS: Config, Job, Optimization и Recommendation.
Страница Board, отображающая последнюю оптимизацию с таблицей hypervisor_scores, с таблицей рекомендаций этой оптимизации, возможностью запуска миграции по рекомендации (при отсутствии у рекомендации миграций со статусами “Успешно” или “В процессе”) с предупреждением, если оптимизация уже не является последней, а также возможностью просмотреть все миграции у каждой рекомендации.
У некоторых полей моделей добавлена подсказка — описание.
CRUD-операции над сущностями DRS:
Config и Job — C (страница списком), R (страница списком, страница конкретного), U (страница списком), D (страница списком).
Optimization — R (страница списком, страница конкретного).
Recommendation — R (страница списком, страница конкретного, модальное окно списка рекомендаций для конкретной оптимизации на странице оптимизаций).
Migration — C (таблица списка рекомендаций), R (страница списком, таблица списка рекомендации на странице Board).
Quotas: новая страница. Перейти на нее можно из Status page, нажав на кнопку “Квоты проекта”, где будет вывод квот сервиса проекта, лимит и текущее использование с подсветкой красным при превышении лимита.
Доступно редактирование квот сервиса проекта с возможностью выбора дополнительного необязательного параметра у Neutron и Nova (check_limit и force соответственно).
Доступен сброс квот сервиса проекта до стандартных.
Inventory: новая страница, на которой отображается статус пайплайна. На этой странице можно остановить или запустить пайплайн.
Доступен просмотр узлов, возможность изменить и добавить новый, в том числе добавлять и изменять роли (группы) узлов.
Необходимо подтверждение при удалении одной из ролей (групп) узла.
- DB Backups: добавлена таблица на Status page снизу, которая показывает время и статус бэкапов базы данных либо уведомление об их отсутствии в течении последних 7 дней.
Login page: добавлена необязательная возможность выбора домена при авторизации. Для этого необходимо наличие пользователя в любом выбранном домене, кроме Default.
Upgrade Notes
DRS
Параметр конфигурации “db_uri” перенесен из раздела “api” в “database” в файле конфигурации.
Удален аргумент командной строки “mode”.
Для обновления требуется обновление схемы базы данных.
Bug Fixes
Installer
Устранены ошибки в скрипте инсталлятора.
DRS
Значения для функции исключения из DRS и ее типов теперь берутся из конфигурации для задания (job), а не из файла конфигурации.
Устранен сбой в работе оптимизации, возникавший, когда задание ранее было обновлено с включенной авторизацией.
Устранен сбой в работе уведомлений для Prometheus Alert Manager.
Исправлена работа двух фильтров: ServerGroupAffinityFilter и ServerGroupAntiAffinityFilter.
Значения для весов CPU, весов RAM и диапазона времени сбора метрик, а также пороговые значения перегрузки гипервизора теперь берутся из конфигурации для задания, а не из файла конфигурации.
Admin UI
Admin UI Backend
Ошибки при запросе на получение placement url теперь обрабатываются корректно.
/servers — get-запрос выводит инстансы для всех проектов, а до этого выводился только для проекта admin.
/quotas/neutron/<string:tenant_id> — get-запрос, квоты нейтрона выводятся с полем used.
/flavors/<string:flavor_id> — put-запрос, изменение флейвора не имеет обязательных полей.
Изменено неправильное имя запрашиваемой переменной с адресом SSL-сертификата.
Admin UI Frontend
Гипервизоры: в разделе “actions” больше нет взаимоисключающих Disable/Enable, теперь отображается одна опция в зависимости от текущего значения параметра “status”.
Список ВМ: в “actions” больше нет взаимоисключающих Disable/Enable для Evacuation и DRS, теперь отображается по одной опции в зависимости от текущего значения параметра “metadata.no_nrs” и “metadata.no_evacuate”.
Список ВМ: после удаления ВМ новые данные запрашиваются через 2,5 сек. Иначе ВМ все еще отображается как не удаленная.
Создание ВМ: в выпадающем списке security groups крестик заменяет поиск при наличии символов для ввода. До этого крестик отображался правее, чем должен был.
Страница ВМ: на странице конкретной ВМ теперь есть кнопка “назад”, а также есть отображение в заголовке имени ВМ вместе с ошибкой ответа от API (при наличии такой ошибки).
Known issues
DRS
Невозможно отключить функцию “исключения” и ее типы из DRS, если она была включена один раз. Чтобы решить эту проблему, нужно повторно создать конфигурацию.
2023.2
ITKey-компоненты в составе релиза
LCM
Компонент LCM (Life-Cycle Manager) предназначен для управления инсталляциями (экземплярами) KeyStack. LCM реализует следующие функции:
конфигурация регионов (инсталляции KeyStack) — хранение и управление;
предоставление доступа к конфигурационным файлам KeyStack, которые содержат общие настройки для всех регионов, отражающие лучшие практики внедрений OpenStack ITkey;
генерация паролей и SSL сертификатов для регионов;
установка операционной системы и конфигурация физических серверов для добавления в инсталляцию;
подготовка серверов к работе платформы KeyStack (bootstrap);
развертывание регионов KeyStack;
масштабирование регионов — добавление новых серверов с нужными ролями (control, compute, network);
добавление компонентов KeyStack в существующие регионы;
запуск автоматических тестов rally\tempest;
запуск кластера MariaDB после полной перезагрузки слоя управления регионом;
снятие резервных копий БД инсталляции OpenStack по расписанию;
снятие резервных копий компонентов LCM по расписанию;
управление логическим состоянием (наполнением) регионов — образы виртуальных машин (ВМ), типы инстансов, проекты, сети, агрегаты вычислительных узлов;
обновление компонентов инсталляций.
Installer
Netbox
Vault
Nexus
GitLab
Web-сервис с информацией по инсталляции
Nginx — обратный прокси для компонентов LCM
Функции, реализованные в Installer:
Выбор корневого имени домена для сервисов (например, если корневое имя домена — demo.local, то адрес GitLab будет ks-lcm.demo.local, у Nexus — nexus.demo.local, у Netbox — netbox.demo.local, а у Vault — vault.demo.local).
Генерация самоподписанный wildcard-сертификат для сервисов.
Reverse-proxy для сервисов LCM для обеспечения возможности HTTPS-шифрования трафика.
Выбор директории, в которой будут храниться данные и файлы конфигураций компонентов LCM.
Инсталлятор поставляется с архивом для offline-установки, который включает в себя:
архив с пакетами и их зависимостями, необходимыми для установки LCM-компонентов;
докер-образ Nexus;
докер-образ Nginx;
бандл со всеми необходимыми для деплоя OpenStack докер-образами и репозиториями, а также докер-образы для LCM.
Загрузка репозиториев в GitLab, реализующих функции автоматизированного управления инсталляциями KeyStack, и настройка необходимых переменных окружения.
Интеграция с Vault, хранилищем секретов.
Наполнение Vault данными для первичного деплоя — паролями и сертификатами.
DRS
конкретные ВМ (с помощью метаданных ВМ);
все ВМ проектов (с помощью метаданных проекта);
все ВМ с проброшенными PCI-устройствами.
HA
исключения отказавшего узла из кластера Nova (nova service disable);
исключения отказавшего узла из кластера CEPH (osd blacklist);
выключения узла через IPMI (power off).
Admin UI
ВМ:
просмотр списка ВМ в регионе;
создание ВМ (необходим заранее созданный образ), а остальные ресурсы могут быть созданы во время создания ВМ);
изменение размера ВМ (изменение flavor);
включение, отключение сервисов DRS, HA для отдельной ВМ;
управление питанием ВМ;
сброс поля состояния ВМ (reset-state).
Диски:
просмотр списка дисков (volume) в регионе.
Порты:
просмотр списка портов в регионе;
Группы безопасности:
просмотр списка групп безопасности в регионе;
создание групп безопасности;
удаление групп безопасности;
редактирование групп безопасности путем удаления или добавления правил.
Сети:
просмотр списка сетей в регионе;
создание связки “роутер-сеть” (Create routable network — создание маршрутизируемой сети). В результате каждая новая сеть имеет свой роутер, подключенный к внешней сети. Внешнюю сеть необходимо выбрать при создании.
Роутеры:
просмотр списка роутеров в регионе.
Ключевые пары:
просмотр списка ключевых пар.
Гипервизоры:
просмотр списка гипервизоров в регионе;
возможность отключения и включения сервиса nova-compute на отдельных гипервизорах;
возможность живой эвакуации (host evacuate live).
Nexus-offline
Vault
Драйверы Cinder
Horizon с возможностью брендирования
Мониторинг
Алертинг
Ironic
Community-компоненты в составе релиза
Компонент |
Версия |
Release notes |
---|---|---|
IAM |
||
Keystone |
KS2023.2 |
|
Compute |
||
Nova |
KS2023.2 |
|
Placement |
KS2023.2 |
|
SDN |
||
Neutron |
KS2023.2 |
|
Open vSwitch |
3.x |
|
Octavia |
KS2023.2 |
|
Barbican |
KS2023.2 |
|
Storage |
||
Cinder |
KS2023.2 |
|
multipathd |
||
iscsid |
||
tgtd |
||
Image |
||
Glance |
KS2023.2 |
|
UI |
||
Horizon |
KS2023.2 |
|
Orchestration |
||
Heat |
KS2023.2 |
|
DNS |
||
Designate |
KS2023.2 |
|
PowerDNS |
KS2023.2 |
|
LMA |
||
Prometheus |
KS2023.2 |
|
Prometheus exporters:
|
||
Fluentd |
||
Opensearch |