From c647785e72c62056762ed3b881a1e4f241318b6c Mon Sep 17 00:00:00 2001 From: Nikita Sorokin Date: Fri, 29 Sep 2023 16:44:36 +0300 Subject: [PATCH] updated resource decort_k8s and decort_k8s_cp info --- ...ение-кластером-kubernetes.md | 2 + ...ение-control-plane-кластера.md | 136 +++++++++++++++++- 2 files changed, 137 insertions(+), 1 deletion(-) diff --git a/07.01.06-Resource-функция-decort_k8s-управление-кластером-kubernetes.md b/07.01.06-Resource-функция-decort_k8s-управление-кластером-kubernetes.md index c6d980f..1463545 100644 --- a/07.01.06-Resource-функция-decort_k8s-управление-кластером-kubernetes.md +++ b/07.01.06-Resource-функция-decort_k8s-управление-кластером-kubernetes.md @@ -169,6 +169,8 @@ _Resource_ функция **decort_k8s** для создания кластер | cloud_init | string | :x: | Используется на этапе создания вм.
Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. | | cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. | | oidc_cert | string | :x: | ssl-сертификат в формате x509 pem | +| ha_mode | bool | :x: | Использовать высокодостпуню схему для балансировщика нагрузки | +| extnet_only | bool | :x: | Использовать только extnet | start | bool | :x: | Старт/Стоп кластера | ### Описание блока masters diff --git a/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md b/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md index b35e6e0..a247f40 100644 --- a/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md +++ b/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md @@ -12,8 +12,137 @@ _Resource_ функция **decort_k8s_cp** служит для управлен **Данный способ управления кластерами стал предпочтительным с версии провайдера 4.2.0 - для упрощения процесса миграции обратитесь к [**статье.**](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/05.07-Миграция-k8s-кластеров-на-версию-4.2.0) +### Работа с 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` в ресурсе `decort_k8s_cp`: + +```terraform +resource "decort_k8s_cp" "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` в ресурсе `decort_k8s_cp` + +```terraform +resource "decort_k8s_cp" "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` в ресурсе `decort_k8s_cp`: + +```terraform +resource "decort_k8s_cp" "cluster1" { + # ... + + cloud_init = file("initconfig.tftpl") + + # ... +} +``` + +4. Выполнить `terraform apply` + +**Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется** + ## Аргументы -_Resource_ функция **decort_flipgroup** принимает следующие аргументы: +_Resource_ функция **decort_k8s_cp** принимает следующие аргументы: | Аргумент | Тип | Обязательный | Описание | | --- | --- | :---: | --- | @@ -30,6 +159,11 @@ _Resource_ функция **decort_flipgroup** принимает следующ | with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки | | extnet_id | int | :x: | ID внешний сети для подключения worker'ов | | desc | string | :x: | Описание кластера | +| cloud_init | string | :x: | Используется на этапе создания вм.
Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. | +| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. | +| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem | +| ha_mode | bool | :x: | Использовать высокодостпуню схему для балансировщика нагрузки | +| extnet_only | bool | :x: | Использовать только extnet | start | bool | :x: | Старт/Стоп кластера | ## Возвращаемые значения