Доступно в редакциях:  CE, BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)

Стадия жизненного цикла модуля: General Availability

У модуля нет обязательных настроек.

В модуле реализовано 3 алерта.

Модуль включен по умолчанию в наборах модулей: Default, Managed. Модуль выключен по умолчанию в наборе модулей Minimal.

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль cert-manager, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля

  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля cert-manager:

    d8 system module enable cert-manager
    
  • С помощью ModuleConfig cert-manager.

    Установите spec.enabled в true или false в ModuleConfig cert-manager (создайте его, при необходимости).

    Пример манифеста для включения модуля cert-manager:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: cert-manager
    spec:
      enabled: true
    

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль cert-manager, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig cert-manager на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль cert-manager), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig cert-manager (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc cert-manager
    

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig cert-manager, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig cert-manager:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: cert-manager
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.
    

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.cleanupOrphanSecrets
      булевый

      Удалять Secret с сертификатом автоматически, если соответствующий ресурс Certificate удален из кластера.

      По умолчанию: false

      Примеры:

      cleanupOrphanSecrets: true
      
      cleanupOrphanSecrets: false
      
    • settings.cloudDNSServiceAccount
      строка

      Service Account для Google Cloud из того же проекта с ролью Администратора DNS.

      Пример:

      cloudDNSServiceAccount: eyJzYSI6ICJhYmNkZWZnaEBzZXJ2aWNlYWNjb3VudC5jb20iLCAicHJvamVjdF9pZCI6ImFhYWFhIn0=
      
    • settings.cloudflareAPIToken
      строка

      API Tokens позволяют использовать ключи, привязанные к определенным DNS-зонам.

      Рекомендуется использовать API Tokens для более высокой безопасности, поскольку они имеют более строгие разрешения и могут быть легко отозваны.

      Способ проверки того, что домены, указанные в ресурсе Certificate, для которых заказывается сертификат, находятся под управлением cert-manager у DNS-провайдера Cloudflare. Проверка происходит путем добавления специальных TXT-записей для домена ACME DNS01 Challenge Provider.

      Пример:

      cloudflareAPIToken: token
      
    • settings.cloudflareEmail
      строка

      Почтовый ящик проекта, на который выдавались доступы для управления Cloudflare.

      Пример:

      cloudflareEmail: example@example.com
      
    • settings.cloudflareGlobalAPIKey
      строка

      Cloudflare Global API key для управления DNS-записями.

      Способ проверки того, что домены, указанные в ресурсе Certificate, для которых заказывается сертификат, находятся под управлением cert-manager у DNS-провайдера Cloudflare. Проверка происходит путем добавления специальных TXT-записей для домена ACME DNS01 Challenge Provider.

      Пример:

      cloudflareGlobalAPIKey: key
      
    • settings.digitalOceanCredentials
      строка

      Access Token от Digital Ocean API, который можно создать в разделе API.

      Пример:

      digitalOceanCredentials: creds
      
    • settings.disableLetsencrypt
      булевый

      Не создавать ClusterIssuer letsencrypt и letsencrypt-staging в кластере (если true).

      Примеры:

      disableLetsencrypt: true
      
      disableLetsencrypt: false
      
    • settings.email
      строка

      Email проекта, на который LetsEncrypt будет слать уведомления.

      Пример:

      email: example@example.com
      
    • settings.enableCAInjector
      булевый

      Включить CAInjector. Он необходим только для инъекции CA-сертификатов в ValidatingWebhookConfiguration, MutatingWebhookConfiguration, CustomResourceDefinition и APIService. Deckhouse не использует CAInjector, поэтому включать нужно только в том случае, если вы используете в своих сервисах пользовательские инъекции CA.

      По умолчанию: false

      Примеры:

      enableCAInjector: true
      
      enableCAInjector: false
      
    • settings.ingressClassHttp01
      строка

      Имя ingressClass используемого для подтверждения владения доменом методом ACME HTTP-01. Если параметр не указан, то используется ingressClass по умолчанию.

      Пример:

      ingressClassHttp01: nginx
      
    • settings.maxConcurrentChallenges
      целочисленный

      Максимальное количество одновременных Challenges в статусе Processing

      Допустимые значения: 0 <= X

      Пример:

      maxConcurrentChallenges: 25
      
    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      nodeSelector:
        has-gpu: 'true'
      
    • settings.recursiveSettings
      объект

      Параметры использования рекурсивных DNS-серверов, которые применяются для проверки существования записи в DNS, перед запуском процесса подтверждения владения доменом методом ACME DNS-01.

      Пример:

      recursiveSettings:
        nameservers:
        - 8.8.8.8:53
        - https://1.1.1.1
        useOnlyRecursive: true
      
      • settings.recursiveSettings.nameservers
        массив строк

        Список рекурсивных DNS-серверов (IP:порт или HTTPS-URL).

        • Элемент массива
          строка

          Шаблон: ^(?:[0-9]{1,3}(?:\.[0-9]{1,3}){3}:\d{1,5}|https?://[^\s]+)$

      • settings.recursiveSettings.useOnlyRecursive
        булевый

        Если значение true, для проверки существования записи в DNS перед запуском процесса подтверждения владения доменом будут использоваться только указанные рекурсивные DNS-серверы.

        По умолчанию: false

    • settings.route53AccessKeyID
      строка

      Access Key ID пользователя с необходимыми правами.

      Amazon Route53 IAM Policy для управления доменными записями домена.

      Пример:

      route53AccessKeyID: key_id
      
    • settings.route53SecretAccessKey
      строка

      Secret Access Key пользователя с необходимыми правами для управления доменными записями домена.

      Пример:

      route53SecretAccessKey: secret
      
    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      tolerations:
      - key: dedicated.deckhouse.io
        operator: Equal
        value: cert-manager
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка