This commit is contained in:
asteam
2024-07-25 14:33:38 +03:00
commit 6f40af6a5f
946 changed files with 98335 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
/*
Пример использования
Получение информации о k8ci
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8ci_list" "k8ci_list" {
#поиск по ID
#опциональный параметр
#тип - целое число
by_id = 12
#поиск по наименованию
#опциональный параметр
#тип - строка
name = "name"
#поиск по статус
#опциональный параметр
#тип - строка
status = "status"
#поиск по worker драйверу
#опциональный параметр
#тип - строка
worker_driver = "wdriver"
#поиск по master драйверу
#опциональный параметр
#тип - строка
master_driver = "wdriver"
#поиск по network плагину
#опциональный параметр
#тип - строка
network_plugin = "flannel"
#показать выключенные K8CI
#опциональный параметр
#тип - булев
include_disabled = true
#сортировка по одному из поддерживаемых полей
#опциональный параметр
#тип - строка
#формат - "+поле" по возрастанию / "-поле" по убыванию
sort_by = "+name"
#номер страницы
#опциональный параметр
#тип - целое число
page = 1
#размер страницы
#опциональный параметр
#тип - целое число
size = 5
}
output "output_k8ci" {
value = data.dynamix_k8ci_list.k8ci_list
}

View File

@@ -0,0 +1,39 @@
/*
Пример использования
Получение информации о k8s кластере
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s" "k8s" {
#id кластера
#обязательный параметр
#тип - целое число
k8s_id = 49304
}
output "output_k8s" {
value = data.dynamix_k8s.k8s
}

View File

@@ -0,0 +1,38 @@
/*
Пример использования
Получение информации о компьютах k8s кластера
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s_computes" "computes" {
#id кластера
#обязательный параметр
#тип - целое число
k8s_id = 999
}
output "computes_out" {
value = data.dynamix_k8s_computes.computes
}

View File

@@ -0,0 +1,98 @@
/*
Пример использования
Получение списка доступных кластеров
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s_list" "k8s_list" {
#фильтр по id кластера
#опциональный параметр
#тип - целое число
#by_id = 100
#фильтр по имени кластера
#опциональный параметр
#тип - строка
#name = "test"
#фильтр по ip
#опциональный параметр
#тип - строка
#ip_address = "test"
#фильтр по id ресурсной группы
#опциональный параметр
#тип - целое число
#rg_id = 100
#фильтр по id балансировщика нагрузки
#опциональный параметр
#тип - целое число
#lb_id = 100
#фильтр по id ресурсной группы
#опциональный параметр
#тип - целое число
#bservice_id = 100
#фильтр по статусу
#опциональный параметр
#тип - строка
#status = "ENABLED"
#фильтр по техническому статусу
#опциональный параметр
#тип - строка
#tech_status = "STOPPED"
#включение удаленных k8s в результат
#опциональный параметр
#тип - булев
#если не задан - выводятся все неудаленные данные
#includedeleted = true
#сортировка по одному из поддерживаемых полей
#опциональный параметр
#тип - строка
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
#номер страницы для отображения
#опциональный параметр
#тип - целое число
#если не задан - выводятся все доступные данные
#page = 1
#размер страницы
#опциональный параметр
#тип - целое число
#если не задан - выводятся все доступные данные
#size = 1
}
output "output_k8s_list" {
value = data.dynamix_k8s_list.k8s_list
}

View File

@@ -0,0 +1,88 @@
/*
Пример использования
Получение списка удаленных кластеров
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s_list_deleted" "k8s_list_deleted" {
#фильтр по id кластера
#опциональный параметр
#тип - целое число
#by_id = 100
#фильтр по имени кластера
#опциональный параметр
#тип - строка
#name = "test"
#фильтр по ip
#опциональный параметр
#тип - строка
#ip_address = "test"
#фильтр по id ресурсной группы
#опциональный параметр
#тип - целое число
#rg_id = 100
#фильтр по id балансировщика нагрузки
#опциональный параметр
#тип - целое число
#lb_id = 100
#фильтр по id ресурсной группы
#опциональный параметр
#тип - целое число
#bservice_id = 100
#фильтр по техническому статусу
#опциональный параметр
#тип - строка
#tech_status = "STOPPED"
#сортировка по одному из поддерживаемых полей
#опциональный параметр
#тип - строка
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
#номер страницы для отображения
#опциональный параметр
#тип - целое число
#если не задан - выводятся все доступные данные
#page = 1
#размер страницы
#опциональный параметр
#тип - целое число
#если не задан - выводятся все доступные данные
#size = 1
}
output "output_k8s_list_deleted" {
value = data.dynamix_k8s_list_deleted.k8s_list_deleted
}

View File

@@ -0,0 +1,44 @@
/*
Пример использования
Получение информации о k8s кластере
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s_wg" "k8s_wg" {
#id кластера
#обязательный параметр
#тип - целое число
k8s_id = 49304
#id группы воркеров
#обязательный параметр
#тип - целое число
wg_id = 43329
}
output "output_k8s_wg" {
value = data.dynamix_k8s_wg.k8s_wg
}

View File

@@ -0,0 +1,47 @@
/*
Пример использования
Получение информации о мета данных рабочей группы k8s кластера
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s_wg_cloud_init" "wg_cloud_init" {
#id кластера
#обязательный параметр
#тип - целое число
k8s_id = 977
#id группы воркеров
#обязательный параметр
#тип - целое число
wg_id = 2110
}
output "wg_cloud_init" {
value = data.dynamix_k8s_wg_cloud_init.wg_cloud_init
}

View File

@@ -0,0 +1,39 @@
/*
Пример использования
Получение списка доступных групп воркеров в кластере
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
data "dynamix_k8s_wg_list" "k8s_wg_list" {
#id кластера
#обязательный параметр
#тип - целое число
k8s_id = 49304
}
output "output_k8s_wg_list" {
value = data.dynamix_k8s_wg_list.k8s_wg_list
}

View File

@@ -0,0 +1,9 @@
---
users:
- groups: users, wheel
name: user
plain_text_passwd: examplePassword
primary_group: user
ssh_authorized_keys:
- ssh-rsa EXAMPLE%id_rsa.pub
sudo: ALL=(ALL) NOPASSWD:ALL

View File

@@ -0,0 +1,176 @@
/*
Пример использования
Ресурса 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 = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_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"
#старт/стоп кластера
#опциональный параметр
#тип - булев
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")
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
lb_sysctl_params = [{text = "1", text = "some"}]
#команда destroy удаляет кластер без возможности восстановления
#опциональный параметр
#тип - булев
permanently = true
}
output "cp_out" {
value = dynamix_k8s_cp.cp
}

View File

@@ -0,0 +1,9 @@
---
users:
- groups: users, wheel
name: user
plain_text_passwd: examplePassword
primary_group: user
ssh_authorized_keys:
- ssh-rsa EXAMPLE%id_rsa.pub
sudo: ALL=(ALL) NOPASSWD:ALL

View File

@@ -0,0 +1,76 @@
/*
Пример использования
Получение информации о группе воркеров кластера Kubernetes(k8s)
*/
#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
dynamix = {
source = "basistech.ru/tf/dynamix"
version = "<VERSION>"
}
}
}
*/
provider "dynamix" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
resource "dynamix_k8s_wg" "wg" {
#id экземпляра k8s
#обязательный параметр
#тип - целое число
k8s_id = 1234
#имя worker group
#обязательный параметр
#тип - строка
name = "workers-2"
#количество worker node для создания
#опциональный параметр
#тип - целое число
#по - умолчанию - 1
num = 2
#количество cpu для 1 worker node
#опциональный параметр
#тип - целое число
#по - умолчанию - 1
cpu = 1
#количество RAM для одной worker node в Мбайтах
#опциональный параметр
#тип - целое число
#по-умолчанию - 1024
ram = 1024
#размер загрузочного диска для worker node, в Гбайтах
#опциональный параметр
#тип - целое число
#по - умолчанию - 0
#если установлен параметр 0, то размер диска будет равен размеру образа
disk = 10
#Перечень аргументов для cloud-init для виртуальных машин worker групп
#опциональный параметр
#тип - файл с форматом в виде yaml
#используется при создании и обновлении ресурса
cloud_init = file("initconfig.tftpl")
}
output "test_wg" {
value = dynamix_k8s_wg.wg
}