15 KiB
Resource функция decort_account служит для управления аккаунтами. Аккаунты в платформе позволяют создавать ресурсные группы, вычислительные мощности (computes), виртуальные сети, управлять ресурсами и так далее. Аккаунты создают пользователи (user). Все административное взаимодействие внутри платформы строится на аккаунтах.
Начиная с версии провайдера 4.3.0 аккаунты могут создавать только администраторы площадок.
Пользователи без административных прав могут только импортировать существующие аккаунты, используя следующую команду:
terraform import decort_account.<наименование-ресурса> <ID-аккаунта>
После импорта конфигурации управление аккаунтом доступно в прежнем порядке.
Аргументы
Resource функция decort_account принимает следующие аргументы:
Аргумент | Тип | Обязательный | Описание |
---|---|---|---|
account_name | string | ✔️ | Имя аккаунта Используется при создании и редактировании |
username | string | ✔️ | Имя пользователя - владельца аккаунта Используется при создании |
emailaddress | string | ❌ | Адрес электронной почты Используется при создании |
send_access_emails | bool | ❌ | Флаг отправки электронного письма Используется при создании и редактировании По-умолчанию: true |
resource_limits | Struct{} см. ниже | ❌ | Ресурсы аккаунта |
enable | bool | ❌ | Флаг доступности аккаунта Используется при редактировании |
restore | bool | ❌ | Флаг восстановления аккаунта Используется при редактировании |
users | []Struct{} см. ниже | ❌ | Поле для того чтобы задать пользователей |
permanently | bool | ❌ | Флаг удаления аккаунта Если выставлен в true, то аккаунт и все с ним связанное удаляется моментально Если false - то аккаунт попадает в "корзину", где хранится некоторое время. Из "корзины" аккаунт можно восстановить По-умолчанию: false Используется при удалении |
Описание структуры resource_limits
Аргумент | Тип | Обязательный | Описание |
---|---|---|---|
cu_c | float | ❌ | Количество ядер CPU |
cu_d | float | ❌ | Размер диска |
cu_i | float | ❌ | Количество публичных IP адресов |
cu_m | float | ❌ | размер RAM |
cu_np | float | ❌ | Хранилище траффика |
gpu_units | float | ❌ | количество GPU ядер |
Описание структуры users
Аргумент | Тип | Обязательный | Описание |
---|---|---|---|
user_id | string | ✔️ | ID пользователя(его имя) |
access_type | string | ✔️ | Тип доступа пользователя. R - чтение, RCX - запись, ARCXDU - админ |
recursive_delete | bool | ❌ | Флаг рекурсивного удаления пользователя |
Возвращаемые значения
В случае успешного выполнения resource функция decort_account возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
Параметр | Тип | Описание |
---|---|---|
account_id | int | ID аккаунта |
account_name | string | Название аккаунта |
meta | []string | Мета информация |
resources | Struct{} см. ниже | Информация о ресурсах |
acl | []Struct{} см. ниже | Более подробная информация об аккаунтах |
company | string | Название компании, которой принадлежит аккаунт |
companyurl | string | url-адрес компани |
created_by | string | Пользователь - создателя аккаунта |
created_time | int | Время создания аккаунта |
deactivation_time | float | Время деактивации аккаунта |
deleted_by | string | Пользователь, удаливший аккаунт |
deleted_time | int | Время удаления аккаунта |
displayname | string | Отображаемое имя аккаунта |
guid | int | Внутренний guid аккаунта |
resource_limits | Struct{} см. ниже | Ограничения ресурсов |
send_access_emails | bool | Флаг, отправлять ли на указанную почту письмо о доступе |
cpu_allocation_parameter | string | Параметр выделения CPU |
cpu_allocation_ratio | float | Отношение выделения CPU |
status | string | Статус аккаунта |
updated_time | int | Время последнего обновления |
version | int | Версия аккаунта |
vins | []int | Список id виртуальных сетей |
vinses | []int | Список id виртуальных сетей |
computes | Struct{} см .ниже | Информация о вычислительных мощностях |
machines | Struct{} см .ниже | Информация о виртуальных машинах (устаревшее) |
Описание структуры resources
Параметр | Тип | Описание |
---|---|---|
current | Struct{} см. ниже | Информация о текуших ресурсах |
reserved | Struct{} см. ниже | Информация о зарезверированных аккаунтом ресурсах |
Описание структуры acl
Параметр | Тип | Описание |
---|---|---|
can_be_deleted | bool | Может ли быть удален |
explicit | bool | Видимость аккаунта |
guid | string | GUID |
right | string | Права |
status | string | Статус |
type | string | Тип |
user_group_id | string | ID группы юзеров |
Описание структуры resource_limits
Параметр | Тип | Описание |
---|---|---|
cu_c | float | Количество ядер CPU |
cu_d | float | Размер диска |
cu_i | float | Количество публичных IP адресов |
cu_m | float | размер RAM |
cu_np | float | Хранилище траффика |
gpu_units | float | количество GPU ядер |
Описание структуры computes
Параметр | Тип | Описание |
---|---|---|
started | int | Количество запущенных ВМ |
stopped | int | Количество остановленных ВМ |
Описание структуры machines
Параметр | Тип | Описание |
---|---|---|
halted | int | Количество остановленных ВМ |
running | int | Количество запущенных ВМ |
Описание структуры current и reserved
Параметр | Тип | Описание |
---|---|---|
cpu | int | Количество CPU |
disksize | int | Размер диска |
extips | int | Внешние IPs |
exttraffic | int | Внешний Traffic |
gpu | int | Количество GPU |
ram | int | Количество RAM |
seps | []Struct{} см . ниже | Информация о seps |
Описание структуры seps
Параметр | Тип | Описание |
---|---|---|
sep_id | int | ID SEP |
data_name | string | Имя пула информации внутри SEP'а |
disk_size | int | Количество занятого места |
disk_size_max | int | Размер диска |
Пример использования
Пример вызова resource функции decort_account:
resource "decort_account" "a" {
#имя аккаунта
#обязательный параметр
#тип - строка
#используется при создании и редактировании аккаунта
account_name = "new_my_account"
#имя пользователя - создателя аккаунта
#обязательный параметр
#тип - строка
username = "username@decs3o"
#доступность аккаунта
#необязательный параметр
#тип - булев тип
#может применяться при редактировании аккаунта
#enable = true
#id аккаунта, позволяет сформировать .tfstate, если аккаунт имеет в платформе
#необязательный параметр
#тип - число
#account_id = 11111
#электронная почта, на которую будет отправлена информация о доступе
#необязательный параметр
#тип - строка
#применяется при создании аккаунта
#emailaddress = "fff@fff.ff"
#отправлять ли на электронную почту письмо о доступе
#необязательный параметр
#тип - булев тип
#применяется при создании аккаунта и редактировании аккаунта
send_access_emails = true
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
#необязательный параметр
#тип - объект, кол-во таких объектов не ограничено
/*users {
#id пользователя
#обязательный параметр
#тип - строка
user_id = "username_2@decs3o"
#тип доступа пользователя
#обязательный параметр
#тип - строка
#возможные параметры:
#R - чтение
#RCX - запись
#ARCXDU - админ
access_type = "R"
#рекурсивное удаление пользователя из всех ресурсов аккаунтов
#необязательный параметр
#тип - булев тип
#по-умолчанию - false
#применяется при удалении пользователя из аккаунта
recursive_delete = true
}
users {
user_id = "username_1@decs3o"
access_type = "R"
}*/
#ограничение используемых ресурсов
#необязательный параметр
#тип - объект
#используется при создании и редактировании
/*
resource_limits {
#кол-во используемых ядер cpu
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограниченно
cu_c = 2
#кол-во используемой RAM в МБ
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограниченно
cu_m = 1024
#размер дисков, в ГБ
#необязательный параметр
#тип - число
#если установлена -1 - размер неограничен
cu_d = 23
#кол-во используемых публичных IP
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограниченно
cu_i = 2
#ограничения на кол-во передачи данных, в ГБ
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограиченно
cu_np = 2
#кол-во графических процессоров
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограиченно
gpu_units = 2
}
#восстановление аккаунта
#необязательный параметр
#тип - булев тип
#применяется к удаленным аккаунтам
#по-умолчанию - false
#restore = false
#мгновенное удаление аккаунта, если да - то аккаунт невозможно будет восстановить
#необязательный параметр
#тип - булев тип
#используется при удалении аккаунта
#по-умолчанию - false
#permanently = true
}
# once the above directive completes, account will be accessible
# as decort_account.a
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий раздел).
После успешного завершения такого вызова decort_account в переменной decort_account.a
будут сохранены возвращаемые значения.