stand(DEV/CRUD): привести к варианту TEST — adopt_existing_on_create, без git_revision
- lucee/flask/nodejs: добавлен adopt_existing_on_create = true (усыновлять существующий
инстанс вместо падения с «ресурс с таким именем уже существует»)
- удалены git_revision и одноимённые locals (в TEST их нет)
- git_path: Nail -> terraform (проверено по HTTP: /Nail/<repo> отдаёт 301 на /terraform/<repo>)
- terraform.tfvars.example: комментарий s3_user_uid = UUID S3-пользователя
Имена ресурсов и домены оставлены dev-своими (уникальными). realm dev = k8s-3-sandbox-nubes-ru.
Проверка API dev-стенда (/instances?isDeleted=false): 9 инстансов, ни одного под сервисы
89 flask / 94 lucee / 95 nodejs и PostgreSQL; поиск crud|pg4|lucee|flask|nodejs -> 0. Коллизий нет.
НЕ исправлено (не моя правка, есть и в HEAD): terraform validate падает на nubes_nodejs.json_env —
в спеке dev-стенда у сервиса 95 объявлен обязательный sub_param DB_PASS, поэтому схема требует
объект { db_pass }, а конфигурация передаёт строку jsonencode().
This commit is contained in:
@@ -12,6 +12,8 @@ locals {
|
|||||||
resource "nubes_flask" "appflask" {
|
resource "nubes_flask" "appflask" {
|
||||||
resource_name = local.flask_resource_name
|
resource_name = local.flask_resource_name
|
||||||
|
|
||||||
|
adopt_existing_on_create = true
|
||||||
|
|
||||||
startup_configuration = {
|
startup_configuration = {
|
||||||
resource_realm = var.realm
|
resource_realm = var.realm
|
||||||
}
|
}
|
||||||
@@ -32,16 +34,14 @@ resource "nubes_flask" "appflask" {
|
|||||||
health_path = "/"
|
health_path = "/"
|
||||||
}
|
}
|
||||||
|
|
||||||
git_revision = local.flask_git_revision
|
|
||||||
|
|
||||||
json_env = jsonencode({
|
json_env = jsonencode({
|
||||||
TABLE_NAME = local.crud_table_name
|
TABLE_NAME = local.crud_table_name
|
||||||
PGHOST = local.flask_pg_host
|
PGHOST = local.flask_pg_host
|
||||||
PGPORT = local.pg_port
|
PGPORT = local.pg_port
|
||||||
PGUSER = local.flask_pg_user
|
PGUSER = local.flask_pg_user
|
||||||
PGPASSWORD = local.flask_pg_pass
|
PGPASSWORD = local.flask_pg_pass
|
||||||
PGDATABASE = local.flask_pg_db
|
PGDATABASE = local.flask_pg_db
|
||||||
PGSSLMODE = local.pg_ssl_mode
|
PGSSLMODE = local.pg_ssl_mode
|
||||||
})
|
})
|
||||||
|
|
||||||
depends_on = [nubes_postgres.main_pg]
|
depends_on = [nubes_postgres.main_pg]
|
||||||
|
|||||||
+36
-39
@@ -9,67 +9,64 @@ locals {
|
|||||||
# PostgreSQL — общая БД для всех трёх приложений
|
# PostgreSQL — общая БД для всех трёх приложений
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
pg_resource_name = "pg4crud" # имя ресурса в Nubes
|
pg_resource_name = "pg4crud" # имя ресурса в Nubes
|
||||||
pg_cpu = 500 # CPU в millicores (500 = 0.5 ядра)
|
pg_cpu = 500 # CPU в millicores (500 = 0.5 ядра)
|
||||||
pg_memory = 512 # память в MB
|
pg_memory = 512 # память в MB
|
||||||
pg_replicas = 1 # количество реплик
|
pg_replicas = 1 # количество реплик
|
||||||
pg_disk = 10 # диск в GB
|
pg_disk = 10 # диск в GB
|
||||||
pg_version = "17" # версия PostgreSQL
|
pg_version = "17" # версия PostgreSQL
|
||||||
pg_retain = 14 # дней хранения бэкапов
|
pg_retain = 14 # дней хранения бэкапов
|
||||||
pg_schedule = "0 0 * * *" # cron расписание бэкапов (ежедневно в полночь)
|
pg_schedule = "0 0 * * *" # cron расписание бэкапов (ежедневно в полночь)
|
||||||
pg_timeout = "11m" # таймаут операций create/modify
|
pg_timeout = "11m" # таймаут операций create/modify
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# PostgreSQL — пользователь и база данных
|
# PostgreSQL — пользователь и база данных
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
pg_username = "user4crudpg" # имя пользователя БД
|
pg_username = "user4crudpg" # имя пользователя БД
|
||||||
pg_role = "ddl_user" # роль (ddl_user = может создавать таблицы)
|
pg_role = "ddl_user" # роль (ddl_user = может создавать таблицы)
|
||||||
pg_db_name = "db4crudpg" # имя базы данных
|
pg_db_name = "db4crudpg" # имя базы данных
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# Lucee — CFML-приложение (сервис 94)
|
# Lucee — CFML-приложение (сервис 94)
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
lucee_git_revision = "94d6677" # коммит/тег в git (менять для редеплоя)
|
lucee_resource_name = "luceecrud" # имя ресурса в Nubes
|
||||||
lucee_resource_name = "luceecrud" # имя ресурса в Nubes
|
lucee_domain = "tfluceedev" # домен (станет tfluceedev.luceek8s.dev.nubes.ru). Имя должно быть уникальным — заменяйте на своё!
|
||||||
lucee_domain = "tfluceedev" # домен (станет tfluceedev.luceek8s.dev.nubes.ru). Имя должно быть уникальным — заменяйте на своё!
|
lucee_version = "5.4" # версия Lucee (CFML engine)
|
||||||
lucee_version = "5.4" # версия Lucee (CFML engine)
|
lucee_git_path = "https://gitea.services.ngcloud.ru/terraform/tfluceecrud.git"
|
||||||
lucee_git_path = "https://gitea.services.ngcloud.ru/Nail/tfluceecrud.git"
|
lucee_cpu = 300 # CPU в millicores
|
||||||
lucee_cpu = 300 # CPU в millicores
|
lucee_memory = 512 # память в MB
|
||||||
lucee_memory = 512 # память в MB
|
lucee_replicas = 1 # количество реплик
|
||||||
lucee_replicas = 1 # количество реплик
|
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# Таблица CRUD — общая для всех трёх приложений
|
# Таблица CRUD — общая для всех трёх приложений
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
crud_table_name = "crud_items" # имя таблицы (TABLE_NAME в env)
|
crud_table_name = "crud_items" # имя таблицы (TABLE_NAME в env)
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# Flask — Python-приложение (сервис 89)
|
# Flask — Python-приложение (сервис 89)
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
flask_git_revision = "34c030c" # коммит/тег в git (менять для редеплоя)
|
flask_resource_name = "flaskcrud" # имя ресурса в Nubes
|
||||||
flask_resource_name = "flaskcrud" # имя ресурса в Nubes
|
flask_domain = "tfflaskdev" # домен (станет tfflaskdev.pythonk8s.dev.nubes.ru). Имя должно быть уникальным — заменяйте на своё!
|
||||||
flask_domain = "tfflaskdev" # домен (станет tfflaskdev.pythonk8s.dev.nubes.ru). Имя должно быть уникальным — заменяйте на своё!
|
flask_git_path = "https://gitea.services.ngcloud.ru/terraform/tfflaskcrud.git"
|
||||||
flask_git_path = "https://gitea.services.ngcloud.ru/Nail/tfflaskcrud.git"
|
flask_cpu = 300 # CPU в millicores
|
||||||
flask_cpu = 300 # CPU в millicores
|
flask_memory = 512 # память в MB
|
||||||
flask_memory = 512 # память в MB
|
flask_replicas = 1 # количество реплик
|
||||||
flask_replicas = 1 # количество реплик
|
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# Node.js — Express-приложение (сервис 95)
|
# Node.js — Express-приложение (сервис 95)
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
nodejs_git_revision = "1c646c6" # коммит/тег в git (менять для редеплоя)
|
|
||||||
nodejs_resource_name = "nodejscrud" # имя ресурса в Nubes
|
nodejs_resource_name = "nodejscrud" # имя ресурса в Nubes
|
||||||
nodejs_domain = "tfnodejsdev" # домен (станет tfnodejsdev.<суффикс>.dev.nubes.ru). Имя должно быть уникальным — заменяйте на своё!
|
nodejs_domain = "tfnodejsdev" # домен (станет tfnodejsdev.<суффикс>.dev.nubes.ru). Имя должно быть уникальным — заменяйте на своё!
|
||||||
nodejs_git_path = "https://gitea.services.ngcloud.ru/Nail/tfnodejscrud.git"
|
nodejs_git_path = "https://gitea.services.ngcloud.ru/terraform/tfnodejscrud.git"
|
||||||
nodejs_cpu = 300 # CPU в millicores
|
nodejs_cpu = 300 # CPU в millicores
|
||||||
nodejs_memory = 512 # память в MB
|
nodejs_memory = 512 # память в MB
|
||||||
nodejs_replicas = 1 # количество реплик
|
nodejs_replicas = 1 # количество реплик
|
||||||
nodejs_timeout = "15m" # таймаут операций create/modify
|
nodejs_timeout = "15m" # таймаут операций create/modify
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# JDBC — параметры подключения Lucee к PostgreSQL
|
# JDBC — параметры подключения Lucee к PostgreSQL
|
||||||
@@ -78,14 +75,14 @@ locals {
|
|||||||
jdbc_class = "org.postgresql.Driver"
|
jdbc_class = "org.postgresql.Driver"
|
||||||
jdbc_bundle_name = "org.postgresql.jdbc"
|
jdbc_bundle_name = "org.postgresql.jdbc"
|
||||||
jdbc_bundle_version = "42.6.0"
|
jdbc_bundle_version = "42.6.0"
|
||||||
jdbc_conn_limit = "5" # макс. количество соединений
|
jdbc_conn_limit = "5" # макс. количество соединений
|
||||||
jdbc_live_timeout = "15" # таймаут неактивного соединения (минут)
|
jdbc_live_timeout = "15" # таймаут неактивного соединения (минут)
|
||||||
jdbc_validate = "false" # валидация соединения при выдаче из пула
|
jdbc_validate = "false" # валидация соединения при выдаче из пула
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
# PostgreSQL — общие параметры подключения
|
# PostgreSQL — общие параметры подключения
|
||||||
# ═══════════════════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
pg_port = "5432" # порт PostgreSQL
|
pg_port = "5432" # порт PostgreSQL
|
||||||
pg_ssl_mode = "require" # SSL-режим (require = обязательно TLS)
|
pg_ssl_mode = "require" # SSL-режим (require = обязательно TLS)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ locals {
|
|||||||
resource "nubes_lucee" "applucee" {
|
resource "nubes_lucee" "applucee" {
|
||||||
resource_name = local.lucee_resource_name
|
resource_name = local.lucee_resource_name
|
||||||
|
|
||||||
|
adopt_existing_on_create = true
|
||||||
|
|
||||||
startup_configuration = {
|
startup_configuration = {
|
||||||
resource_realm = var.realm
|
resource_realm = var.realm
|
||||||
}
|
}
|
||||||
@@ -23,12 +25,10 @@ resource "nubes_lucee" "applucee" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
app_configuration = {
|
app_configuration = {
|
||||||
version = local.lucee_version
|
version = local.lucee_version
|
||||||
git_path = local.lucee_git_path
|
git_path = local.lucee_git_path
|
||||||
}
|
}
|
||||||
|
|
||||||
git_revision = local.lucee_git_revision
|
|
||||||
|
|
||||||
json_env = jsonencode({
|
json_env = jsonencode({
|
||||||
TABLE_NAME = local.crud_table_name
|
TABLE_NAME = local.crud_table_name
|
||||||
testds_class = local.jdbc_class
|
testds_class = local.jdbc_class
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ locals {
|
|||||||
resource "nubes_nodejs" "appnodejs" {
|
resource "nubes_nodejs" "appnodejs" {
|
||||||
resource_name = local.nodejs_resource_name
|
resource_name = local.nodejs_resource_name
|
||||||
|
|
||||||
|
adopt_existing_on_create = true
|
||||||
|
|
||||||
startup_configuration = {
|
startup_configuration = {
|
||||||
resource_realm = var.realm
|
resource_realm = var.realm
|
||||||
}
|
}
|
||||||
@@ -31,17 +33,16 @@ resource "nubes_nodejs" "appnodejs" {
|
|||||||
health_path = "/"
|
health_path = "/"
|
||||||
}
|
}
|
||||||
|
|
||||||
git_revision = local.nodejs_git_revision
|
|
||||||
operation_timeout = local.nodejs_timeout
|
operation_timeout = local.nodejs_timeout
|
||||||
|
|
||||||
json_env = jsonencode({
|
json_env = jsonencode({
|
||||||
TABLE_NAME = local.crud_table_name
|
TABLE_NAME = local.crud_table_name
|
||||||
PGHOST = local.nodejs_pg_host
|
PGHOST = local.nodejs_pg_host
|
||||||
PGPORT = local.pg_port
|
PGPORT = local.pg_port
|
||||||
PGUSER = local.nodejs_pg_user
|
PGUSER = local.nodejs_pg_user
|
||||||
PGPASSWORD = local.nodejs_pg_pass
|
PGPASSWORD = local.nodejs_pg_pass
|
||||||
PGDATABASE = local.nodejs_pg_db
|
PGDATABASE = local.nodejs_pg_db
|
||||||
PGSSLMODE = local.pg_ssl_mode
|
PGSSLMODE = local.pg_ssl_mode
|
||||||
})
|
})
|
||||||
|
|
||||||
depends_on = [nubes_postgres.main_pg]
|
depends_on = [nubes_postgres.main_pg]
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
api_token = "" # JWT-токен
|
api_token = "" # JWT-токен
|
||||||
realm = "k8s-3-sandbox-nubes-ru" # кластер Kubernetes
|
realm = "k8s-3-sandbox-nubes-ru" # кластер Kubernetes
|
||||||
s3_name = "" # имя S3-экземпляра
|
s3_name = "" # имя S3-экземпляра
|
||||||
s3_user_uid = "" # UUID S3-экземпляра
|
s3_user_uid = "" # UUID S3-пользователя
|
||||||
|
|||||||
Reference in New Issue
Block a user