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

cloudru_evolution_data_platform_spark (Resource)

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

Example Usage

resource "cloudru_evolution_data_platform_spark" "resource_spark" {
# Поле cluster_id является неизменяемым. При изменении значения ресурс будет пересоздан.
cluster_id = "0000-0000-0000-0000-0000"
# Поле project_id является неизменяемым. При изменении значения ресурс будет пересоздан.
project_id = "0000-0000-0000-0000-0000"
compute_configuration = {
flavor_id = "0000-0000-0000-0000-0000"
min_nodes = 1
max_nodes = 5
}
name = "spark-instance"
description = "Spark cluster description"
enabled_external_host = true
# Поле log_group_id является неизменяемым. При изменении значения ресурс будет пересоздан.
log_group_id = "0000-0000-0000-0000-0000"
# Поле internal_s3_config является неизменяемым. При изменении значения ресурс будет пересоздан.
internal_s3_config = {
# Поле tenant_id является неизменяемым. При изменении значения ресурс будет пересоздан.
tenant_id = "0000-0000-0000-0000-0000"
# Поле bucket является неизменяемым. При изменении значения ресурс будет пересоздан.
bucket = "bucket"
}
external_s3_config = {
# Поле bucket является неизменяемым. При изменении значения ресурс будет пересоздан.
bucket = "bucket"
# Поле endpoint является неизменяемым. При изменении значения ресурс будет пересоздан.
endpoint = "https://s3.cloud.ru"
access_key_secret_id = "0000-0000-0000-0000-0000"
secret_key_secret_id = "0000-0000-0000-0000-0000"
region = "ru-central-1"
}
# Поле network_configuration является неизменяемым. При изменении значения ресурс будет пересоздан.
network_configuration = {
# Поле subnet_id является неизменяемым. При изменении значения ресурс будет пересоздан.
subnet_id = "0000-0000-0000-0000-0000"
# Поле zone_id является неизменяемым. При изменении значения ресурс будет пересоздан.
zone_id = "0000-0000-0000-0000-0000"
}
user = {
username = "spark-user"
password_secret_id = "0000-0000-0000-0000-0000"
}
version_id = "0000-0000-0000-0000-0000"
# Позволяет переопределить дефолтный таймаут провайдера для определенного метода. Если нужно указать бесконечный таймаут, то нужно указать например 0s, тогда таймаута не будет.
timeouts {
create = "60m"
update = "30m"
delete = "20m"
}
# Игнорировать изменения таймаутов: это предотвращает лишние обновления ресурса при смене значений таймаутов в конфигурации
# Но следует учитывать, что метод delete в ресурсе читает значение таймаута из стейта и, если его нужно изменить, то этот блок стоит закомментировать
lifecycle {
ignore_changes = [timeouts]
}
}

Schema

Required

  • cluster_id (String) Идентификатор кластера.

  • compute_configuration (Attributes) Параметры конфигурации вычислительных ресурсов. (see below for nested schema)

  • enabled_external_host (Boolean) Подключение через внешний хост: * true — подключение через внешний хост разрешено. * false — подключение через внешний хост запрещено.

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

  • name (String) Название.

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

  • project_id (String) Идентификатор проекта.

  • user (Attributes) Пользователь Managed Spark для доступа к Spark History. (see below for nested schema)

Optional

  • description (String) Описание.

  • external_s3_config (Attributes) Конфигурация параметров внешнего хранилища S3. (see below for nested schema)

  • internal_s3_config (Attributes) Конфигурация параметров Object Storage. (see below for nested schema)

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

  • version_id (String) Идентификатор версии Managed Spark.

