KeyStack 2024.3 Release Notes
=============================

New Features
------------

-  Добавлена поддержка Sberlinux 9.4.0.
-  Добавлена поддержка bird для Sberlinux.
-  Добавлена возможность настройки зависимостей между сервисами KeyStack (systemd unit-файлы сервисов платформы).
-  Добавлена зависимость сервиса neutron-openvswitch-agent от сервиса openvswitch-db.
-  LMA: 

  -  Добавлен multipath-exporter и правила уведомлений (алертов) на появление сбойных устройств и путей.
  -  Добавлен consul-exporter и правила уведомлений на появление сбойных устройств и путей.
  -  В вывод openstack exporter добавлены метрики: openstack_cinder_pool_info, openstack_cinder_pool_capacity_allocated_gb, openstack_nova_server_net_info.
  -  Добавлены правила алертов Cinder на заполнение cinder volume, на длительное нахождение тома в статусе attaching, а также на длительное нахождение тома в статусе error.
  -  Добавлено правило алерта по повторяющимся IP-адресам ВМ.
  -  Для blackbox exporter добавлены правила мониторинга и алертов статуса доступности эндпоинтов Grafana, AdminUI, Horizon, Opensearch dashboard, GitLab и nova-api.
  -  Шаблон для рассылки почтовых уведомлений с алертами скорректирован и переименован в default_email.tmpl. Добавлены ссылки на Grafana и Horizon. 
  -  Доработаны дашборды KS — VM Overview, KS — Node Overview, KS — SSL Certificate Monitor. Также добавлены дашборды KS — AZ Overview, KS — AZ Graph, KS — Volume Overview, Consul Dashboard.

-  На шаге bootstrap-servers в случае изменения конфигурационного файла docker daemon.json будет выполнено действие Reload вместо Restart, что гарантированно не вызовет перезапуска контейнеров.
-  Добавлено шифрование резервных копий базы данных MariaDB регионов KeyStack.
-  Добавлена настройка параметров sysctl-окружения. Для включении функции требуется установить ``sysctl_enabled: "true"`` в host_config/host-config.yml региона.
-  Добавлена возможность настройки firewalld для ограничения доступа к портам Public endpoint. Для включения необходимо выставить ``disable_firewall: False``.
-  Добавлена возможность сбора журналов событий в формате CADF. Для включения функции требуется указать в конфигурационном файле региона ``enable_cadf_audit: "yes"``.
-  Добавлена поддержка СХД TATLIN.UNIFIED Gen1, Gen2 с ПО версии 3.1 и выше. Cinder драйвер версии 24.07.

Admin UI
~~~~~~~~

- CADF-события: 

  -  Добавлена новая страница "CADF-события", где показана таблица событий аудита с фильтрами и возможностью скачать CSV. Эта страница располагается в подпункте "Логирование" в левом меню. Туда же перенесена предыдущая страница "Логирование" с переименованием в "Opensearch". 
  -  Фильтры на этой странице сохраняются в URL в виде query-параметров. При заходе на страницу по подобному URL фильтры из query-параметров будут сразу же применяться к данным в таблице. Также при повторном заходе на страницу будут применяться последние примененные фильтры.

- Добавлена новая страница "Конфиги", где доступна секция "NTP Config", отвечающая за показ и редактирования файла конфига NTP. Эта страница располагается в подпункте "Настройки региона" в левом меню, туда же перенесена "Inventory". 
- Header страницы: добавлен выпадающий список с выбором проекта глобально. 
- Список виртуальных машин (далее ВМ): 

  -  Добавлен прогресс бар для миграций ВМ с состояниями Preparing, Running и Ending. Preparing и Running — стандартные состояния миграций, Ending — состояние, которое появляется, когда в списке серверов ВМ все еще отображается со статусом MIGRATING, но по факту миграция уже закончена. У состояния Preparing помимо прогресс бара отображается только прошедшее время с начала миграции, у Running — прошедшее время и прогресс в виде процентов, а у Ending — только прогресс бар.
  -  Новое действие Migrate to region с диалоговым окном выбора региона, проекта, сети и с кнопкой запуска.
  -  Убран из списка фильтров project_id. Список ВМ теперь фильтруется по глобальному проекту по умолчанию.
  -  Добавлены новые фильтры по LUN ID, Port ID и MAC address.

- Диски: 

  -  Добавлена возможность создания Volume через Snapshot. Также остается возможность, как и ранее, создавать его пустым.
  -  Убран из списка фильтров project_id. Список дисков теперь фильтруется по глобальному проекту по умолчанию.
  -  Добавлена страница для просмотра конкретного вложения (attachment) по ссылке из поля в таблице.

