diff --git a/CHANGELOG.md b/CHANGELOG.md index a0e10f2..f393d03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,170 +1,10 @@ -# Список изменений в версии 11.0.0 +# Список изменений в версии 11.0.1 ## Добавлено -### Глобально -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-909 | В системные требования добавлена библиотека Python `dynamix_sdk`. | -| BANS-918 | Добавлен общий для всех модулей параметр `ignore_api_compatibility`. | -| BANS-913 | Добавлен общий для всех модулей параметр `ignore_sdk_version_check`. | -| BANS-954 | Добавлен модуль `decort_vm` в связи с переименованием из `decort_kvmvm`. | -| BANS-953 | Добавлен модуль `decort_image` в связи с переименованием из `decort_osimage`. | -| BANS-997 | Добавлен модуль `decort_security_group_list`, позволяющий получить список доступных групп безопасности. | -| BANS-884 | Добавлен модуль `decort_disk_list`, позволяющий получить список доступных дисков. | -| BANS-936 | Добавлен модуль `decort_rg_list`, позволяющий получить список доступных ресурсных групп. | -| BANS-949 | Добавлен модуль `decort_vins_list`, позволяющий получить список доступных внутренних сетей. | -| BANS-940 | Добавлен модуль `decort_vm_list`, позволяющий получить список доступных виртуальных машин. | -| BANS-959 | Добавлен модуль `decort_flip_group_list`, позволяющий получить список доступных групп с плавающим IP-адресом. | -| BANS-952 | Добавлен модуль `decort_image_list`, позволяющий получить список доступных образов. | -| BANS-983 | Добавлен модуль `decort_account_list`, позволяющий получить список доступных аккаунтов. | -| BANS-985 | Добавлен модуль `decort_audit_list`, позволяющий получить список аудитов. | -| BANS-988 | Добавлен модуль `decort_trunk_list`, позволяющий получить список доступных транковых портов. | -| BANS-987 | Добавлен модуль `decort_zone_list`, позволяющий получить список доступных зон. | -| BANS-989 | Добавлен модуль `decort_storage_policy_list`, позволяющий получить список политик хранения. | -| BANS-945 | Добавлен модуль `decort_user` в связи с переименованием из `decort_user_info`. | - -### Модуль decort_vm -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-926 | Для параметра `chipset` добавлено значение по умолчанию `Q35` при создании ВМ. | -| BANS-933 | Добавлено возвращаемое значение `pinned_to_node` в связи с переименованием из `pinned_to_stack`. | -| BANS-934 | Добавлено возвращаемое значение `read_only`. | -| BANS-994 | Добавлена возможность задать параметр `mtu` при создании сетевого интерфейса для TRUNK-сети и изменить `mtu` у существующего интерфейса, подключённого к TRUNK-сети. | -| BANS-991 | Добавлена возможность указать параметр `ip_addr` при присоединении и изменении `DPDK` сети. | -| BANS-1017 | Добавлено возвращаемое значение `disks.cache`. | -| BANS-1034 | Добавлена возможность указать параметр `ip_addr` при присоединении и изменении `VFNIC` сети. | -| BANS-992 | Добавлен параметр `networks.net_prefix`. | - -### Модуль decort_group -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-927 | Для параметра `chipset` добавлено значение по умолчанию `Q35` при создании группы. | - -### Модуль decort_k8s -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-928 | Для параметра `chipset` добавлено значение по умолчанию `Q35` при создании кластера. | - -### Модуль decort_account -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-966 | Добавлен параметр `get_resource_consumption` и возвращаемое значение `resource_consumption`. | - -### Модуль decort_trunk -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-993 | Добавлено возвращаемое значение `mtu`. | -| BANS-976 | Добавлены возвращаемые значения `created_datetime`, `deleted_datetime`, `updated_datetime`. | - -### Модуль decort_zone -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-970 | Добавлены возвращаемые значения `created_datetime`, `updated_datetime` и возвращаемые значения `account_ids`, `bservice_ids`, `vm_ids`, `extnet_ids`, `k8s_ids`, `lb_ids`, `vins_ids` в связи с переименованием из `accountIds`, `bserviceIds`, `computeIds`, `extnetIds`, `k8sIds`, `lbIds`, `vinsIds`. | -| BANS-1024 | Добавлено возвращаемое значение `node_auto_start`. | - -### Модуль decort_vm_snapshot -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-978 | Добавлено возвращаемое значение `datetime`. | - -### Модуль decort_storage_policy -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-977 | Добавлены возвращаемые значения `sep_name`, `sep_tech_status`. | - -### Модуль decort_disk -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-1019 | Добавлено возвращаемое значение `cache_mode`. | -| BANS-1050 | Добавлено возвращаемое значение `blkdiscard`. | ## Удалено -### Глобально -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-954 | Удалён модуль `decort_kvmvm` в связи с переименованием в `decort_vm`. | -| BANS-969 | Модуль `decort_account_info` расформирован, его функционал перенесён в модули: `decort_disk_list`, `decort_rg_list`, `decort_vins_list`, `decort_vm_list`, `decort_flip_group_list`, `decort_image_list`, `decort_account`. | -| BANS-953 | Удалён модуль `decort_osimage` в связи с переименованием в `decort_image`. | -| BANS-945 | Удалён модуль `decort_user_info` в связи с переименованием в `decort_user`. | - -### Модуль decort_account -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-924 | Удалён параметр `quotas.ext_traffic`. | -| BANS-998 |Для параметра `state` удалено значение по умолчанию. | - -### Модуль decort_rg -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-925 | Удалён параметр `quotas.net_transfer`. | - -### Модуль decort_vm -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-926 | Для параметра `chipset` удалено значение по умолчанию `i440fx` при создании ВМ. | -| BANS-933 | Удалено возвращаемое значение `pinned_to_stack` в связи с переименованием в `pinned_to_node`. | -| BANS-961 | Параметр `storage_policy_id` удалён из обязательных при пересоздании загрузочного диска. | - -### Модуль decort_group -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-927 | Для параметра `chipset` удалено значение по умолчанию `i440fx` при создании группы. | -| BANS-1027 | Удалён параметр `driver`. | - -### Модуль decort_k8s -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-928 | Для параметра `chipset` удалено значение по умолчанию `i440fx` при создании кластера. | - -### Модуль decort_user -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-983 | Удалён параметр `accounts` и возвращаемое значение `accounts` в связи с переносом этой функциональности в модуль `decort_account_list`. | -| BANS-985 | Удалён параметр `audits` и возвращаемое значение `audits` в связи с переносом этой функциональности в модуль `decort_audit_list`. | -| BANS-988 | Удалён параметр `trunks` и возвращаемое значение `trunks` в связи с переносом этой функциональности в модуль `decort_trunk_list`. | -| BANS-987 | Удалён параметр `zones` и возвращаемое значение `zones` в связи с переносом этой функциональности в модуль `decort_zone_list`. | -| BANS-989 | Удалён параметр `storage_policies` и возвращаемое значение `storage_policies` в связи с переносом этой функциональности в модуль `decort_storage_policy_list`. | -| BANS-997 | Удалён параметр `security_groups` и возвращаемое значение `security_groups` в связи с переносом этой функциональности в модуль `decort_security_group_list`. | - -### Модуль decort_zone -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-970 | Удалены возвращаемые значения `accountIds`, `bserviceIds`, `computeIds`, `extnetIds`, `k8sIds`, `lbIds`, `vinsIds` в связи с переименованием в `account_ids`, `bservice_ids`, `vm_ids`, `extnet_ids`, `k8s_ids`, `lb_ids`, `vins_ids`. | - -### Модуль decort_disk -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-1004 | Удалён параметр `reason` | - -### Модуль decort_security_group -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-1000 | Удалено возвращаемое значение `rules.remote_ip_prefix` в связи с переименованием в `rules.remote_net_cidr`. | -| BANS-1013 | Удален параметр `rules.objects.remote_ip_prefix` в связи с переименованием в `rules.objects.remote_net_cidr`. | - -### Модуль decort_vm_snapshot -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-1012 | Удалено возвращаемое значение `disks` в связи с переименованием в `disk_ids`. | ## Исправлено -### Модуль decort_vm | Идентификатор
задачи | Описание | | --- | --- | -| BANS-996 | Параметры `mac`, `security_groups`, `enable_secgroups`, `enabled` сетевого интерфейса DPDK-сети могли меняться при изменении `mtu`. | -| BANS-1052 | Параметры `numa_affinity`, `cpu_pin`, `hp_backed` не применялись при создании ВМ без образа. | - -### Модуль decort_bservice -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-389 | После создания базовой службы, модуль не возвращал информацию о созданном объекте. | - -### Модуль decort_vm_snapshot -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-1022 | После создания снимка не возвращалась информация о снимке. | - -### Модуль decort_k8s -| Идентификатор
задачи | Описание | -| --- | --- | -| BANS-1033 | Модуль без необходимости выполнял запрос к API `/cloudapi/k8s/update`, передавая в него параметры, не вызывающие изменения. | +| BANS-1173 | Модуль завершал работу ошибкой запроса к API при попытке добавить группу worker-узлов к существующему кластеру. | diff --git a/library/decort_k8s.py b/library/decort_k8s.py index b320b6b..d45f199 100644 --- a/library/decort_k8s.py +++ b/library/decort_k8s.py @@ -215,6 +215,7 @@ class decort_k8s(DecortController): self.k8s_workers_modify( arg_k8swg=self.k8s_info, arg_modwg=target_wgs, + storage_policy_id=self.aparams['storage_policy_id'], ) self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id) return @@ -257,7 +258,10 @@ class decort_k8s(DecortController): self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id) #check groups and modify if needed if self.aparams['workers'] is not None: - self.k8s_workers_modify(self.k8s_info, self.amodule.params['workers']) + self.k8s_workers_modify( + arg_k8swg=self.k8s_info, + arg_modwg=self.amodule.params['workers'], + ) aparam_zone_id = self.aparams['zone_id'] if aparam_zone_id is not None and aparam_zone_id != self.k8s_info['zoneId']: diff --git a/module_utils/decort_utils.py b/module_utils/decort_utils.py index fdb46b0..fa908b3 100644 --- a/module_utils/decort_utils.py +++ b/module_utils/decort_utils.py @@ -43,7 +43,7 @@ class DecortController(object): _api: sdk_types.API | None = None _usermanager_whoami_result: None | dict = None - ANSIBLE_MODULES_VERSION = '11.0.0' + ANSIBLE_MODULES_VERSION = '11.0.1' COMPATIBLE_SDK_MINOR_VERSION = '1.4' VM_RESIZE_NOT = 0 @@ -5537,7 +5537,12 @@ class DecortController(object): self.result['changed'] = False return - def k8s_workers_modify(self,arg_k8swg,arg_modwg): + def k8s_workers_modify( + self, + arg_k8swg, + arg_modwg, + master_node_storage_policy_id: int | None = None, + ): self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "k8s_workers_modify") @@ -5651,6 +5656,12 @@ class DecortController(object): 'annotations': wg_to_create['annotations'], 'userData': json.dumps(wg_to_create['ci_user_data']), 'chipset': wg_to_create['chipset'], + 'storage_policy_id': ( + master_node_storage_policy_id + or self.k8s_get_master_node_storage_policy_id( + k8s_info=arg_k8swg, + ) + ), } wg_add_response = self.decort_api_call( arg_req_function=requests.post, @@ -5807,6 +5818,19 @@ class DecortController(object): self.set_changed() return api_response.json() + def k8s_get_master_node_storage_policy_id(self, k8s_info: dict) -> int: + master_nodes_info = k8s_info['k8sGroups']['masters'][ + 'detailedInfo' + ] + if not master_nodes_info: + raise ValueError( + f'No master nodes found in K8s cluster ID {k8s_info['id']}' + ) + _, master_node_info, _ = self._compute_get_by_id( + comp_id=master_nodes_info[0]['id'] + ) + return master_node_info['disks'][0]['storage_policy_id'] + ############################## # # Bservice management