Перейти к содержанию

Установка и настройка

Для установки в kubernetes существуют 2 helm чарта:

  • teamstorm-infra - инфраструктурные сервисы;
  • teamstorm - приложение;

Установка

Перед установкой ознакомьтесь с публичными репозиториям.

Для онлайн установки подключитесь к нашим репозиториям docker и helm.

Для оффлайн установки необходимо скачать комплекты поставки с docker образами teamstorm_v4.x.y.tgz и helm чартами teamstorm_helm_4.x.y.tgz и teamstorm_infra_helm_4.x.y.tgz.

Настройки по умолчанию заданы в файле values.yaml.

Установка teamstorm-infra

Создайте свой файл с параметрами values_teamstorm_infra.yaml и добавьте минимальный набор параметров для установки.

global:
  # При необходимости замените на свой docker репозиторий с ранее загруженными образами из комплекта поставки.
  image:
    repository: "registry.example.com"
  # Секрет для доступа к docker репозиторию.
  imagePullSecrets:
    - name: teamstorm-regcred

minio:
  enabled: true
  persistence:
    size: 10Gi

postgres:
  enabled: true
  persistence:
    size: 5Gi
  pgbouncer:
    replicas: 1

rabbitmq:
  enabled: true
  persistence:
    size: 1Gi

redis:
  enabled: true
  persistence:
    size: 1Gi

gotenberg:
  enabled: true
  replicas: 1

Теперь можно установить teamstorm-infra указав свой values_teamstorm_infra.yaml.

# Для онлайн установки
helm upgrade --install -n teamstorm -f values_teamstorm_infra.yaml --version VERSION --wait --create-namespace teamstorm-infra teamstorm/teamstorm-infra

# Для оффлайн установки
helm upgrade --install -n teamstorm -f values_teamstorm_infra.yaml --wait --create-namespace teamstorm-infra teamstorm-infra/

Установка teamstorm

# Секрет для доступа к docker репозиторию.
imagePullSecrets:
  - name: teamstorm-regcred

# При использовании ingress-nginx
ingress:
  enabled: true
  # Укажите ingressClassName
  className: nginx
  # Для https укажите сертификат, если нужен только 80 порт, то tls не указывается.
  tls:
  - secretName: tls-secret
    hosts:
      - teamstorm.example.com

# В глобальных настройках обязательно указывается
global:
  # При необходимости замените на свой docker репозиторий с ранее загруженными образами из комплекта поставки.
  image:
    repository: "registry.example.com"
  # URL TeamStorm
  url: "https://teamstorm.example.com"
  hostname: "teamstorm.example.com"

Теперь можно установить teamstorm указав свой values_teamstorm.yaml.

# Для онлайн установки
helm upgrade --install -n teamstorm -f values_teamstorm.yaml --version VERSION --wait --create-namespace teamstorm teamstorm/teamstorm

# Для оффлайн установки
helm upgrade --install -n teamstorm -f values_teamstorm.yaml --wait --create-namespace teamstorm teamstorm/

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

Настройка выделения ресурсов для сервисов

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

resources:
  requests:
    cpu: 50m
    memory: 128Mi
  limits:
    cpu: 150m
    memory: 256Mi

Настройка секретов

Для каждого сервиса учетные данные указаны по умолчанию. Их можно переопределить, указав свои данные в переменной global.<service> или подключить существующие секреты. Для использования существующих секретов необходимо:

  • Указать имя секрета в параметре existingSecret.
  • Убедиться, что в секрете присутствуют ключи, указанные в примере values.yaml.

Приоритет загрузки учетных данных:

  • Если указан existingSecret, данные будут браться из него.
  • Если existingSecret не задан, используются значения из values.yaml.

Пример: Допустим, существует секрет с именем my-secret, содержащий пароль для rabbitmq с ключом rmqPassword. Секрет задан в параметре global.rabbitmq.existingSecret В этом случае приложение будет использовать пароль из my-secret для доступа к rabbitmq.

Добавление CA сертификатов

Для добавления CA сертификатов необходимо указать переменную global.cert.ca или существующий секрет со списком сертификатов global.cert.existingSecretCA.

global:
  certs:
    ca:
      - name: ca.crt
        cert: |
          -----BEGIN CERTIFICATE-----
          MIIDWTCCAkGgAwIBAgIUWUGdGGsp/Au80+nYqQ2PNNbuOfswDQYJKoZIhvcNAQEL
          BQAwPDETMBEGA1UEAwwKTXkgUm9vdCBDQTEYMBYGA1UECgwPTXkgT3JnYW5pemF0
          aW9uMQswCQYDVQQGEwJVUzAeFw0yNTA2MjQxMzM1MDJaFw0zNTA2MjIxMzM1MDJa
          MDwxEzARBgNVBAMMCk15IFJvb3QgQ0ExGDAWBgNVBAoMD015IE9yZ2FuaXphdGlv
          bjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1
          HpRQN72sRFJtnE/XedAKnjwXfl1wBXXP9jlxWnFdRiqM6YGtt8Df4EzBmfzuhlfK
          8kYMQkCFZPUcsKs+7/DJFTczLm9APY004lSptcXpcDEtIW7w8bOcCFp+of4F4DAJ
          GgYB3DNqucYkrZZHfmvoEeDnpBmR2uriJ4fmK1kSpcnLVqobc+CFP/d4hf3hV0Nn
          v3wKcJt1YeQ09/1RzoR/b9PYME9E5c5bY4q/k5yl7+JXv6LlO5mV7NTP6PP109ql
          eXXjCLOIg2vzuNMt0mbK2uzyO/1Y0k0r60rX9ZDFNDnD1jzqbpsMBcS4o/RxZYHm
          VPcEWGAM6cCg9mCMYonxAgMBAAGjUzBRMB0GA1UdDgQWBBTgv3IIwoTAWOj8x2BT
          ERXee9zsoDAfBgNVHSMEGDAWgBTgv3IIwoTAWOj8x2BTERXee9zsoDAPBgNVHRMB
          Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAS44wcHHy2aJkQRiox2Ej1xEKZ
          hn0GSIkMW6NOlztivsntfFJ7G2YJeY8QIC+bqxya9+yanoqF/IVnnqz5opht54qE
          gnPUuBmE7FM0OTNauQtjoFftfN2J9qTJmaaL1xUiex0ltJIYCw6XH0vKsd4spRWw
          pu/NEL9XSazr/52360BORT0bhM37YB7MXUbnY9CeYYaSBtYtlCTCqE0AvTpD/ZS7
          1xHu+ojTEmfVI13/Gbq5mi/eIfZrNF2x9LPwT5v5hSiBkWqrvjK5rLqbcnXOL/B1
          lGnNDsHvPTaKswVRLOtJOMjxkW+8KkPZOmIeLwtqK9W0ljeND3Igg/NlXJoU
          -----END CERTIFICATE-----

Включение метрик prometheus

Для включения метрик prometheus используется servicemonitor.

metrics:
  enabled: true
  serviceMonitor:
    enabled: true

Дополнительные настройки сервисов

Настройки деплоя сервисов задаются в параметрах, соответствующих их именам. Дополнительно можно настроить переменные окружения или подключение файлов через монтирование.

frontend:
  extraEnv:
    - name: FOO
      value: "bar"
  extraEnvFrom:
    - secretRef:
        name: frontend-env
  volumes:
    - name: certs
      secret:
        secretName: "ssl"
  volumeMounts:
    - mountPath: /certs/
      name: certs