Внешние подключения

Данная инструкция описывает подключения к следующим внешним сервисам:

  • RabbitMQ
  • Redis
  • PostgreSQL
  • MinIO
  • InfluxDB

Настройка внешнего подключения RabbitMQ

Важно

Перед началом работы убедитесь, что версия внешней базы данных RabbitMQ совпадает с версией, указанной в .Values.rabbitmq.image.tag.

  1. В файле values-override.yaml установите переменные среды в с параметрами внешней базы данных RabbitMQ:
general:
  config:
    RABBITMQ_DEFAULT_USER: "testit"
    RABBITMQ_DEFAULT_PASS: "password"
    RABBITMQ_DEFAULT_VHOST: "testitrabbit"
    RABBITMQ_DEFAULT_HOST: "external-server" # IP or DNS of outside RabbitMQ server
    RABBITMQ_DEFAULT_PORT: "5672"
    RABBITMQ_AUTH_MODE: "plain" 
    RABBITMQ_CLIENT_CERT_PATH: "/etc/rabbitmq/ssl/client/testit.pfx"
    RABBITMQ_CLIENT_CERT_PASSPHRASE: 
    RABBITMQ_SSL_ENABLED: "false"
  1. В файле values-override.yaml отключите контроллер statefulSet для внутренней базы данных RabbitMQ:
rabbitmq:
  enabled: false
  1. Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/

Redis

Важно

Перед началом работы убедитесь, что версия внешней базы данных Redis совпадает с версией, указанной в .Values.authCache.image.tag.

  1. При настройке конфигурации внешней базы данных Redis убедитесь, что установлен следующий параметр:
appendonly yes
  1. В файле values-override.yaml установите значения переменных среды со строкой подключения внешней базы данных Redis, используя команду:
general:
  config:
    AUTH_CACHE_CONNECTION_STRING: "redis-external" # IP or DNS of outside Redis server
  1. В файле values-override.yaml отключите контроллер statefulSet для внутренней базы данных Redis:
authCache:
  enabled: false
  1. Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/

Настройка внешнего подключения базы данных PostgreSQL

Важно

Перед началом работы убедитесь, что версия внешней базы данных PostgreSQL совпадает с версией, указанной в .Values.postgresql.image.tag.

  1. Подготовьте внешнюю базу данных PostgreSQL для каждого из сервисов (testitdb, authdb, avatarsdb, licensedb, globalsearchdb)
yum install postgresql-contrib
psql -U postgres
create database testitdb;
create user tester with encrypted password 'tester';
grant all privileges on database testitdb to tester;
\connect testitdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;

create database authdb;
grant all privileges on database authdb to tester;
\connect authdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;

create database avatarsdb;
grant all privileges on database avatarsdb to tester;
\connect avatarsdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;

create database backgrounddb;
grant all privileges on database backgrounddb to tester;
\connect backgrounddb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;

create database licensedb;
grant all privileges on database licensedb to tester;
\connect licensedb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;

create database globalsearchdb;
grant all privileges on database globalsearchdb to tester;
\connect globalsearchdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
CREATE EXTENSION if not exists "pg_trgm" SCHEMA public;
  1. В файле values-override.yaml отключите контроллер statefulSet для внутренней базы данных Postgres и задайте имя хоста и порт внешней базы данных в соответствующем блоке:
postgres:
  enabled: false
  name: postgres-external # IP or DNS of the external PostgreSQL database
  service:
    port: 5432
  1. В файле values-override.yaml задайте имя пользователя, пароль и корректные имена баз данных:
general:
  config:
    POSTGRES_USER: "postgres"
    POSTGRES_PASSWORD: "F1rstL0g0N!"
    POSTGRES_DB: "testitdb"
    POSTGRES_AUTH_DB: "authdb"
    POSTGRES_AVATARS_DB: "avatarsdb"
    POSTGRES_BACKGROUND_DB: "backgrounddb"
    POSTGRES_LICENSE_DB: "licensedb"
  1. Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/

Настройка внешнего подключения базы данных MinIO

Важно

Перед началом работы убедитесь, что версия внешней базы данных MinIO совпадает с версией, указанной в .Values.minio.image.tag.

  1. Во внешнем сервисе MinIO создайте 2 бакета для minio и avatars.minio (например bucket1 и bucket2).
  2. Создайте ключ доступа (access key) и секретный ключ (secret key) для доступа к каждому из бакетов.
  3. В файле values-override.yaml отключите контроллер statefulSet для внутренней базы данных MinIO:
minio:
  enabled: false
  1. В файле values-override.yaml задайте необходимую переменную для подключения к внешней базе данных MinIO:
general:
  config:
    AWS_CONNECTION_STRING: "http://minio-external:9000" # minio-external could be either IP or DNS
    AWS_ACCESS_KEY: "YourAccessKey"
    AWS_SECRET_KEY: "YourSecretKey"
    TMS_FILE_BUCKET_NAME: "bucket1"
    AVATARS_FILE_BUCKET_NAME: "bucket2"
  1. Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/

Настройка внешнего подключения базы данных InfluxDB

Важно

Перед началом работы убедитесь, что версия внешней базы данных InfluxDB совпадает с версией, указанной в .Values.influxdb.image.tag.

  1. Если система Test IT запущена, остановите все поды с помощью команды.
  2. При настройке внешнего сервера InfluxDB убедитесь, что установлены следующие параметры:
max-series-per-database = 0
max-values-per-tag = 0
  1. В файле values-override.yaml отключите контроллер statefulSet для внутренней базы данных InfluxDB:
influxdb:
  enabled: false
  1. В файле values-override.yaml задайте необходимую переменную для подключения к внешней базе данных InfluxDB:
general:
  config:
    INFLUX_CONNECTION_STRING: "http://influxdb-external:8086" # influxdb-external could be either IP or DNSservice
  1. Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/