Read-Only

  • created_at (String) Время создания.

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

  • hs_external_host (String) URL внешнего хоста Spark History.

  • hs_internal_host (String) URL внутреннего хоста Spark History.

  • id (String) Идентификатор инстанса Managed Spark.

  • s3_eventlog_url (String) URL директории с логами Spark в хранилище S3.

  • spark_connect_id (String) Идентификатор Spark Connect.

  • status (String) Статус инстанса Managed Spark: * SPARK_STATUS_PENDING — инстанс находится в ожидании. * SPARK_STATUS_CREATING — инстанс создается. * SPARK_STATUS_RUNNING — инстанс готов к работе. * SPARK_STATUS_RESUMING — инстанс возобновляет работу. * SPARK_STATUS_UPDATING — инстанс обновляется. * SPARK_STATUS_DELETED — инстанс удален. * SPARK_STATUS_DELETING — инстанс удаляется. * SPARK_STATUS_ERROR — инстанс находится в состоянии ошибки. * SPARK_STATUS_SUSPENDING — инстанс приостанавливается. * SPARK_STATUS_SUSPENDED — инстанс приостановлен. * SPARK_STATUS_FAILED — ошибка в работе инстанса. * SPARK_STATUS_STOPPING — инстанс останавливается. * SPARK_STATUS_STOPPED — инстанс остановлен.

  • updated_at (String) Время обновления.

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

  • version (Attributes) Версия Managed Spark. (see below for nested schema)

Nested Schema for compute_configuration

Required:

  • flavor_id (String) Идентификатор flavor.

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

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

Nested Schema for network_configuration

Required:

  • subnet_id (String) Идентификатор подсети.

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

Nested Schema for user

Required:

  • password_secret_id (String) Пароль в формате secret manager secret_id.

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

Nested Schema for external_s3_config

Required:

  • access_key_secret_id (String) Access key в формате secret manager secret_id.

  • bucket (String) Имя бакета.

  • endpoint (String) URL эндпоинта.

  • region (String) Регион, например, ru-central-1.

  • secret_key_secret_id (String) Secret key в формате secret manager secret_id.

Nested Schema for internal_s3_config

Required:

  • bucket (String) Имя бакета.

  • tenant_id (String) Идентификатор арендатора.

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 version

Read-Only:

  • description (String) Описание.

  • managed_spark_version (String) Номер версии Managed Spark.

  • name (String) Название.

  • version_id (String) Идентификатор версии.

Зависимости

Project ID

Нужное значение для идентификатора проекта (project_id) можно получить из поля projects.id с помощью датасорса cloudru_evolution_organization_project_collection.

Cluster ID

Нужное значение для идентификатора кластера (cluster_id) можно получить из поля clusters.id с помощью датасорса cloudru_evolution_data_platform_cluster_collection. Если нужного кластера не существует, его можно создать с помощью ресурса cloudru_evolution_data_platform_cluster.

Compute configuration

  • Нужное значение для флейвора (compute_configuration.flavor_id) можно получить из поля flavors.id с помощью датасорса cloudru_evolution_data_platform_spark_flavor_collection.

  • Значения min_nodes и max_nodes должны находиться в диапазоне flavors.min_node_count–flavors.max_node_count выбранного флейвора.

Log group ID

Можно получить через консоль → раздел Мониторинг и логи → Лог-группы . В списке лог-групп будет отображаться UUID каждой.

Internal S3 config

  • В internal_s3_config.tenant_id указывается идентификатор арендатора Object Storage, который также используется в настройке провайдера object_storage_tenant_id.

  • В internal_s3_config.bucket указывается имя бакета Evolution Object Storage. Бакет можно создать с помощью ресурса cloudru_evolution_obs_bucket и использовать его атрибут bucket.

Network configuration

  • Нужное значение для подсети (network_configuration.subnet_id) можно получить из поля subnets.id с помощью датасорса cloudru_evolution_compute_subnet_collection.

  • Нужное значение для идентификатора зоны доступности (network_configuration.zone_id) находится в поле subnets.zone.id выбранной подсети. Список зон также можно получить из поля zones.id датасорса cloudru_evolution_compute_zone_collection.

Подсеть, зона доступности и флейвор должны быть доступны в проекте, в котором создается экземпляр Managed Spark.

User

В user.password_secret_id указывается идентификатор секрета из Secret Manager, содержащего пароль пользователя Spark History.

Для внешнего S3-хранилища в external_s3_config.access_key_secret_id и external_s3_config.secret_key_secret_id указываются идентификаторы секретов из Secret Manager, содержащих соответственно ключ доступа и секретный ключ. Идентификаторы секретов можно получить в консоли в разделе Secret Manager .

Version ID

Нужное значение для версии (version_id) можно получить из поля spark_versions.version_id с помощью датасорса cloudru_evolution_data_platform_spark_version_collection.