Files

228 lines
9.4 KiB
Terraform
Raw Normal View History

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