# 03.10 Модуль decort_k8s ## Обзор модуля decort_k8s Модуль decort_k8s предназначен для выполнения следующих действий над кластерами Kubernetes, созданными в облачной платформе DECORT: - Создание/удаление кластера Kubernetes. - Enable/Disable кластера Kubernetes. - Запуск/Остановка кластера Kubernetes - Модификация кластера Kubernetes - Получение идентификатора образа Kubernetes по имени образа. ## Параметры модуля decort_k8s Ниже приведен полный список параметров для модуля decort_k8s: | Параметр | Тип, допустимые значения | Описание | | ------ | ------ | ------ | | app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_APP_ID. | | app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. | | authenticator | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | | controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным. | | jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме authenticator: jwt Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.| | oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | | verify_ssl | (bool) | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | | workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована. | | workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована. | | account_id | (int) | Уникальный целочисленный идентификатор аккаунта, к которому привязан кластер. | | account_name | (string) | Имя аккаунта, к которому привязан кластер. | | annotation | (string) | Аннотации для рабочих групп в кластере Kubernetes. | | quotas | (dict) | Библиотека, содержащая квоты. | | state | (string) | Состояние кластера. Поддерживаемые состояния: absent, disabled, enabled, present,check. | | permanent | (bool) | Параметр, отвечающий за полное удаление кластера. При значениие `True` кластер будет полностью удалён, при значении `False` кластер будет перемещён в корзину. | | started | (bool) | Параметр, отвечающий за запуск кластера после создания. При значении `True`, после создания кластер будет автоматически запущен. | | name | (string) | Имя кластера Kubernetes. | | id | (int) | Уникальный целочисленный идентификатор кластера Kubernetes, позволяющий удалять, изменять и получать сведения о кластере Kubernetes. | | getConfig | (bool) | Параметр, передающий конфигурационный файл кластера Kubernetes, при значении `True`. | | rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, в которой находится кластер Kubernetes. | | rg_name | (int) | Имя ресурсной группы, в которой находится кластер Kubernetes. | | k8ci_id | (int) | Уникальный целочисленный идентификатор образа кластера Kubernetes. | | wg_name | (string) | Имя рабочей группы. В кластере может быть несколько рабочих групп. | | master_count | (int) | Количество master узлов в рабочей группе. По умолчанию: `1`| | master_cpu | (int) | Количество ядер процессора на каждом master узле. По умолчанию: `2` | | master_ram_mb | (int) | Объём оперативной памяти на каждом master узле. По умолчанию: `2048` | | master_disk_gb | (int) | Объём жесткого диска на каждом master узле. По умолчанию: `10` | | worker_count | (int) | Количество worker узлов в рабочей группе. По умолчанию: `1`| | worker_cpu | (int) | Количество ядер процессора на каждом worker узле. По умолчанию: `1` | | worker_ram_mb | (int) | Объём оперативной памяти на каждом worker узле. По умолчанию: `1024` | | worker_disk_gb | (int) | Объём жесткого диска на каждом worker узле. По умолчанию: `10` | | workers | (dict) | Библиотека, в которой необходимо указывать рабочие группы и их параметры. См. пример 13.4 | | extnet_id | (int) | Уникальный целочисленный идентификатор внешней сети, к которой будет подключен кластер при создании. По умолчанию: `0` | | description | (string) | Описание кластера. По умолчанию: `Created by decort ansible module` | | with_lb | (bool) | Отвечает за создание Load Balancer при создании кластера. По умолчанию: `True` | ## Возвращаемые значения модуля decort_k8s Модуль decort_k8s возвращает информацию о кластере в виде словаря facts со следующими ключами: | Ключ | Тип данных | Описание | | ------ | ------ | ------ | | id | int | Уникальный целочисленный идентификатор данного кластера. | | name | string | Имя данного кластера. | | techStatus | string | Технический статус кластера. Возможные технические статусы кластера: STARTED, DELETED, STOPPED, CREATED, , DISABLED, ENABLED, RESTORED, MODELED.| | state | string | Текущий статус кластера. Поддерживаемые состояния: absent, disabled, enabled, present,check. | | rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится данный кластер. | | account_id | int | Уникальный целочисленный идентификатор аккаунта, к которому привязан данный кластер. | ## Пример использования модуля decort_k8s Пример создания кластера Kubernetes с названием cluster-test. ``` - name: create a cluster named cluster-test decort_k8s: state: present started: True getConfig: True authenticator: jwt jwt: "{{ token.jwt }}" controller_url: "https://ds1.digitalenergy.online" name: "cluster-test" rg_id: 125 k8ci_id: 18 workers: - name: wg1 ram: 1024 cpu: 10 disk: 10 num: 1 - name: wg2 ram: 1024 cpu: 10 disk: 10 num: 2 verify_ssl: false delegate_to: localhost register: kube ```