|
|
/*
|
|
|
Пример использования
|
|
|
Ресурса k8s
|
|
|
Ресурс позволяет:
|
|
|
1. Создавать кластер
|
|
|
2. Редактировать кластер
|
|
|
3. Удалять кластер
|
|
|
4. Настроить мастер-узел
|
|
|
5. Изменить кол-во ВМ в мастер-узле
|
|
|
*/
|
|
|
|
|
|
#Раскомментируйте этот код,
|
|
|
#и внесите необходимые правки в версию и путь,
|
|
|
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
|
|
|
/*
|
|
|
terraform {
|
|
|
required_providers {
|
|
|
dynamix = {
|
|
|
source = "basistech.ru/tf/dynamix"
|
|
|
version = "<VERSION>"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
provider "dynamix" {
|
|
|
authenticator = "decs3o"
|
|
|
#controller_url = <DYNAMIX_CONTROLLER_URL>
|
|
|
controller_url = "https://ds1.digitalenergy.online"
|
|
|
#oauth2_url = <DYNAMIX_OAUTH2_URL>
|
|
|
oauth2_url = "https://sso.digitalenergy.online"
|
|
|
allow_unverified_ssl = true
|
|
|
}
|
|
|
|
|
|
resource "dynamix_k8s_cp" "cp" {
|
|
|
#название кластера
|
|
|
#обязательный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании и обновлении
|
|
|
name = "k8s-cp"
|
|
|
|
|
|
#k8sCI ID
|
|
|
#обязательный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
k8sci_id = 55
|
|
|
|
|
|
#плагин сети (flannel, weavenet или calico)
|
|
|
#обязательный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
network_plugin = "flannel"
|
|
|
|
|
|
#id ресурсной группы
|
|
|
#обязательный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
rg_id = 1387
|
|
|
|
|
|
#кол-во ядер мастер-узла
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
#cpu = 2
|
|
|
|
|
|
#объем RAM мастер-узла, в МБ
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
#ram = 2048
|
|
|
|
|
|
#кол-во ВМ мастер-узла (1, 3 или 5)
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании и обновлении
|
|
|
#num = 1
|
|
|
|
|
|
#размер диска мастер-узла, в ГБ
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
#disk = 10
|
|
|
|
|
|
#описание кластера
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании и обновлении
|
|
|
#desc = "<DESCRIPTION>"
|
|
|
|
|
|
#id extnet
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
#extnet_id = 0
|
|
|
|
|
|
#id vins
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
#vins_id = 1234
|
|
|
|
|
|
#storage Endpoint ID
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#используется при создании
|
|
|
#sep_id = 0
|
|
|
|
|
|
#sep pool
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#sep_pool = "pool"
|
|
|
|
|
|
#старт/стоп кластера
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - false
|
|
|
#тип - булев
|
|
|
#используется при создании и обновлении
|
|
|
#start = true
|
|
|
|
|
|
#флаг доступности кластера
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - true
|
|
|
#тип - булев
|
|
|
#enable = true
|
|
|
|
|
|
#создать кластер с/без балансировщика нагрузки
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - true
|
|
|
#тип - булев
|
|
|
#используется при создании
|
|
|
#with_lb = true
|
|
|
|
|
|
#создать схему отказоустойчивой LB
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - false
|
|
|
#тип - булев
|
|
|
#используется при создании
|
|
|
#ha_mode = true
|
|
|
|
|
|
#дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
|
|
|
#возможность взаимодействовать с кластером по FQDN
|
|
|
#параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
|
|
|
#опциональный параметр
|
|
|
#тип - массив строк
|
|
|
#используется при создании
|
|
|
#additional_sans = ["192.168.201.0","192.168.201.1"]
|
|
|
|
|
|
#используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
|
|
|
#это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#init_config = "{JSON string}"
|
|
|
|
|
|
#используется для определения глобальных настроек и конфигураций для всего кластера
|
|
|
#он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#cluster_config = "{JSON string}"
|
|
|
|
|
|
#используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
|
|
|
#он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#kubelet_config = "{JSON string}"
|
|
|
|
|
|
#используется для настройки поведения и параметров присоединения node к кластеру
|
|
|
#он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#kube_proxy_config = "{JSON string}"
|
|
|
|
|
|
#используется для настройки поведения и параметров присоединения node к кластеру
|
|
|
#он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#join_config = "{JSON string}"
|
|
|
|
|
|
#при создании кластре использовать подключение только к сети ExtNet
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - false
|
|
|
#тип - булев
|
|
|
#используется при создании
|
|
|
#extnet_only = true
|
|
|
|
|
|
#добавить ssl-сертификат в формате x509 pem
|
|
|
#опциональный параметр
|
|
|
#тип - файл с форматом в виде .crt
|
|
|
#используется при создании
|
|
|
#oidc_cert = file("ca.crt")
|
|
|
|
|
|
#тип эмулируемой системы
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
#используется при создании
|
|
|
#chipset = "i440fx"
|
|
|
|
|
|
#пользовательские значения sysctl для LB
|
|
|
#опциональный параметр
|
|
|
#тип - массив мап
|
|
|
#используется при создании и обновлении
|
|
|
#lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
|
|
|
|
|
|
#флаг для удаления k8s_cp, без возможности восстановления
|
|
|
#опциональный параметр
|
|
|
#тип - булев
|
|
|
#по умолчанию - true
|
|
|
#используется при удалении
|
|
|
#permanently = true
|
|
|
|
|
|
#восстановление группы после удаления
|
|
|
#опциональный параметр
|
|
|
#используется при редактировании ресурса
|
|
|
#по умолчанию - true
|
|
|
#тип - булев
|
|
|
#используется при обновлении
|
|
|
#restore = true
|
|
|
}
|
|
|
|
|
|
output "cp_out" {
|
|
|
value = dynamix_k8s_cp.cp
|
|
|
}
|