|
|
|
|
_Resource_ функция **dynamix_k8s** служит для управления кластером.
|
|
|
|
|
|
|
|
|
|
### Работа с cluster_config
|
|
|
|
|
|
|
|
|
|
Для использования cluster_config конфигурации, следует:
|
|
|
|
|
|
|
|
|
|
1. Создать файл с расширением `.json` в рабочей директории.
|
|
|
|
|
2. Описать в созданном файле конфигурацию cluster_config в формате JSON:
|
|
|
|
|
|
|
|
|
|
#### cluster_config.json
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"apiServer": {
|
|
|
|
|
"extraArgs": {
|
|
|
|
|
"oidc-issuer-url": "https://dex.decs.local/",
|
|
|
|
|
"oidc-client-id": "dex",
|
|
|
|
|
"oidc-username-claim": "email",
|
|
|
|
|
"oidc-groups-claim": "groups",
|
|
|
|
|
"oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. Указать путь до файла `cluster_config.json` в качестве значения параметра `cluster_config` в ресурсе `dynamix_k8s`:
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
resource "dynamix_k8s" "cluster1" {
|
|
|
|
|
# ...
|
|
|
|
|
|
|
|
|
|
cluster_config = file("cluster_config.json")
|
|
|
|
|
|
|
|
|
|
# ...
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. Выполнить `terraform apply`
|
|
|
|
|
|
|
|
|
|
### Работа с oidc\_\_cert
|
|
|
|
|
|
|
|
|
|
Для работы с oidc_cert следует:
|
|
|
|
|
|
|
|
|
|
1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории
|
|
|
|
|
|
|
|
|
|
#### ca.crt
|
|
|
|
|
|
|
|
|
|
Пример содержания файла ca.crt
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
|
|
MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL
|
|
|
|
|
BQAwdjELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9z
|
|
|
|
|
Y293MQwwCgYDVQQKDANBQkMxDDAKBgNVBAsMA0FCQzEMMAoGA1UEAwwDQUJDMRsw
|
|
|
|
|
GQYJKoZIhvcNAQkBFgxBQkNAbWFpbC5jb20wHhcNMjMwOTI2MTQ0MzM2WhcNMjQw
|
|
|
|
|
OTI1MTQ0MzM2WjB2MQswCQYDVQQGEwJSVTEPMA0GA1UECAwGTW9zY293MQ8wDQYD
|
|
|
|
|
VQQHDAZNb3Njb3cxDDAKBgNVBAoMA0FCQzEMMAoGA1UECwwDQUJDMQwwCgYDVQQD
|
|
|
|
|
DANBQkMxGzAZBgkqhkiG9w0BCQEWDEFCQ0BtYWlsLmNvbTCCASIwDQYJKoZIhvcN
|
|
|
|
|
AQEBBQADggEPADCCAQoCggEBAOUGj6B7sBrAYBuAQ4I0f6plcrLG33cNGzcktZrS
|
|
|
|
|
SZRWOMwXzBCUNNOBKXZHnapUAoZW23BllpZ/y50Y01JAggdBPbODw864ZROJMt3P
|
|
|
|
|
xlZZJQghraFUF8H/ANsmRzfh3nD98fBSr4YUg2VGEwg+Qvzh2peiNBRer4tD6QuV
|
|
|
|
|
BqiJZyUNrz0JUKmFZF/uTM4rNRhmF7y95A49GDZeIzwFFARSMkQPtIjMj8h75fs3
|
|
|
|
|
PD41wEkQyV5SSM3YMGQeqp/7ay10ec31s6cn/PBB8bF8PTVYc+hJOfNuVrkm8CqG
|
|
|
|
|
w1kzKg+7ztgcCMOEL2yftgckg5PSFMQ+5RPgBieEOj3IDHsCAwEAAaNTMFEwHQYD
|
|
|
|
|
VR0OBBYEFPLv18WpzpwIGhqlM2EAHl7TXgNnMB8GA1UdIwQYMBaAFPLv18WpzpwI
|
|
|
|
|
GhqlM2EAHl7TXgNnMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
|
|
|
|
|
ADbH2Y4ExwEllkKrQ+VcyajjPXV9vcG5Ag+/9DUM0aFCO4H0ZzdBKHVCGMwIx5sS
|
|
|
|
|
gLSLx2zoT2F3oTHaJ4T9iVx+sBleKZZbpApO51dLaVSiy69cfkZy/GOMiWuEEZPU
|
|
|
|
|
UdGTMAAoM1+gqx8n0EsGf96zJZ+PtjHi6RdNmPBnuRRvRRPXQKNLJF1kYDgYlFdH
|
|
|
|
|
KxLl/lm/Y0zhV/VNd7OXsV0LAsyrRiNpuyCaniCOTR1ZRkD4UfWkc/bbNgbLjAfb
|
|
|
|
|
8Y0SjvSiYpFPE0DQv0ksSrhySJtyCy71UTGzSHI+tRB9LwhnDiijAoT7LnxQgNq8
|
|
|
|
|
5IdaZNyYvyGubkczwBrFddU=
|
|
|
|
|
-----END CERTIFICATE-----
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. Указать путь до файла `ca.crt` в качестве значениея параметра `oidc_cert` в ресурсе `dynamix_k8s`
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
resource "dynamix_k8s" "cluster1" {
|
|
|
|
|
# ...
|
|
|
|
|
|
|
|
|
|
oidc_cert = file("ca.crt")
|
|
|
|
|
|
|
|
|
|
# ...
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. Выполнить `terraform apply`
|
|
|
|
|
|
|
|
|
|
### Работа с cloud_init
|
|
|
|
|
|
|
|
|
|
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
|
|
|
|
|
|
|
|
|
|
**Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!**
|
|
|
|
|
|
|
|
|
|
Для использования cloud_init конфигурации, следует:
|
|
|
|
|
|
|
|
|
|
1. Создать файл с расширением `.tftpl` в рабочей директории.
|
|
|
|
|
2. Описать в созданном файле конфигурацию cloud_init в формате YAML:
|
|
|
|
|
|
|
|
|
|
### initconfig.tftpl
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
---
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `dynamix_k8s`:
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
resource "dynamix_k8s" "cluster1" {
|
|
|
|
|
# ...
|
|
|
|
|
|
|
|
|
|
cloud_init = file("initconfig.tftpl")
|
|
|
|
|
|
|
|
|
|
# ...
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. Выполнить `terraform apply`
|
|
|
|
|
|
|
|
|
|
**Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется**
|
|
|
|
|
|
|
|
|
|
## Работа в параллельном режиме
|
|
|
|
|
|
|
|
|
|
Рекомендуется создавать одновременно не более одного экземпляра ресурса.
|
|
|
|
|
В случае необходимости создания нескольких ресурсов одновременно, необходимо запускать `terraform apply/plan` в режиме `-parallelism=1`.
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
|
|
|
|
|
_Resource_ функция **dynamix_k8s** для создания кластера принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера |
|
|
|
|
|
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
|
|
|
|
| k8sci_id | int | :heavy_check_mark: | ID catalogue item |
|
|
|
|
|
| wg_name | string | :heavy_check_mark: | Имя для первой worker group, <br/> созданной в кластере |
|
|
|
|
|
| network_plugin | string | :heavy_check_mark: | Плагин сети для кластера. Допустимые значения: flannel, calico, weavenet |
|
|
|
|
|
| labels | []string | :x: | Список меток для дефолтной worker-группы k8s |
|
|
|
|
|
| taints | []string | :x: | Список taints для дефолтной worker-группы k8s |
|
|
|
|
|
| annotations | []string | :x: | Список аннотаций дефолтной worker-группы k8s |
|
|
|
|
|
| masters | Struct{} [см. ниже](#описание-структуры-masters) | :x: | Настройка мастер-группы |
|
|
|
|
|
| workers | Struct{} [см. ниже](#описание-структуры-workers) | :x: | Настройка worker-групп |
|
|
|
|
|
| extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
|
|
|
|
|
| vins_id | int | :x: | ID виртуальной сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
|
|
|
|
|
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DYNAMIX для первичного конфигурирования виртуальной машины после её создания |
|
|
|
|
|
| init_config | string | :x: | Используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере, это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации |
|
|
|
|
|
| kubelet_config | string | :x: | Используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet |
|
|
|
|
|
| kube_proxy_config | string | :x: | Используется для настройки поведения и параметров присоединения node к кластеру, он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy |
|
|
|
|
|
| cluster_config | string | :x: | Используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности |
|
|
|
|
|
| join_config | string | :x: | Используется для настройки поведения и параметров присоединения node к кластеру, он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата |
|
|
|
|
|
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
|
|
|
|
| with_lb | bool | :x: | Создать кластер с балансировщиком нагрузки |
|
|
|
|
|
| additional_sans | []string | :x: | Дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes, возможность взаимодействовать с кластером по FQDN параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard) |
|
|
|
|
|
| lb_sysctl_params | []map[string]interface{} | :x: | Пользовательские значения sysctl для балансировщика нагрузки |
|
|
|
|
|
| extnet_only | bool | :x: | Использовать только extnet для работы кластера |
|
|
|
|
|
| desc | string | :x: | Описание кластера |
|
|
|
|
|
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
|
|
|
|
| ha_mode | bool | :x: | Режим высокой доступностью балансировщика нагрузки |
|
|
|
|
|
| start | bool | :x: | Старт/Стоп кластера |
|
|
|
|
|
| permanently | bool | :x: | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
|
|
|
|
|
### Описание структуры masters
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| num | int | :heavy_check_mark: | Количество nodes |
|
|
|
|
|
| cpu | int | :heavy_check_mark: | Количество cpu |
|
|
|
|
|
| ram | int | :heavy_check_mark: | Количество RAM в Mбайтах |
|
|
|
|
|
| disk | int | :heavy_check_mark: | Объем boot диска в ГБ |
|
|
|
|
|
| sep_id | int | :x: | Идентификатор SEP |
|
|
|
|
|
| sep_pool | string | :x: | Название SEP pool'а |
|
|
|
|
|
|
|
|
|
|
### Описание структуры workers
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| name | string | :heavy_check_mark: | Наименование воркер-группы |
|
|
|
|
|
| num | int | :heavy_check_mark: | Количество nodes |
|
|
|
|
|
| cpu | int | :heavy_check_mark: | Количество cpu |
|
|
|
|
|
| ram | int | :heavy_check_mark: | Количество RAM в Mбайтах |
|
|
|
|
|
| disk | int | :heavy_check_mark: | Объем boot диска в ГБ |
|
|
|
|
|
| sep_id | int | :x: | Идентификатор SEP |
|
|
|
|
|
| sep_pool | string | :x: | Название SEP pool'а |
|
|
|
|
|
| labels | []string | :x: | Список labels |
|
|
|
|
|
| annotations | []string | :x: | Список annotations |
|
|
|
|
|
| taints | []string | :x: | Список taints |
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
|
|
|
|
|
В случае успешного выполнения _resource_ функция **dynamix_k8s** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| acl | Struct{} [см. ниже](#описание-структуры-acl) | acl |
|
|
|
|
|
| account_id | int | ID аккаунта |
|
|
|
|
|
| account_name | string | Имя аккаунта |
|
|
|
|
|
| bservice_id | int | ID bservice |
|
|
|
|
|
| k8sci_id | int | ID образа кластера |
|
|
|
|
|
| created_by | string | Кем был создан ресурс |
|
|
|
|
|
| created_time | int | Время создания ресурса |
|
|
|
|
|
| deleted_by | string | Кем был удален ресурс |
|
|
|
|
|
| deleted_time | int | Время удаления ресурса |
|
|
|
|
|
| extnet_id | int | ID внешней сети |
|
|
|
|
|
| k8s_ci_name | string | Имя образа кластера |
|
|
|
|
|
| masters | []Struct{} [см. ниже](#описание-структуры-masters) | Структура компьютов мастеров |
|
|
|
|
|
| workers | []Struct{} [см. ниже](#описание-структуры-workers) | Структура компьютов воркеров |
|
|
|
|
|
| lb_id | int | ID балансировщика нагрзуки |
|
|
|
|
|
| lb_ip | string | IP балансировщика нагрзуки |
|
|
|
|
|
| name | string | Имя ресурса |
|
|
|
|
|
| network_plugin | string | Сетевой плагин |
|
|
|
|
|
| rg_id | int | ID ресурсной группы |
|
|
|
|
|
| rg_name | string | Имя ресурсной группы |
|
|
|
|
|
| status | string | Статус ресурса |
|
|
|
|
|
| tech_status | string | Технический статус ресурса |
|
|
|
|
|
| updated_by | string | Кем был обновлен ресурс |
|
|
|
|
|
| updated_time | int | Время последнего обновления ресурса |
|
|
|
|
|
| kubeconfig | string | Конфиг |
|
|
|
|
|
| vins_id | int | ID виртуальной сети |
|
|
|
|
|
|
|
|
|
|
### Описание структуры acl
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| account_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | account_acl |
|
|
|
|
|
| k8s_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | k8s_acl |
|
|
|
|
|
| rg_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | rg_acl |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка acl
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| explicit | bool | explicit |
|
|
|
|
|
| guid | string | ID ресурса |
|
|
|
|
|
| right | string | right |
|
|
|
|
|
| status | string | Статус ресурса |
|
|
|
|
|
| type | string | Тип ресурса |
|
|
|
|
|
| user_group_id | string | ID группы |
|
|
|
|
|
|
|
|
|
|
### Описание структуры masters
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| cpu | int | Кол-во cpu на компьютах master |
|
|
|
|
|
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters |
|
|
|
|
|
| disk | int | ID диска |
|
|
|
|
|
| master_id | int | ID группы master |
|
|
|
|
|
| name | string | Имя группы master |
|
|
|
|
|
| num | int | Кол-во компьютов в группе master |
|
|
|
|
|
| ram | int | Кол-во Ram на компьютах группы master |
|
|
|
|
|
|
|
|
|
|
### Описание структуры workers
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| annotations | []string | Аннотации группы workers |
|
|
|
|
|
| cpu | int | Кол-во cpu на компьютах workers |
|
|
|
|
|
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters |
|
|
|
|
|
| disk | int | ID диска |
|
|
|
|
|
| guid | string | ID ресурса |
|
|
|
|
|
| id | int | ID группы workers |
|
|
|
|
|
| labels | []string | Лейблы группы workers |
|
|
|
|
|
| name | string | Имя ресурса |
|
|
|
|
|
| num | int | Кол-во компьютов в группе workers |
|
|
|
|
|
| ram | int | Кол-во Ram на компьютах группы workers |
|
|
|
|
|
| taints | []string | огранечители группы workers |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка detailed_info
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| compute_id | int | ID компьюта в составе группы |
|
|
|
|
|
| name | string | Имя компьюта в составе группы |
|
|
|
|
|
| status | string | Статус компьюта в составе группы |
|
|
|
|
|
| tech_status | string | Статус компьюта в составе группы |
|
|
|
|
|
| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы |
|
|
|
|
|
| natable_vins_ip | string | IP NAT |
|
|
|
|
|
| natable_vins_network | string | IP виртуальной сети |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка interfaces
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
|
|
| ip_address | string | IP интерфейса |
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
|
|
|
|
|
Пример вызова _resource_ функции **dynamix_k8s**:
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
resource "dynamix_k8s" "cluster" {
|
|
|
|
|
#имя кластера
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#при изменении - обновляет имя кластера
|
|
|
|
|
#тип - строка
|
|
|
|
|
name = "tftest"
|
|
|
|
|
|
|
|
|
|
#id resource group
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
rg_id = 776
|
|
|
|
|
|
|
|
|
|
#id catalogue item
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
k8sci_id = 9
|
|
|
|
|
|
|
|
|
|
#сетевой плагин
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
network_plugin = "flannel"
|
|
|
|
|
|
|
|
|
|
#имя для первой worker group, созданной в кластере
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
wg_name = "workers"
|
|
|
|
|
|
|
|
|
|
# список labels для дефолтной worker группы
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - массив строк
|
|
|
|
|
labels = ["key1=val1", "key2=val2"]
|
|
|
|
|
|
|
|
|
|
# список annotations для дефолтной worker группы
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# В скором времени параметры labels, annotations, taints будут полностью перенесены в структуру workers
|
|
|
|
|
# тип - массив строк
|
|
|
|
|
annotations = ["key1=val1", "key2=val2"]
|
|
|
|
|
|
|
|
|
|
# список taints для дефолтной worker группы
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# В скором времени параметры labels, annotations, taints будут полностью перенесены в структуру workers
|
|
|
|
|
# тип - массив строк
|
|
|
|
|
taints = ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
|
|
|
|
|
|
|
|
|
|
#настройка мастер node или nodes
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#максимальное кол-во элементов - 1
|
|
|
|
|
#тип - список нод
|
|
|
|
|
masters {
|
|
|
|
|
#кол-во node (1, 3 или 5)
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
num = 1
|
|
|
|
|
|
|
|
|
|
#кол-во cpu
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cpu = 2
|
|
|
|
|
|
|
|
|
|
#кол-во RAM в Мбайтах
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ram = 2048
|
|
|
|
|
|
|
|
|
|
#размер диска в Гбайтах
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
disk = 10
|
|
|
|
|
|
|
|
|
|
#идентификатор SEP для создания загрузочных дисков для master узлов
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
sep_id = 3
|
|
|
|
|
|
|
|
|
|
#наименование MasterSEPPool используется если установлен master sepId, также может быть пустым
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
sep_pool = "data_01"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#настройка worker группы
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#Первая указанная воркер-группа должна соответствовать изначально созданной вместе с кластером.
|
|
|
|
|
#labels, annotations, taints для дефолтной worker группы указываются в корне ресурса при создании кластера.
|
|
|
|
|
workers {
|
|
|
|
|
#имя группы
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
name = "test"
|
|
|
|
|
|
|
|
|
|
#кол-во node
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
num = 1
|
|
|
|
|
|
|
|
|
|
#кол-во cpu
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cpu = 2
|
|
|
|
|
|
|
|
|
|
#кол-во RAM в Мбайтах
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ram = 2048
|
|
|
|
|
|
|
|
|
|
#размер диска в Гбайтах
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
disk = 10
|
|
|
|
|
|
|
|
|
|
#Идентификатор SEP
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
sep_id = 1010
|
|
|
|
|
|
|
|
|
|
#Имя SEP pool'a
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
sep_pool = "data01"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#...Далее можно создавать произвольное кол-во дополнительных worker групп
|
|
|
|
|
#labels, annotations и taints для последующих групп указываются непосредственно в структуре workers
|
|
|
|
|
workers {
|
|
|
|
|
#наименование worker группы
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
name = "additional_wg"
|
|
|
|
|
|
|
|
|
|
#кол-во node
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
num = 2
|
|
|
|
|
|
|
|
|
|
#кол-во cpu
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cpu = 2
|
|
|
|
|
|
|
|
|
|
#кол-во RAM в Мбайтах
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ram = 4096
|
|
|
|
|
|
|
|
|
|
#размер диска в Гбайтах
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
disk = 10
|
|
|
|
|
|
|
|
|
|
#идентификатор SEP
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
sep_id = 1010
|
|
|
|
|
|
|
|
|
|
#имя SEP pool'a
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
sep_pool = "data01"
|
|
|
|
|
|
|
|
|
|
#список лейблов
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - массив строк
|
|
|
|
|
labels = ["label1=value1", "label2=value2"]
|
|
|
|
|
|
|
|
|
|
#список аннотаций
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - массив строк
|
|
|
|
|
annotations = ["key1=value1", "key2=value2"]
|
|
|
|
|
|
|
|
|
|
#список taints
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - массив строк
|
|
|
|
|
taints = ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#id extnet
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
extnet_id = 0
|
|
|
|
|
|
|
|
|
|
#id vins
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
vins_id = 1234
|
|
|
|
|
|
|
|
|
|
#создать Kubernetes cluster с masters nodes с подключенным LB
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - булев
|
|
|
|
|
with_lb = true
|
|
|
|
|
|
|
|
|
|
#пользовательские значения sysctl для LB
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - список мап
|
|
|
|
|
lb_sysctl_params = [{ text = "1", text = "some" }]
|
|
|
|
|
|
|
|
|
|
#позволяет создать схему отказоустройчивой 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}"
|
|
|
|
|
|
|
|
|
|
#описание кластера
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
desc = "description"
|
|
|
|
|
|
|
|
|
|
#перечень аргументов для cloud-init создаваемым группам узлов Worker
|
|
|
|
|
#необязательный параметр
|
|
|
|
|
#тип - файл с форматом в виде yaml
|
|
|
|
|
cloud_init = file("initconfig.tftpl")
|
|
|
|
|
|
|
|
|
|
#при создании кластре использовать подключение только к сети ExtNet
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - булев
|
|
|
|
|
extnet_only = true
|
|
|
|
|
|
|
|
|
|
#добавить ssl-сертификат в формате x509 pem
|
|
|
|
|
#необязательный параметр
|
|
|
|
|
#тип - файл с форматом в виде x509 pem
|
|
|
|
|
oidc_cert = file("ca.crt")
|
|
|
|
|
|
|
|
|
|
#запуск,остановка кластера
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - булев
|
|
|
|
|
start = true
|
|
|
|
|
|
|
|
|
|
#команда destroy удаляет кластер без возможности восстановления
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - булев
|
|
|
|
|
permanently = true
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
После успешного завершения такого вызова **dynamix_k8s** в переменной `dynamix_k8s.cluster` будут сохранены возвращаемые значения.
|