BIM: база bimapidb и обязательная переменная GOOGLE_APPLICATION_CREDENTIALS
Оба пода уходили в рестарты, причины разные и обе — мои.
1. bim-api:
psycopg2.OperationalError: FATAL: database "bimapidb" does not exist
Имя базы у приложения ЗАХАРДКОЖЕНО и переменной не задаётся — в
entrypoint_api.sh (yoyo apply ... /bimapidb) и в models/database.py
(PooledPostgresqlExtDatabase('bimapidb', ...)). Переменной DB_NAME в
коде нет вообще, я подставлял её впустую. Запись в contour.databases
переименована bim_db -> bimapidb, DB_NAME из vault-шаблона убран.
Пустая bim_db остаётся в СУБД: бутстрап умеет только создавать. Данных
в ней нет — проверено, ноль таблиц.
2. bim-worker:
Exception: ENV_VARIABLE NOT SET: GOOGLE_APPLICATION_CREDENTIALS
settings.py делает check_settings(): проходит по ВСЕМ ключам ENV_FIELDS
и падает на первом незаданном, до проверки флагов дело не доходит.
Убирать переменную вместе с Google-хранилищем было нельзя. Возвращена;
файла по этому пути нет и не нужно — при FEATURE_ENABLE_GCLOUD=false
его никто не открывает, важно лишь наличие самой переменной.
Отсюда правило для этого приложения: набор переменных должен повторять
apps/bim/dsinv целиком, образ там тот же (870965d1...). Менять можно
только значения — адреса, бакет, брокер, — но не состав.
This commit is contained in:
parent
96d0d2e373
commit
3d205fa7e0
@ -437,9 +437,10 @@ sarex_postgres_processing_user: processing
|
|||||||
sarex_postgres_workspaces_db: workspace_db
|
sarex_postgres_workspaces_db: workspace_db
|
||||||
sarex_postgres_workspaces_user: workspace
|
sarex_postgres_workspaces_user: workspace
|
||||||
|
|
||||||
# То же для bim. Должно совпадать с записью bim_db в contour.databases
|
# То же для bim. Имя базы задано не нами: в aero/bimbackend оно захардкожено
|
||||||
# (infrastructure/postgresql/aero).
|
# в коде (entrypoint_api.sh и models/database.py), переменной для него нет.
|
||||||
sarex_postgres_bim_db: bim_db
|
# Должно совпадать с записью bimapidb в contour.databases.
|
||||||
|
sarex_postgres_bim_db: bimapidb
|
||||||
sarex_postgres_bim_user: bim
|
sarex_postgres_bim_user: bim
|
||||||
|
|
||||||
# Бакет медиафайлов django. ВНИМАНИЕ: чарт MinIO бакеты не создаёт — его нужно
|
# Бакет медиафайлов django. ВНИМАНИЕ: чарт MinIO бакеты не создаёт — его нужно
|
||||||
|
|||||||
@ -50,7 +50,6 @@ spec:
|
|||||||
{{- with secret "secrets/data/apps/bim/postgres" -}}
|
{{- with secret "secrets/data/apps/bim/postgres" -}}
|
||||||
DB_HOST={{ index .Data.data "host" }}
|
DB_HOST={{ index .Data.data "host" }}
|
||||||
DB_PORT={{ index .Data.data "port" }}
|
DB_PORT={{ index .Data.data "port" }}
|
||||||
DB_NAME={{ index .Data.data "database" }}
|
|
||||||
DB_USER={{ index .Data.data "username" }}
|
DB_USER={{ index .Data.data "username" }}
|
||||||
DB_PASSWORD={{ index .Data.data "password" }}
|
DB_PASSWORD={{ index .Data.data "password" }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@ -114,11 +113,20 @@ spec:
|
|||||||
value: "false"
|
value: "false"
|
||||||
- name: FEATURE_ENABLE_WORKSPACES
|
- name: FEATURE_ENABLE_WORKSPACES
|
||||||
value: "true"
|
value: "true"
|
||||||
# Google-хранилища в контуре нет и не будет. Флаг выключен, а
|
# Google-хранилища в контуре нет и не будет — флаг выключен.
|
||||||
# переменная GOOGLE_APPLICATION_CREDENTIALS и том с ключом,
|
# Том с ключом, который есть в dsinv, здесь не нужен, а сама
|
||||||
# которые есть в dsinv, здесь убраны за ненадобностью.
|
# переменная ниже нужна, см. комментарий к ней.
|
||||||
- name: FEATURE_ENABLE_GCLOUD
|
- name: FEATURE_ENABLE_GCLOUD
|
||||||
value: "false"
|
value: "false"
|
||||||
|
# Значение НЕ УДАЛЯТЬ, даже при выключенном флаге выше. settings.py
|
||||||
|
# делает check_settings(): проходит по всем ключам ENV_FIELDS и
|
||||||
|
# падает на первом же незаданном —
|
||||||
|
# Exception: ENV_VARIABLE NOT SET: GOOGLE_APPLICATION_CREDENTIALS
|
||||||
|
# Флаги проверяются позже, до них дело не доходит. Файла по этому
|
||||||
|
# пути нет и не будет: при FEATURE_ENABLE_GCLOUD=false его никто не
|
||||||
|
# открывает, важно лишь наличие самой переменной.
|
||||||
|
- name: GOOGLE_APPLICATION_CREDENTIALS
|
||||||
|
value: /etc/sarex/google-storage/service_account.json
|
||||||
# ВНИМАНИЕ: S3 в этом приложении НЕ НАСТРАИВАЕТСЯ на MinIO.
|
# ВНИМАНИЕ: S3 в этом приложении НЕ НАСТРАИВАЕТСЯ на MinIO.
|
||||||
# В storage/s3.py адрес зашит в код:
|
# В storage/s3.py адрес зашит в код:
|
||||||
# endpoint_url='https://storage.yandexcloud.net'
|
# endpoint_url='https://storage.yandexcloud.net'
|
||||||
|
|||||||
@ -37,7 +37,6 @@ spec:
|
|||||||
{{- with secret "secrets/data/apps/bim/postgres" -}}
|
{{- with secret "secrets/data/apps/bim/postgres" -}}
|
||||||
DB_HOST={{ index .Data.data "host" }}
|
DB_HOST={{ index .Data.data "host" }}
|
||||||
DB_PORT={{ index .Data.data "port" }}
|
DB_PORT={{ index .Data.data "port" }}
|
||||||
DB_NAME={{ index .Data.data "database" }}
|
|
||||||
DB_USER={{ index .Data.data "username" }}
|
DB_USER={{ index .Data.data "username" }}
|
||||||
DB_PASSWORD={{ index .Data.data "password" }}
|
DB_PASSWORD={{ index .Data.data "password" }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@ -86,6 +85,15 @@ spec:
|
|||||||
value: "true"
|
value: "true"
|
||||||
- name: FEATURE_ENABLE_GCLOUD
|
- name: FEATURE_ENABLE_GCLOUD
|
||||||
value: "false"
|
value: "false"
|
||||||
|
# Значение НЕ УДАЛЯТЬ, даже при выключенном флаге выше. settings.py
|
||||||
|
# делает check_settings(): проходит по всем ключам ENV_FIELDS и
|
||||||
|
# падает на первом же незаданном —
|
||||||
|
# Exception: ENV_VARIABLE NOT SET: GOOGLE_APPLICATION_CREDENTIALS
|
||||||
|
# Флаги проверяются позже, до них дело не доходит. Файла по этому
|
||||||
|
# пути нет и не будет: при FEATURE_ENABLE_GCLOUD=false его никто не
|
||||||
|
# открывает, важно лишь наличие самой переменной.
|
||||||
|
- name: GOOGLE_APPLICATION_CREDENTIALS
|
||||||
|
value: /etc/sarex/google-storage/service_account.json
|
||||||
- name: FEATURE_ENABLE_S3
|
- name: FEATURE_ENABLE_S3
|
||||||
value: "true"
|
value: "true"
|
||||||
- name: S3_BUCKET
|
- name: S3_BUCKET
|
||||||
|
|||||||
@ -164,7 +164,12 @@ spec:
|
|||||||
- ltree
|
- ltree
|
||||||
- hstore
|
- hstore
|
||||||
restoreFromDump: false
|
restoreFromDump: false
|
||||||
- name: bim_db
|
# Имя ОБЯЗАНО быть bimapidb: в aero/bimbackend оно захардкожено и
|
||||||
|
# переменной не задаётся — и в entrypoint_api.sh (yoyo apply
|
||||||
|
# ... /bimapidb), и в models/database.py (PooledPostgresqlExtDatabase
|
||||||
|
# ('bimapidb', ...)). С любым другим именем приложение падает на
|
||||||
|
# старте: FATAL: database "bimapidb" does not exist.
|
||||||
|
- name: bimapidb
|
||||||
user: bim
|
user: bim
|
||||||
passwordKey: bim
|
passwordKey: bim
|
||||||
extensions: []
|
extensions: []
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user