Дополнительные настройки helm-чарта

Создание секретов

Секрет — это специальный объект в Kubernetes, предназначенный для безопасного хранения конфиденциальной информации

Чтобы применить обновленную конфигурацию файла values.yaml, необходимо выполнить команду:

sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml
Для корректной работы системы необходимы валидные сертификаты
(Подробнее — см. Требования)

Секреты корневого центра сертификации в IVA ID

Необязательный параметр

К IVA ID по защищенному TLS-соединению могут быть подключены внешние сервисы (например, LDAP-каталог), использующие сертификаты, выданные сторонними корневыми центрами.
Сертификаты этих центров должны быть добавлены в хранилище корневых сертификатов IVA ID.
Каждый сертификат корневого центра хранится в своем секрете.

Для создания секрета для хранения сертификата корневого центра необходимо выполнить команду:

sudo kubectl create secret generic mycompany-ca-truststore -n default --from-file=ca.crt=rootCA.crt

где:

  • mycompany-ca-truststore — название секрета

  • rootCA.crt — файл с сертификатом корневого центра

Если требуется использовать сертификаты нескольких корневых центров, то необходимо создать свой секрет для каждого сертификата, выполнив команду:

sudo kubectl create secret generic mycompany-ca-truststore-2 -n default --from-file=ca.crt=rootCA-2.crt

где:

  • mycompany-ca-truststore-2 — название секрета

  • rootCA-2.crt — файл с сертификатом корневого центра

Секрет для прокси-сервера пуш-уведомлений

Необязательный параметр

IVA One поддерживает отправку пуш-уведомлений через провайдеров APNs, FCM и WebPush с использованием корпоративного прокси-сервера. Прокси-сервер используется для всех исходящих соединений к внешним пуш-сервисам.

