Облачная платформаEvolution

cloudru_evolution_mk8s_node_pool (Resource)

Эта статья полезна?

Example Usage

resource "cloudru_evolution_mk8s_node_pool" "resource_node_pool" {
# Поле cluster_id является неизменяемым. При изменении значения ресурс будет пересоздан.
cluster_id = "00000000-0000-0000-0000-000000000000"
name = "cloudru-example-nodepool"
version = "v1.34.1"
machine_configuration = {
disk = {
type_name = "SSD"
size = 40
}
flavor = {
flavor_id = "00000000-0000-0000-0000-000000000000"
}
}
network_configuration = {
# Поле nodes_subnet_id является неизменяемым. При изменении значения ресурс будет пересоздан.
nodes_subnet_id = "00000000-0000-0000-0000-000000000000"
# Поле security_group_id является неизменяемым. При изменении значения ресурс будет пересоздан.
security_group_id = "00000000-0000-0000-0000-000000000000"
}
update_configuration = {
strategy = "NODE_POOL_UPDATE_STRATEGY_ROLLING_UPDATE"
rolling_update_policy = {
max_surge = 25
max_unavailable = 25
}
}
scale_policy = {
# Нужно заполнить одно из значений - fixed_scale, auto_scale.
fixed_scale = {
count = 1
}
auto_scale = {
min_count = 1
max_count = 3
initial_count = 1
}
}
taints = {
taints = [{
key = "cloudru_taint_key"
value = "cloudru_taint_value"
effect = "EFFECT_NO_EXECUTE"
}]
}
labels = {
labels = {
"a8785159-8647-4006-9ae4-c2d38416aa3a" = "f1906fad-d708-4c31-a844-b69a355d6553" }
}
# Поле remote_access является неизменяемым. При изменении значения ресурс будет пересоздан.
remote_access = {
# Поле ssh_key_id является неизменяемым. При изменении значения ресурс будет пересоздан.
ssh_key_id = "00000000-0000-0000-0000-000000000000"
# Поле username является неизменяемым. При изменении значения ресурс будет пересоздан.
username = "cloudru"
}
auto_repair = {
enabled = true
}
# Позволяет переопределить дефолтный таймаут провайдера для определенного метода. Если нужно указать бесконечный таймаут, то нужно указать например 0s, тогда таймаута не будет.
timeouts {
create = "60m"
update = "30m"
delete = "20m"
}
# Игнорировать изменения таймаутов: это предотвращает лишние обновления ресурса при смене значений таймаутов в конфигурации
# Но следует учитывать, что метод delete в ресурсе читает значение таймаута из стейта и, если его нужно изменить, то этот блок стоит закомментировать
lifecycle {
ignore_changes = [timeouts]
}
}

Schema

Required

  • cluster_id (String) Идентификатор кластера, в котором развернута группа узлов.

  • machine_configuration (Attributes) Описание инфраструктуры узлов группы. (see below for nested schema)

  • name (String) Название группы узлов.

  • network_configuration (Attributes) Конфигурация сети узлов. (see below for nested schema)

  • scale_policy (Attributes) Политика масштабирования группы узлов в кластере. (see below for nested schema)

  • update_configuration (Attributes) Политика обновления группы узлов. (see below for nested schema)

  • version (String) Версия Kubernetes, которая используется на узлах группы.

Optional

  • auto_repair (Attributes) Параметры автоматического восстановления узлов. (see below for nested schema)

  • labels (Attributes) Набор меток (labels), применяемых к узлам в группе. (see below for nested schema)

  • remote_access (Attributes) Конфигурация удаленного доступа к виртуальной машине в группе. (see below for nested schema)

  • taints (Attributes) Список ограничений (taints), применяемых к узлам в группе. (see below for nested schema)

  • timeouts (Block, Optional) (see below for nested schema)

