You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
9.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
Пример использования
Ресурса 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
}