Skip to content

Resource nubes_rabbitmq · v2.1.0 · Service ID: 93 · Service Name: RabbitMQ

Manual · Create params · Modify params · Output params · Operations · Example

Минимальный пример (только обязательные параметры)

terraform {
  required_providers {
    nubes = {
      source  = "tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes"
      version = "2.1.0"
    }
  }
}

provider "nubes" {
  api_token    = "***"
  api_endpoint = "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
}
resource "nubes_rabbitmq" "baza" {
  resource_name = "my-rabbitmq"

  startup_configuration = {
    resource_realm = "TODO"
  }
  cluster_configuration = {
    cpu = 1000
    memory = 1024
    replicas = 1
    disk = 5
  }
  access_configuration = {
    master_ip_space = "TODO" # Из какого Ip-Space резервировать внешний IP Список предоставляется из Организации, в котором развёрнута ресурсная платформа
    master_access_list = jsonencode([]) # Необходимо настраивать, когда зарезервирован внешний адрес Если передан пустой массив, доступ выделяется всем
  }
  mq_configuration = {
    max_message_size = 4
  }
}
Полный пример (все параметры, включая значения по умолчанию)
terraform {
  required_providers {
    nubes = {
      source  = "tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes"
      version = "2.1.0"
    }
  }
}

# Токен доступа api_token к Nubes API — замените на реальный.
provider "nubes" {
  api_token    = "token_***"
  api_endpoint = "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
}
resource "nubes_rabbitmq" "baza" {
  resource_name = "TODO"

  startup_configuration = {
    resource_realm = "TODO"
  }
  cluster_configuration = {
    cpu = 1000
    memory = 1024
    replicas = 1
    disk = 5
  }
  access_configuration = {
    master_ip_space = "TODO" # Из какого Ip-Space резервировать внешний IP Список предоставляется из Организации, в котором развёрнута ресурсная платформа
    master_access_list = jsonencode([]) # Необходимо настраивать, когда зарезервирован внешний адрес Если передан пустой массив, доступ выделяется всем
  }
  mq_configuration = {
    max_message_size = 4
  }
}

Использование выходных данных

# Выходные параметры можно использовать как
nubes_rabbitmq.baza.state_params["имя_ключа"]
nubes_rabbitmq.baza.state_out["имя_ключа"]
nubes_rabbitmq.baza.state_params_flat["имя_ключа"]
nubes_rabbitmq.baza.state_out_flat["имя_ключа"]
nubes_rabbitmq.baza.vault_secrets["имя_ключа"]
nubes_rabbitmq.baza.vault_url
nubes_rabbitmq.baza.vault_user_path
nubes_rabbitmq.baza.vault_fields

Реальные ключи из облака

# clusterDomain = nubes_rabbitmq.baza.state_out_flat["clusterDomain"]
# externalConnect = nubes_rabbitmq.baza.state_out_flat["externalConnect"]
# externalConnect.admin = nubes_rabbitmq.baza.state_out_flat["externalConnect.admin"]
# externalConnect.admin.fqdn = nubes_rabbitmq.baza.state_out_flat["externalConnect.admin.fqdn"]
# externalConnect.admin.ip = nubes_rabbitmq.baza.state_out_flat["externalConnect.admin.ip"]
# externalConnect.admin.isExternal = nubes_rabbitmq.baza.state_out_flat["externalConnect.admin.isExternal"]
# externalConnect.admin.uuid = nubes_rabbitmq.baza.state_out_flat["externalConnect.admin.uuid"]
# inernalConnect = nubes_rabbitmq.baza.state_out_flat["inernalConnect"]
# inernalConnect.master = nubes_rabbitmq.baza.state_out_flat["inernalConnect.master"]
# inernalConnect.slave = nubes_rabbitmq.baza.state_out_flat["inernalConnect.slave"]
# monitoring = nubes_rabbitmq.baza.state_out_flat["monitoring"]
# monitoring.allDashboards = nubes_rabbitmq.baza.state_out_flat["monitoring.allDashboards"]
# monitoring.base = nubes_rabbitmq.baza.state_out_flat["monitoring.base"]
# monitoring.base.url = nubes_rabbitmq.baza.state_out_flat["monitoring.base.url"]
# monitoring.loki = nubes_rabbitmq.baza.state_out_flat["monitoring.loki"]
# monitoring.loki.url = nubes_rabbitmq.baza.state_out_flat["monitoring.loki.url"]
# adminPass = nubes_rabbitmq.baza.vault_secrets["adminPass"]
# adminUser = nubes_rabbitmq.baza.vault_secrets["adminUser"]