Read-Only

  • created_at (String) Дата и время создания группы узлов.

  • created_by (String) Идентификатор пользователя, создавшего группу узлов.

  • id (String) Идентификатор группы узлов.

  • status (String) Состояние группы узлов. Возможные значения: * OBJECT_STATUS_PENDING — группа узлов в ожидании подготовки к запуску. * OBJECT_STATUS_PROVISIONING — подготовка группы узлов к запуску. * OBJECT_STATUS_RUNNING — группа узлов запущена. * OBJECT_STATUS_RESUMING — работа группы узлов возобновляется. * OBJECT_STATUS_DELETING — группа узлов удаляется. * OBJECT_STATUS_ERROR — операция с группой узлов закончилась ошибкой. * OBJECT_STATUS_SCALING_UP — размер группы узлов увеличивается. * OBJECT_STATUS_SCALING_DOWN — размер группы узлов уменьшается. * OBJECT_STATUS_STOPPING — работа группы узлов останавливается. * OBJECT_STATUS_STOPPED — работа группы узлов остановлена. * OBJECT_STATUS_SUSPENDING — работа группы узлов приостанавливается из-за отсутствия средств. * OBJECT_STATUS_SUSPENDED — работа группы узлов приостановлена из-за отсутствия средств. * OBJECT_STATUS_UPGRADING — версия группы узлов обновляется. * OBJECT_STATUS_EDITING — параметры группы узлов редактируются.

  • updated_at (String) Дата и время последнего обновления группы узлов.

  • updated_by (String) Идентификатор пользователя, обновившего группу узлов.

  • upgrade_info (Attributes) Информация о процессе обновления группы узлов. (see below for nested schema)

  • version_upgrade (Attributes) Информация о доступных версиях Kubernetes для обновления группы узлов. (see below for nested schema)

  • zone (String) Зона доступности, в которой размещены узлы группы.

Nested Schema for machine_configuration

Required:

  • flavor (Attributes) Шаблон конфигурации для виртуальной машины (ВМ). (see below for nested schema)

Optional:

Nested Schema for machine_configuration.flavor

Required:

  • flavor_id (String) Идентификатор шаблона конфигурации.

Read-Only:

  • cpu (Number) Количество ядер процессора виртуальной машины.

  • gpu (Number) Количество графических процессоров, выделенных виртуальной машине.

  • name (String) Название шаблона конфигурации.

  • oversubscription (String) Коэффициент переподписки, например «1:3».

  • ram (Number) Оперативная память виртуальной машины в ГБ.

  • type (String) Тип шаблона конфигурации.

Nested Schema for machine_configuration.disk

Optional:

  • size (Number) Размер подключенного диска в ГБ.

  • type_name (String) Название типа диска.

Nested Schema for network_configuration

Required:

  • nodes_subnet_id (String) Идентификатор сети узлов группы.

Optional:

  • security_group_id (String) Идентификатор группы безопасности.

Read-Only:

  • nodes_subnet_cidr (String) Адрес сети узлов группы.

Nested Schema for scale_policy

Optional:

  • auto_scale (Attributes) Автоматически масштабируемое число узлов. (see below for nested schema)

  • fixed_scale (Attributes) Фиксированное число узлов. (see below for nested schema)

Nested Schema for scale_policy.auto_scale

Required:

  • max_count (Number) Максимальное количество узлов в группе узлов.

  • min_count (Number) Минимальное количество узлов в группе узлов.

Optional:

  • initial_count (Number) Начальное количество узлов. Обязателен при создании группы узлов. При редактировании группы узлов является опциональным.

Nested Schema for scale_policy.fixed_scale

Required:

  • count (Number) Количество узлов в группе.

Nested Schema for update_configuration

Required:

  • strategy (String) Стратегия обновления. Возможные значения: * NODE_POOL_UPDATE_STRATEGY_ROLLING_UPDATE — политика обновления группы узлов путем пересоздания машин.

Optional:

  • rolling_update_policy (Attributes) Параметры политики обновления RollingUpdate. (see below for nested schema)

Nested Schema for update_configuration.rolling_update_policy

Optional:

  • max_surge (Number) Максимальное количество дополнительных узлов в процентах от общего числа узлов в группе, которые могут быть добавлены в группу временно при обновлении.

  • max_unavailable (Number) Максимальное количество одновременно недоступных узлов при обновлении в процентах от общего числа узлов в группе.