- Snapshots: список снимков теперь фильтруется по выбранному глобально проекту.
- Порты: убран из списка фильтров project_id. Cписок портов теперь фильтруется по глобальному проекту по умолчанию. 
- Сети: список сетей теперь фильтруется по глобальному проекту. 
- Flavors: добавлено действие "Удалить flavor" с подтверждающим диалоговым окном.
- Drs Configs: 

  -  В таблицу добавлен столбец, показывающий значение algorithm.
  -  В таблицу добавлен столбец, показывающий список заданий (job) у конкретного config.

- Drs Jobs: добавлено поле availability_zone при создании jobs. При выборе ограничивает работу задания только в выбранной зоне доступности (AZ). Добавлен столбец с соответствующим полем в таблицу.
- Drs Optimizations: в таблице списка уменьшен внутренний отступ кнопки "Посмотреть рекомендации".
- Гипервизоры:

  -  Добавлено действие Abort entering maintenance mode. Доступно, если admin_state='EnteringMaintenanceMode'.
  -  Добавлен столбец admin_state, показывающий service.admin_state и service.error_details, связанные с режимом обслуживания (Maintenance mode).
  -  Действия Enable/Disable Service больше не будут доступны, если гипервизор в режиме обслуживания.

- Переписаны логи: добавлены имя пользователя и его id, убран pid, скрыты успешные get-запросы, добавлена информация о не переехавших на другой хост ВМ и добавлен счетчик не переехавших ВМ. Также скрыты пароли, описание действия заключено в кавычки, добавлены события таймаута сессии пользователя и логи для maintenance mode.
- Оптимизировано поведение диалоговых окон, списков, фильтров и пунктов меню.

HA
~~~

- Доступна поддержка дополнительной конфигурации логирования через отдельный файл oslo.config посредством стандартной переменной log_config_append в основном конфигурационном файле.
- Повторное выполнение запросов на эвакуацию ВМ на случай 500-ых и 409-ых ошибок от nova-api.
- Изменены тела уведомлений prometheus (alertmanager): доступны новые поля summary, az, node.
- Добавлена функция отключения (openstack compute service set --disable) вычислительного узла и отправки prometheus alert с префиксом BOND_DISABLED, если указанный в конфигурации интерфейс bond на этом вычислительном узле (все его slave-интерфейсы) длительное время находится в состоянии down. Управляется параметрами enable_bond_check и bond_name.

DRS
~~~

- В ответ списка файлов конфигурации добавлено вложенное поле "job" со списком связанных заданий (jobs).
- Доступен перевод DRS backend на wsgi, а также оптимизация инфраструктуры запуска веб-сервера.
- Задача job теперь может быть запущена с ограничением на зону доступности, а не на всех вычислительных узлах региона.

Nova
~~~~

- Добавлена поддержка последовательной эвакуации ВМ в affinity сервер-группе. Такие ВМ эвакуируются на один вычислительный узел и сохранят взаимную локальность.
- Доступны новые поля admin_state и error_details в сущности compute service, используемые для регистрации переходных состояний и ошибок compute service в процессе его ввода в Maintenance Mode.

Cinder
~~~~~~

- Добавлена поддержка создания и получения дополнительной информации об объекте ресурса, находящегося в проекте, отличном от scope токена авторизации.

Security 
~~~~~~~~

- Добавлена интеграция Horizon c Vault для возможности хранения SECRET_KEY в защищенном хранилище.

Upgrade Notes
-------------

-  Библиотека urllib3 обновлена до версии 1.26.18.
-  Библиотека typing_extensions обновлена до версии 4.8.0.
-  Kolla-ansible обновлена до версии 16.7.0.
-  Kolla обновлена до версии 16.6.0.
-  Heat выключен по умолчанию. Для включения компонента необходимо указать ``enable_heat: "yes"`` в REGION.yml — конфигурационном файле региона.
-  LMA: в существующие регионы необходимо добавить секцию ``prometheus-multipath-exporter`` в inventory-файл региона с группами control, compute.
-  LMA: в существующие регионы необходимо добавить секцию ``prometheus-consul-exporter`` в inventory-файл региона с группой consul-server.
-  LMA: в существующие регионы в секцию ``prometheus-blackbox-exporter`` необходимо добавить группу compute в inventory-файл региона.
-  LMA: для использования VictoriaMetrics в существующие регионы необходимо добавить секцию ``victoriametrics`` в inventory-файл региона с группой monitoring.
-  При обновлении существующих регионов в passwords.yml необходимо добавить новый ключ opensearch_initial_admin_password и присвоить любое значение.

