diff --git a/DEV_STAND/POSTGRES/main.tf b/DEV_STAND/POSTGRES/main.tf new file mode 100644 index 0000000..c2c2ace --- /dev/null +++ b/DEV_STAND/POSTGRES/main.tf @@ -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" +} + diff --git a/DEV_STAND/POSTGRES/nubes_postgres.tf b/DEV_STAND/POSTGRES/nubes_postgres.tf new file mode 100644 index 0000000..9bba842 --- /dev/null +++ b/DEV_STAND/POSTGRES/nubes_postgres.tf @@ -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 +} + + + diff --git a/DEV_STAND/POSTGRES/userUNDdb.tf b/DEV_STAND/POSTGRES/userUNDdb.tf new file mode 100644 index 0000000..55fa659 --- /dev/null +++ b/DEV_STAND/POSTGRES/userUNDdb.tf @@ -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 +} diff --git a/DEV_STAND/sync.sh b/DEV_STAND/sync.sh new file mode 100755 index 0000000..8ea92c7 --- /dev/null +++ b/DEV_STAND/sync.sh @@ -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."