Настройка внешнего подключения базы данных PostgreSQL
Проверьте совместимость версии БД
Перед началом работы убедитесь, что версия внешней базы данных PostgreSQL совпадает с версией, указанной в .Values.postgresql.image.tag
.
- Если система Test IT запущена, остановите все поды с помощью команды.
- Подготовьте внешнюю базу данных PostgreSQL для каждого из сервисов (
testitdb
,authdb
,avatarsdb
,licensedb
,backgrounddb
,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;
- В файле
values-override.yaml
задайте хост, порт, имя пользователя, пароль и корректные имена баз данных:general: config: POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" 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" POSTGRES_GLOBALSEARCH_DB: "globalsearchdb"
- Примените изменения с помощью команды:
cd ~/testit helm -n <namespace> -f testit_backend/values-override.yaml upgrade testit-backend testit_backend/
Настройка SSL для внешних подключений
Важно
- Убедитесь, что конфигурация-SSL во внешних сервисах настроена на проверку только файла CA.crt.
- Если для внешних сервисов используются другие файлы CA.crt, убедитесь, что все они добавлены в связку. Для этого внесите изменения в файл:
testit_backend/templates/configmaps/ssl/ca-bundle.yaml
- Прежде чем применять изменения, описанные в данной инструкции, убедитесь, что настроены внешние подключения к соответствующим сервисам.
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера Postgres и файл CA.crt:
- ca.crt
- server.crt
- server.key
- Перенесите сертификаты в соответствующую папку на вашем сервере Postgres. Например:
- /var/lib/postgresql/tls/ca.crt
- /var/lib/postgresql/tls/server.crt
- /var/lib/postgresql/tls/server.key
- При запуске сервера Postgres убедитесь, что расположение сертификатов передано верно:
postgres -c 'max_connections=300' -c 'shared_buffers=256MB' -c 'ssl=on' \ -c 'ssl_ca_file=/var/lib/postgresql/tls/ca.crt' \ -c 'ssl_cert_file=/var/lib/postgresql/tls/server.crt' \ -c 'ssl_key_file=/var/lib/postgresql/tls/server.key'
- Добавьте файл CA.crt в конфигурационную карту
ca-bundle
:# testit_backend/templates/configmaps/ssl/ca-bundle.yaml {{- if .Values.sslEnabled }} --- apiVersion: v1 kind: ConfigMap metadata: name: "ca-bundle" labels: app: testit content: ssl-ca data: ca.crt: |- -----BEGIN CERTIFICATE----- contents -----END CERTIFICATE----- {{- end }}
- Активируйте SSL для Postgres в файле
values-override.yaml
. Убедитесь, что общий флагsslEnabled
включен:sslEnabled: true postgres: enabled: false sslEnabled: true
- При необходимости в файле
values-override.yaml
задайте значения переменных для SSL в разделеgeneral.sslConfig
.