Bug Fixes
---------

-  Исправлена ошибка невозможности отключения SAN дисков (multipathd del map) при миграции виртуальных машин. Подробности см. по `ссылке <https://bugs.launchpad.net/kolla-ansible/+bug/2078973>`__.
-  Исправлена ошибка, из-за которой не было возможности провести конфигурацию Octavia o-hm0 порта для взаимодействия Octavia Health Manager с экземплярами Amphora для больших инсталляций. Подробности см. по `ссылке <https://bugs.launchpad.net/kolla-ansible/+bug/2067036>`__.
-  Исправлено поведение при перезапуске docker.service: возвращена возможность не перезапускать контейнеры вместе со службой docker.service. Подробности см. по `ссылке <https://bugs.launchpad.net/kolla-ansible/+bug/2065168>`__.

Admin UI
~~~~~~~~

-  Snapshots: при редактировании snapshot убрана обязательность поля description.
-  Security Groups: при редактировании security group убрана обязательность поля description.
-  Configs: исправлена валидация полей весов. Теперь они обновляются синхронно. Добавлена middleware для синхронизированной валидации полей в диалоговых окнах.
-  Users: починена установка значения выбранного домена при открытии диалога редактирования пользователя.
-  Исправлена ошибка, из-за которой не было возможности эвакуировать ВМ, если она создана не в admin-проекте.
-  Исправлена ошибка, из-за которой неверно формировался список доступных AZ при создании диска.
-  Исправлена ошибка, из-за которой не было возможности залогиниться в созданный домен.

DRS
~~~

- Исправлена ошибка, возникавшая при получении списка заданий с использованием сортировки.
- Регистронезависимая обработка значения ключа no_drs метаданных ВМ.
- Исправлено разрешение вложенной ссылки на оптимизацию внутри тела рекомендации.

Nova
~~~~

- Исправлена ошибочная смена AZ у ВМ, чья live-миграция была отменена либо завершилась неудачно.
- Добавлена возможность создавать две одноименных сервер-группы в разных проектах.

Security 
~~~~~~~~

- Устранены уязвимости, описанные в OpenStack Security Advisories: `OSSA-2024-001 <https://security.openstack.org/ossa/OSSA-2024-001.html>`__, `OSSA-2024-002 <https://security.openstack.org/ossa/OSSA-2024-002.html>`__.
- Все компоненты OpenStack обновлены до последних актуальных версий для релиза Antelope.

Known Issues
------------

AdminUI
~~~~~~~

- При наличии старых файлов конфигурации DRS или DRS Jobs соответствующие страницы показывают ошибку, это не позволяет видеть список имеющихся файлов конфигурации/jobs, редактировать и удалять их, но не влияет на работу DRS. В качестве компенсирующей меры нужно выполнить следующее: очистить таблицы в базе данных (БД) DRS (при этом пропадут текущие файлы конфигурации и jobs), а затем создать требуемые файлы конфигурации/jobs снова. 

HA
~~~

- Некоторые из запросов в Keystone и Nova пока не выполняются повторно при 500-ых ошибках.
- Необходимо добавить переменную NETBOX_TOKEN со значением токена из Netbox в Vault по адресу deployments/secrets/accounts.

DRS
~~~

- Проверка вместимости виртуальных ядер на целевом вычислительном узле отключена в рамках воркэраунда ошибки имитации логики cpu-allocation-ratio: отключена проверка, что вычислительный узел вмещает vCPU флейвора ВМ, которые на него предполагается мигрировать.

Deployment 
~~~~~~~~~~

- В шаблоне региона Region1 необходимо добавить секцию ``prometheus-consul-exporter`` в inventory- файл региона с группой consul-server.
- Пайплайн Deploy иногда может завершаться с ошибкой на задаче TASK [octavia : Copying over octavia.conf]. В случае ошибки нужно запустить Retry задачи.
- При деплое OpenSearch иногда возникает ошибка TASK: [opensearch : Check if a log retention policy exists]. В случае ошибки необходимо создать индекс вручную. Подробности см. по `ссылке <https://docs.keystack.ru/latest/keystack_installation/instructions_for_installing.html#id19>`__. 

Alertmanager 
~~~~~~~~~~~~

- Правило алерта MTU mismatch не работает при типах сетей, отличных от flat и vlan.