feat: added postgresql module
parent
0b95db5858
commit
8f6837c5f2
|
@ -9,6 +9,7 @@ passwd := `pass pg.monotremata.xyz/terraform`
|
|||
# conn_str := f"postgres://{{pg_user}}:{{passwd}}@{{pg_host}}:{{pg_port}}/{{pg_db}}"
|
||||
|
||||
export TF_VAR_hetzner_token := `pass hetzner.com/tokens/suricata`
|
||||
export TF_VAR_pg_passwd := `pass pg.monotremata.xyz/terraform`
|
||||
|
||||
init:
|
||||
terraform init -backend-config="conn_str=postgres://{{pg_user}}:{{passwd}}@{{pg_host}}:{{pg_port}}/{{pg_db}}"
|
||||
|
|
|
@ -12,3 +12,11 @@ module "cert-manager" {
|
|||
dns_common_name = var.dns_common_name
|
||||
dns_names = var.dns_names
|
||||
}
|
||||
|
||||
module "postgresql" {
|
||||
source = "../modules/postgresql"
|
||||
host = "pg.monotremata.xyz"
|
||||
password = var.pg_passwd
|
||||
username = "terraform"
|
||||
db_owner = "rilla"
|
||||
}
|
||||
|
|
|
@ -31,3 +31,9 @@ variable "dns_names" {
|
|||
"*.suricata.monotremata.xyz",
|
||||
]
|
||||
}
|
||||
|
||||
variable "pg_passwd" {
|
||||
type = string
|
||||
sensitive = true
|
||||
description = "postgresql password"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
postgresql = {
|
||||
source = "cyrilgdn/postgresql"
|
||||
version = ">= 1.19.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "postgresql" {
|
||||
host = var.host
|
||||
port = var.port
|
||||
username = var.username
|
||||
password = var.password
|
||||
}
|
||||
|
||||
resource "postgresql_database" "terraform_backend_db" {
|
||||
name = "terraform_backend"
|
||||
owner = var.db_owner
|
||||
encoding = "UTF8"
|
||||
tablespace_name = "pg_default"
|
||||
}
|
||||
|
||||
resource "postgresql_database" "terraform_lan_db" {
|
||||
name = "terraform_lan"
|
||||
owner = var.db_owner
|
||||
encoding = "UTF8"
|
||||
tablespace_name = "pg_default"
|
||||
}
|
||||
|
||||
resource "postgresql_grant" "terraform_backend_db_grant" {
|
||||
database = postgresql_database.terraform_backend_db.name
|
||||
privileges = ["CONNECT", "CREATE", "TEMPORARY"]
|
||||
object_type = "database"
|
||||
role = var.username
|
||||
}
|
||||
|
||||
resource "postgresql_grant" "terraform_lan_db_grant" {
|
||||
database = postgresql_database.terraform_lan_db.name
|
||||
privileges = ["CONNECT", "CREATE", "TEMPORARY"]
|
||||
object_type = "database"
|
||||
role = var.username
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
variable "host" {
|
||||
type = string
|
||||
description = "postgresql host"
|
||||
}
|
||||
|
||||
variable "port" {
|
||||
type = number
|
||||
description = "postgresql post"
|
||||
default = 5432
|
||||
}
|
||||
|
||||
variable "password" {
|
||||
type = string
|
||||
description = "postgresql password"
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "username" {
|
||||
type = string
|
||||
description = "postgresql username"
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "db_owner" {
|
||||
type = string
|
||||
description = "postgresql database owner"
|
||||
}
|
Loading…
Reference in New Issue