You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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 | Значения:<br/>`legacy`<br/>`oauth2`<br/>`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
```