Resource nubes_k8s_sthutrval_cluster · v2.0.0 · Service ID: 150 · Service Name: Kubernetes кластер Штурвал¶
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.0.0"
}
}
}
provider "nubes" {
api_token = "***"
api_endpoint = "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
}
resource "nubes_k8s_sthutrval_cluster" "baza" {
resource_name = "my-k8s_sthutrval_cluster"
startup_configuration {
ex_update = true
ex_logging = true # А также перенаправление логов в Loki Без этого логи сервисов в ЛК отображаться не будут
ex_monitoring = true # А также перенаправление логов в VictoriaMetrics Без этого метрики сервисов в ЛК отображаться не будут
ex_local_csi = true
ex_ingress = true
vdc_uid = "TODO"
nsxt_uid = "TODO"
cluster_name = "example-7j3xbkeu"
ex_named_csi = true
ex_vip = true
}
control_plane_configuration {
sizing_policy = [] # Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
sizing_disk = 50 # Дисковая политика берётся из услуги VDC, первый в списке
count = 1
}
access_configuration {
need_external_address_api = true # Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
access_ip_list_api = jsonencode([]) # Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем
need_external_address_ingress = true # Выделяет внешний IP для доступа к Ingress
access_ip_list_ingress = jsonencode([]) # Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем
}
cluster_configuration {
app_version = 2.14.0
}
}
Полный пример (все параметры, включая значения по умолчанию)
terraform {
required_providers {
nubes = {
source = "tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes"
version = "2.0.0"
}
}
}
# Токен доступа api_token к Nubes API — замените на реальный.
provider "nubes" {
api_token = "token_***"
api_endpoint = "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
}
resource "nubes_k8s_sthutrval_cluster" "baza" {
resource_name = "TODO"
startup_configuration {
ex_update = true
ex_logging = true # А также перенаправление логов в Loki Без этого логи сервисов в ЛК отображаться не будут
ex_monitoring = true # А также перенаправление логов в VictoriaMetrics Без этого метрики сервисов в ЛК отображаться не будут
ex_local_csi = true
ex_ingress = true
vdc_uid = "TODO"
nsxt_uid = "TODO"
cluster_name = "example-7j3xbkeu"
ex_named_csi = true
ex_vip = true
}
control_plane_configuration {
sizing_policy = [] # Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
sizing_disk = 50 # Дисковая политика берётся из услуги VDC, первый в списке
count = 1
}
access_configuration {
need_external_address_api = true # Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
access_ip_list_api = jsonencode([]) # Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем
need_external_address_ingress = true # Выделяет внешний IP для доступа к Ingress
access_ip_list_ingress = jsonencode([]) # Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем
}
cluster_configuration {
app_version = 2.14.0
}
# Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте
worker_configuration {
autoscale_min = 2 # Параметр к **Autoscale** **Автоскейл с 0** пока не доступен - ограничение cluster API
autoscale_max = 3 # Параметр к **Autoscale** Нельзя указать меньше чем **Минимальное кол-во нод**
label_deck = true # Позволяет на данной группе узлов разворачивать услуги из Личного кабинета Необходимо выключить если планируется, что на части узлов будет настроен к примеру только Ingress
group_name = "workers-7w5nefrq" # Имена групп воркеров в рамках кластера должно быть уникальным
sizing_policy = "TODO" # Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
sizing_disk = 50 # Дисковая политика берётся из услуги VDC, первый в списке
count = 2
autoscale = false # Включает автоматическое масштабирование нод Имеет приоритет над параметром **Кол-во узлов Workers**, если включен
}
}
Использование выходных данных¶
# Выходные параметры можно использовать как
nubes_k8s_sthutrval_cluster.baza.state_params["имя_ключа"]
nubes_k8s_sthutrval_cluster.baza.state_out["имя_ключа"]
nubes_k8s_sthutrval_cluster.baza.state_params_flat["имя_ключа"]
nubes_k8s_sthutrval_cluster.baza.state_out_flat["имя_ключа"]
nubes_k8s_sthutrval_cluster.baza.vault_secrets["имя_ключа"]
nubes_k8s_sthutrval_cluster.baza.vault_url
nubes_k8s_sthutrval_cluster.baza.vault_user_path
nubes_k8s_sthutrval_cluster.baza.vault_fields