feat: DEV_STAND postgres config (no mtls)

This commit is contained in:
“Naeel”
2026-07-17 12:43:00 +04:00
parent dc9134e515
commit 205fd02c39
4 changed files with 155 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
terraform {
required_providers {
nubes = {
source = "registry.kube5s.ru/nubes-dev/nubes"
version = "3.1.0"
}
}
}
variable "api_token" {
type = string
sensitive = true
description = "Nubes API token"
}
variable "s3_uid" {
type = string
sensitive = true
description = "Nubes S3 UID"
}
variable "realm" {
type = string
sensitive = true
description = "resource_realm parameter for nubes_postgres resource"
}
variable "s3_user_uid" {
type = string
description = "S3 user UUID"
}
provider "nubes" {
api_token = var.api_token
api_endpoint = "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
# log_level = "debug" # none | info | debug, default = "none"
}
+52
View File
@@ -0,0 +1,52 @@
resource "nubes_postgres" "npg" {
resource_name = "pgdev01"
startup_configuration = {
resource_realm = var.realm
}
cluster_configuration = {
cpu = 500
memory = 512
replicas = 1
disk = 10
}
access_configuration = {
master_ip_space = "no-needed"
master_access_list = jsonencode(["10.0.0.0/8"])
slave_ip_space = "no-needed"
slave_access_list = jsonencode([])
}
postgres_configuration = {
version = "17"
ssl_required = true
pooler_master = false
pooler_slave = false
}
postgres_conf = jsonencode([{
param_name = "log_connections"
param_value = ""
}])
backup_configuration = {
s3_uid = var.s3_uid
retain = 14
schedule = "0 0 * * *"
}
autoscale_configuration = {
enabled = false
schedule = 0
percent = 10
quota = 100
}
operation_timeout = "11m"
adopt_existing_on_create = true
}
+49
View File
@@ -0,0 +1,49 @@
# =============================================================================
# PostgreSQL — пользователи (6 шт.)
# =============================================================================
resource "nubes_postgres_user" "pg_user_0" {
postgres_id = nubes_postgres.npg.id
username = "user0"
role = "ddl_user"
adopt_existing_on_create = true
}
# resource "nubes_postgres_user" "pg_user_1" {
# postgres_id = nubes_postgres.npg.id
# username = "user1"
# role = "ddl_user"
# adopt_existing_on_create = true
# }
# # =============================================================================
# # PostgreSQL — базы данных (3 шт.)
# # =============================================================================
# resource "nubes_postgres_database" "pg_db_1" {
# postgres_id = nubes_postgres.npg.id
# db_name = "dbapp1"
# db_owner = nubes_postgres_user.pg_user_1.username
# adopt_existing_on_create = true
# }
resource "nubes_postgres_database" "pg_db_2" {
postgres_id = nubes_postgres.npg.id
db_name = "dbapp2"
db_owner = nubes_postgres_user.pg_user_0.username
adopt_existing_on_create = true
}
# resource "nubes_postgres_database" "pg_db_3" {
# postgres_id = nubes_postgres.npg.id
# db_name = "dbapp3"
# db_owner = nubes_postgres_user.pg_user_1.username
# adopt_existing_on_create = true
# }
# S3 bucket — замени "buck0" на своё имя везде ниже
resource "nubes_s3bucket" "bukka0" { # ← замени buck0 на своё имя ресурса
resource_name = "btst" # ← замени buck0 на своё имя ресурса
#s3_user_uid = "naeel-s3"
s3_user_uid = var.s3_user_uid
bucket_name = "buckdev-e8c2" # ← замени buck0 на своё имя бакета
adopt_existing_on_create = true
}
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
# Синхронизация DEV_STAND с VM (без удаления state и .terraform)
set -euo pipefail
VM_HOST="naeel@5.172.178.213"
VM_PATH="/home/naeel/tf_provider/DEV_STAND"
LOCAL_PATH="/home/naeel/tf_provider/DEV_STAND"
SSH_KEY="/home/naeel/tf_provider/secrets/id_ed25519.txt"
echo "Syncing DEV_STAND → VM (excluding .terraform, state, lock)..."
rsync -avz --delete \
--exclude='.terraform/' \
--exclude='terraform.tfstate*' \
--exclude='.terraform.lock.hcl' \
-e "ssh -i ${SSH_KEY} -o ConnectTimeout=10" \
"${LOCAL_PATH}/" \
"${VM_HOST}:${VM_PATH}/"
echo "Done."