Nested Schema for auto_repair

Optional:

  • enabled (Boolean) Включение автоматического восстановления группы узлов. Возможные значения: true — автоматическое восстановление включено, false — автоматическое восстановление выключено. По умолчанию восстановление группы узлов включено.

Nested Schema for labels

Required:

  • labels (Map of String) Набор меток (labels), применяемых к узлам в группе.

Nested Schema for remote_access

Required:

  • ssh_key_id (String) Идентификатор SSH-ключа из сервиса «SSH-ключи».

  • username (String) Имя пользователя.

Nested Schema for taints

Required:

  • taints (Attributes List) Список ограничений (taints), применяемых к узлам в группе. (see below for nested schema)

Nested Schema for taints.taints

Required:

  • key (String) Ключ.

  • value (String) Значение.

Optional:

  • effect (String) Применяемый эффект. Возможные значения: * EFFECT_NO_EXECUTE — запрещается планирование новых подов без соответствующих tolerations на узлах группы. Запущенные поды перемещаются на узлы других групп. * EFFECT_NO_SCHEDULE — запрещается планирование новых подов без соответствующих tolerations на узлах группы. Запущенные поды продолжат работу. * EFFECT_PREFER_NO_SCHEDULE — планирование подов без соответствующих tolerations на узлах в группе разрешается только, если на узлах других групп нет свободных ресурсов.

Nested Schema for timeouts

Optional:

  • create (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours).

  • delete (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.

  • update (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours).

Nested Schema for upgrade_info

Read-Only:

  • desired_version (String) Версия Kubernetes, на которую выполняется обновление. Если версия не указана, то выполняется обновление системных компонентов платформы Managed Kubernetes в группе узлов без обновления версии Kubernetes.

  • phase (String) Стадия обновления. Возможные значения: * NODE_POOL_UPGRADE_PHASE_RUNNING — обновление выполняется. * NODE_POOL_UPGRADE_PHASE_CANCELLED — обновление отменено. * NODE_POOL_UPGRADE_PHASE_ROLLBACK — откат обновления.

Nested Schema for version_upgrade

Read-Only:

  • available_versions (List of String) Список доступных версий Kubernetes для обновления кластера. Версии отсортированы в порядке убывания, начиная с самой старшей версии.

  • upgrade_available (Boolean) Признак доступности новой версии Kubernetes.

Зависимости

Cluster ID

Нужное значение для кластера (cluster_id) можно получить из поля clusters.id датасорса cloudru_evolution_mk8s_cluster_collection. Если кластер создаётся в той же конфигурации, используется ссылка на его ресурс.

Version

Версию группы узлов (version) можно получить из поля clusters.control_plane.version датасорса cloudru_evolution_mk8s_cluster_collection. Она должна быть совместима с control plane.

Flavor ID

Нужное значение для конфигурации узлов (machine_configuration.flavor.flavor_id) можно получить из поля product_configuration.flavors.flavor_id датасорса cloudru_evolution_mk8s_product_configuration_collection. Flavor должен быть доступен в зоне подсети узлов.

Disk type

Нужное значение для типа диска группы узлов (machine_configuration.disk.type_name) можно получить из поля product_configuration.disk_types.name датасорса cloudru_evolution_mk8s_product_configuration_collection. Тип диска должен быть доступен в зоне подсети узлов.

Nodes subnet ID

Нужное значение для подсети узлов (network_configuration.nodes_subnet_id) можно получить из поля subnets.id датасорса cloudru_evolution_compute_subnet_collection. Подсеть должна находиться в VPC кластера и поддерживаемой MK8s зоне.

Security group ID

Нужное значение для группы безопасности (network_configuration.security_group_id) можно получить из поля security_groups.id датасорса cloudru_evolution_compute_security_group_collection. Группа должна соответствовать зоне подсети узлов и разрешать необходимый трафик кластера.

SSH key ID

Нужное значение для SSH-ключа (remote_access.ssh_key_id) можно получить в разделе управления SSH-ключами консоли или через API. Указывается ID зарегистрированного ключа.