/* Пример использования Ресурса 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" #старт/стоп кластера #опциональный параметр #тип - булев start = true #создать кластер с/без балансировщика нагрузки #опциональный параметр #тип - булев with_lb = true #позволяет создать схему отказоустройчивой LB #опциональный параметр #тип - булев 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 #опциональный параметр #тип - булев extnet_only = true #добавить ssl-сертификат в формате x509 pem #необязательный параметр #тип - файл с форматом в виде x509 pem oidc_cert = file("ca.crt") #тип эмулируемой системы #опциональный параметр #тип - строка chipset = "i440fx" #пользовательские значения sysctl для LB #опциональный параметр #тип - список мап lb_sysctl_params = [{text = "1", text = "some"}] #команда destroy удаляет кластер без возможности восстановления #опциональный параметр #тип - булев permanently = true } output "cp_out" { value = dynamix_k8s_cp.cp }