Особенности использования прокси-сервера пуш-уведомлений:

  • поддерживаются схемы http и https

  • поддерживается Basic Authentication (в формате http://user:pass@host:port)

Для возможности использования прокси-сервера, необходимо предварительно создать секрет с URL-строкой подключения, выполнив команду:

sudo kubectl create secret generic iva-one-push-proxy -n default \
  --from-literal=url=https://<USERNAME>:<PASSWORD>@<PROXY_DOMAIN>:<PORT>

где:

  • iva-one-push-proxy — название секрета для хранения URL-строки подключения

  • <USERNAME>:<PASSWORD> — имя пользователя и пароль для аутентификации на прокси-сервере

  • <PROXY_DOMAIN>:<PORT> — FQDN прокси-сервера и порт подключения, например, proxy.company.com:8080

Секреты клиентов

Секреты клиентов IVA One, IVA Mail, IVA MCU и Grafana рекомендуется хранить в секретах Kubernetes.

Порядок выполняемых действий:

  1. создать секреты с помощью команды:

    # IVA One
    sudo kubectl create secret generic iva-one-id-secret -n default \
      --from-literal=secret=<CLIENT_SECRET_IVA_ONE>
    # IVA Mail
    kubectl create secret generic iva-mail-jump-secret -n default \
      --from-literal=username='admin' \
      --from-literal=password='admin'
    # IVA MCU
    kubectl create secret generic iva-mcu-app-secret -n default \
      --from-literal=appSecret=<CLIENT_SECRET_IVA_MCU>
    #grafana
    kubectl create secret generic iva-one-grafana-custom -n default \
      --from-literal=admin-user='<ADMIN_USER>' \
      --from-literal=admin-password='<ADMIN_PASSWORD>'

    где:

    • iva-one-id-secret — название секрета клиента IVA One

    • iva-mail-jump-secret — название секрета клиента IVA Mail

    • iva-mcu-app-secret — название секрета клиента IVA MCU

    • iva-one-grafana-custom — название секрета клиента Grafana

    • <CLIENT_SECRET_IVA_ONE> — скопированный в веб-панели администрирования IVA ID секрет клиента IVA One

    • <CLIENT_SECRET_IVA_MCU> — скопированный в веб-панели администрирования IVA ID секрет клиента IVA MCU

    • admin — логин и пароль Администратора IVA Mail (значения, установленные по умолчанию)

    • <ADMIN_USER> — логин Администратора для доступа в Grafana

    • <ADMIN_PASSWORD> — пароль Администратора для доступа в Grafana

  2. указать названия секретов клиентов в соответствующих секциях в файле конфигурации values.yaml:

    • открыть файл /opt/iva/values.yaml с помощью команды:

      sudo nano /opt/iva/values.yaml
    • указать названия секретов в секции iva соответствующих полях:

      • one — для клиента IVA One

      • mail — для клиента IVA Mail

      • mcu — для клиента IVA MCU

      • grafana — для клиента Grafana

        iva:
          one:
            id:
            ...
              secretName: &iva_one_id_secret_name "iva-one-id-secret"
             ...
          mail:
            jump:
             ...
              secretName: &iva_mail_jump_secret_name "iva-mail-jump-secret"
             ...
          mcu:
             ...
            secretName: &iva_mcu_secret_name "iva-mcu-app-secret"
             ...
          grafana:
            enabled: *grafana_embedded
             ...
            admin:
             existingSecret: "iva-one-grafana-custom"
             ...

    Если имена секретов не указаны — установлено значение "", то будут использоваться значения, явно заданные в соответствующих полях в файле конфигурации values.yaml, либо созданные Kubernetes автоматически.

Настройка дополнительных параметров развертывания

При установке IVA One доступна настройка следующих дополнительных параметров развертывания:

Параметр развертывания trustedProxies

Необязательный параметр

В значениях параметра trustedProxies указывается список доверенных прокси-серверов обслуживающих клиентские соединения. IP-адреса доверенных прокси-серверов удаляются из HTTP-заголовков, в результате остается только реальный IP-адрес клиента.

Порядок выполняемых действий:

  1. открыть файл /opt/iva/values.yaml с помощью команды:

    sudo nano /opt/iva/values.yaml
  2. для настройки параметра trustedProxies необходимо указать адреса прокси-серверов или их подсеть:

    presets:
      trustedProxies: &trusted_proxies ["10.42.0.0/16", "127.0.0.1", "172.16.0.0/12"]
    Сеть "10.42.0.0/16" является внутренней сетью k3s и используется по умолчанию для сетевой связности между подами.
    Данную сеть исключать нельзя!

    Если прокси-сервера не используются, то необходимо оставить только внутреннюю сеть k3s, используемую по умолчанию:

    presets:
      trustedProxies: &trusted_proxies ["10.42.0.0/16"]

Настройка EventBus

Обязательный параметр

При выборе типа сервиса NodePort в качестве порта доступа к служебному каналу Федерации (шине NATS) для параметра externalPort необходимо указывать значения из диапазона от 30000 до 332767 — по умолчанию установлено значение 32222.

eventbus:
  serviceType: NodePort  # Use LoadBalancer for HA clusters; NodePort is suitable for simple setups
  externalPort: 32222    # For NodePort; can be left empty if using LoadBalancer
  loadBalancerIP: ""     # Optional: Specify a static IP for LoadBalancer; leave empty for automatic assignment

При выборе типа сервиса LoadBalancer используется фиксированный номер порта 4222, а значение, указанное в параметре externalPort, игнорируется.

В качестве значения параметра loadBalancerIP явным образом указывается IP-адрес внешнего балансировщика, в ином случае IP-адрес назначается автоматически из перечня доступных IP-адресов.

Прокси-сервер пуш-уведомлений

Необязательный параметр

Чтобы использовать прокси-сервера пуш-уведомлений, необходимо задать URL в секрете, который был указан в секрете для прокси-сервера пуш-уведомлений и задать значение true в секции link-notifications.

Порядок выполняемых действий:

  1. открыть файл /opt/iva/values.yaml с помощью команды:

    sudo nano /opt/iva/values.yaml
  2. выполнить настройку секции link-notifications:

    link-notifications:
      config:
        proxy:
          enabled: true