# Модуль decort_k8s ## Обзор модуля decort_k8s Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes: - создать - получить информацию - отключить/включить/запустить - изменить группы Worker-узлов - удалить (в корзину или безвозвратно) - восстановить из корзины ## Параметры модуля decort_k8s Ниже приведен полный список параметров для модуля **decort_k8s**: | Параметр | Тип, допустимые значения | Описание | | ------ | ------ | ------ | | account_id | (int) | Идентификатор аккаунта. | | account_name | (string) | Имя аккаунта. | | additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена. | app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. | | app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. | | authenticator | (str)
Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. | | cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. | | controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. | | description | (string)
Default: `Created by decort ansible module` | Описание кластера. | | extnet_id | (int)
Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). | | extnet_only | (bool)
Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. | | getConfig | (bool)
Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. | | ha_lb | (bool)
Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). | | id | (int) | Идентификатор кластера Kubernetes. | | init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации. | join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. | | jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. | | k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. Обязательный параметр. | | kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. | | kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. | | master_count | (int)
Default: `1` | Количество Master-узлов. | | master_cpu | (int)
Default: `2` | Количество виртуальных процессоров на Master-узле. | | master_disk | (int)
Default: `10` | Объём загрузочного диска на Master-узле. | | master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. | | master_ram | (int)
Default: `2048` | Объём оперативной памяти на Master-узле. | | master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. | | name | (string) | Имя кластера Kubernetes. | | network_plugin | (str)
Значения:
`flannel`
`calico`
`weavenet`
Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) | | oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | | oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера. | permanent | (bool)
Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). | | rg_id | (int) | Идентификатор ресурсной группы. | | rg_name | (str) | Имя ресурсной группы. | | started | (bool)
Default: `true` | Автоматический запуск кластера после его создания. | | state | (string)
Значения:
`present`
`absent`
`enabled`
`disabled`
`check`
Default: `present` | Целевое состояние кластера. | | verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | | vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется. | with_lb | (bool)
Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети. | workers | (list) | Обязательный параметр. Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`
• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init
• `cpu` (int) (обязательный) - количество виртуальных процессоров на узле
• `disk` (int) (обязательный) - объём загрузочного диска на узле
• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`
• `name` (string) (обязательный) - имя группы Worker-узлов
• `num` (int) (обязательный) - количество узлов
• `pool` (str) (обязательный) - пул СХД, заданной ключом `sep_id`
• `ram` (int) (обязательный) - объём оперативной памяти на узле
• `sep_id` (int) (обязательный) - идентификатор СХД; если задать `null`, то используется СХД образа узла
• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule` | ## Возвращаемые значения модуля decort_k8s Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами: | Ключ | Тип данных | Описание | | ------ | ------ | ------ | | account_id | int | Идентификатор аккаунта. | | config | str | Kuber config кластера. | id | int | Идентификатор кластера. | | k8s_Masters | dict | Словарь с информацией о группе Master-узлов.
Ключи словаря:
• `cpu` (int) - количество виртуальных процессоров
• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ
• `disk` (int) - объём загрузочного диска
• `id` (int) - идентификатор группы
• `name` (str) - имя группы
• `num` (int) - количество узлов
• `ram` (int) - объём оперативной памяти | k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.
Ключи словаря:
• `cpu` (int) - количество виртуальных процессоров
• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ
• `disk` (int) - объём загрузочного диска
• `id` (int) - идентификатор группы
• `labels` (list) - список строк с labels
• `name` (str) - имя группы
• `num` (int) - количество узлов
• `ram` (int) - объём оперативной памяти
• `taints` (list) - список строк с taints | name | string | Имя кластера. | | rg_id | int | Идентификатор ресурсной группы. | | state | string | Статус кластера. | | techStatus | string | Технический статус кластера. | | vins_id | int | Идентификатор внутренней сети кластера. | ## Пример использования модуля decort_k8s Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config. ``` - name: Create a k8s cluster named cluster-test decort_k8s: authenticator: jwt controller_url: "https://ds1.digitalenergy.online" getConfig: true jwt: "{{ token.jwt }}" k8ci_id: 18 name: cluster-test rg_id: 125 workers: - cpu: 10 disk: 10 name: wg1 num: 1 pool: null ram: 1024 sep_id: null - cpu: 10 disk: 10 name: wg2 num: 2 pool: null ram: 1024 sep_id: null register: k8s_cluster ```