Create a new postgres module
Diff
main.tf | 10 ----------
miniflux.tf | 27 +++++++++++++++++++++++++++
miniflux/db-postgres.tf | 10 ----------
miniflux/main.tf | 30 ------------------------------
miniflux/variables.tf | 17 -----------------
modules/postgres/main.tf | 10 ++++++++++
modules/postgres/vars.tf | 9 +++++++++
7 files changed, 46 insertions(+), 67 deletions(-)
@@ -61,16 +61,6 @@
traefik-network-id = "${module.docker.traefik-network-id}"
}
module "miniflux" {
source = "miniflux"
domain = "rss.captnemo.in"
release = "2.0.10"
db-password = "${var.miniflux-db-password}"
traefik-labels = "${var.traefik-common-labels}"
traefik-network-id = "${module.docker.traefik-network-id}"
postgres-network-id = "${module.db.postgres-network-id}"
}
module "rss-bridge" {
source = "rss-bridge"
domain = "rss-bridge.bb8.fun"
@@ -1,0 +1,27 @@
module "miniflux-container" {
name = "miniflux"
source = "modules/container"
image = "miniflux/miniflux:2.0.10"
labels = "${merge(
var.traefik-common-labels, map(
"traefik.port", 8080,
"traefik.frontend.rule","Host:rss.captnemo.in"
))}"
networks = "${list(module.docker.traefik-network-id,module.db.postgres-network-id)}"
env = [
"DATABASE_URL=postgres://miniflux:${var.miniflux-db-password}@postgres/miniflux?sslmode=disable",
"RUN_MIGRATIONS=1",
]
destroy_grace_seconds = 10
must_run = true
}
module "miniflux-db" {
source = "modules/postgres"
name = "miniflux"
password = "${var.miniflux-db-password}"
}
@@ -1,10 +1,0 @@
resource "postgresql_database" "miniflux" {
name = "miniflux"
owner = "miniflux"
}
resource "postgresql_role" "miniflux" {
name = "miniflux"
login = true
password = "${var.db-password}"
}
@@ -1,30 +1,0 @@
data "docker_registry_image" "miniflux" {
name = "miniflux/miniflux:${var.release}"
}
resource "docker_image" "miniflux" {
name = "${data.docker_registry_image.miniflux.name}"
pull_triggers = ["${data.docker_registry_image.miniflux.sha256_digest}"]
}
resource "docker_container" "miniflux" {
name = "miniflux"
image = "${docker_image.miniflux.latest}"
labels = "${merge(
var.traefik-labels, map(
"traefik.port", 8080,
"traefik.frontend.rule","Host:${var.domain}"
))}"
networks = ["${var.traefik-network-id}", "${var.postgres-network-id}"]
env = [
"DATABASE_URL=postgres://miniflux:${var.db-password}@postgres/miniflux?sslmode=disable",
"RUN_MIGRATIONS=1",
]
restart = "unless-stopped"
destroy_grace_seconds = 10
must_run = true
}
@@ -1,17 +1,0 @@
variable "domain" {
type = "string"
}
variable "db-password" {}
variable "postgres-network-id" {}
variable "traefik-labels" {
type = "map"
}
variable "release" {
description = "miniflux version"
type = "string"
}
variable "traefik-network-id" {}
@@ -1,0 +1,10 @@
resource "postgresql_database" "db" {
name = "${var.name}"
owner = "${var.name}"
}
resource "postgresql_role" "role" {
name = "${var.name}"
login = true
password = "${var.password}"
}
@@ -1,0 +1,9 @@
variable "name" {
description = "database/role name"
type = "string"
}
variable "password" {
description = "role password"
type = "string"
}