/* Пример использования Ресурса k8s Ресурс позволяет: 1. Создавать кластер 2. Редактировать кластер 3. Удалять кластер 4. Настроить мастер-узел 5. Изменить кол-во ВМ в мастер-узле */ #Раскомментируйте этот код, #и внесите необходимые правки в версию и путь, #чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером /* terraform { required_providers { dynamix = { source = "basistech.ru/tf/dynamix" version = "" } } } */ provider "dynamix" { authenticator = "decs3o" #controller_url = controller_url = "https://ds1.digitalenergy.online" #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 = "" #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 }