Create a new postgres module

This commit is contained in:
Nemo 2018-07-28 20:19:20 +05:30
parent 3322870a53
commit 8356ebd672
7 changed files with 46 additions and 67 deletions

10
main.tf
View File

@ -61,16 +61,6 @@ module "radicale" {
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"

27
miniflux.tf Normal file
View File

@ -0,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}"
}

View File

@ -1,10 +0,0 @@
resource "postgresql_database" "miniflux" {
name = "miniflux"
owner = "miniflux"
}
resource "postgresql_role" "miniflux" {
name = "miniflux"
login = true
password = "${var.db-password}"
}

View File

@ -1,30 +0,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
}

View File

@ -1,17 +0,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" {}

10
modules/postgres/main.tf Normal file
View File

@ -0,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}"
}

9
modules/postgres/vars.tf Normal file
View File

@ -0,0 +1,9 @@
variable "name" {
description = "database/role name"
type = "string"
}
variable "password" {
description = "role password"
type = "string"
}