KeyStack 2024.2 Release Notes

KeyStack 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", а все поля события теперь заполнены.

  • Добавлены в prometheus поля уведомления для Alertmanager (+ severity, az, vm_uuid, source_hypervisor).

Nova

  • Добавлены фильтры "created-since", "created-before", "deleted-since", "deleted-before" в API списка инстансов.

Cinder

  • Улучшена производительность драйвера Huawei FC при обработке одновременных операций присоединения и отсоединения дисков на одном и том же гипервизоре.

Upgrade Notes

  • Если в проекте не менялись квоты, то обновление поменяет их значения во всех проектах (включая admin и service) на значения OpenStack по умолчанию:

    rbac_policies    10
    routers          10
    floating-ips     50
    secgroup-rules   100
    secgroups        10
    networks         100
    ports            500
    subnets          100
    

Admin UI

  • Добавлена переменная region_names в секцию [DEFAULT] конфигурационного файла adminui-backend-regions.conf. Для подключения регионов KeyStack к AdminUI необходимо добавить список названий регионов в переменную "region_names" через запятую.

Bug Fixes

  • Исправлена ошибка, из-за которой было невозможно восстановить AMQP при потере одного из участников RMQ. Подробности см. по ссылке.

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).

KeyStack 2024.2

New Features

  • Добавлена поддержка SberLinux 9.3.3.

  • Драйвер Cinder-volume Huawei обновлен до версии 2.6.4.

  • Добавлена возможность загрузки пользовательских образов Glance через механизм tf_states.

  • Добавлена возможность проксирования HTTP-заголовков X-Forwarded-IP, X-Client-IP, X-Real-IP в Octavia.

  • Библиотека oslo.lib обновлена до версии 5.3.1.

  • Библиотека castellan обновлена до версии 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" на актуальную — 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, что позволяет возвращаться на страницу авторизации.

  • Исправлена swagger-документация для списка ролей.

  • Поле TARGET_HYPERVISOR_SOFT_LIMIT стало необязательным для обновления файла конфигурации DRS. Ранее при отсутствии значения для него возникала ошибка.

  • Устранена ошибка, в результате которой возвращался неверный код исключения.

  • Исправлен put-запрос /servers/<string:server_id>/drs/enable, не работавший ранее из-за неверных метаданных.

DRS

  • Исправлены валидации полей периода задания (job) и имени алгоритма файла конфигурации.

  • Проверка существования TLS-сертификата, указанного в файле конфигурации, теперь проводится при запуске сервиса.

Known Issues

  • Перезапуск службы docker приводит к перезапуску всех контейнеров платформы на хосте. Подробности см. по ссылке LP#2065168.