kaarana.org wordpress website
Diff
kaarana.tf | 20 ++++++++++++++++++++
kayak.tf | 17 ++++++++---------
providers.tf | 9 ++++++++-
server.tf | 1 +
kaarana/database.tf | 40 ++++++++++++++++++++++++++++++++++++++++
kaarana/images.tf | 26 ++++++++++++++++++++++++++
kaarana/traefik.tf | 11 +++++++++++
kaarana/vars.tf | 8 ++++++++
kaarana/wordpress.tf | 34 ++++++++++++++++++++++++++++++++++
9 files changed, 156 insertions(+), 10 deletions(-)
@@ -1,0 +1,20 @@
module "kaarana" {
source = "./kaarana"
root_db_password = "${data.pass_password.kaarana-root-db-password.password}"
db_password = "${data.pass_password.kaarana-db-password.password}"
providers = {
docker = "docker.sydney"
}
}
data "pass_password" "kaarana-root-db-password" {
path = "KAARANA_DB_ROOT_PASSWORD"
}
data "pass_password" "kaarana-db-password" {
path = "KAARANA_DB_PASSWORD"
}
@@ -10,15 +10,14 @@
provider "docker" {
host = "tcp://${cloudflare_record.kayak-docker.hostname}:2376"
version = "~> 2.0.0"
alias = "kayak"
ca_material = "${module.kayak.docker_ca_cert}"
cert_material = "${module.kayak.docker_client_cert}"
key_material = "${module.kayak.docker_client_key}"
}
@@ -1,7 +1,14 @@
provider "docker" {
host = "tcp://docker.vpn.bb8.fun:2376"
cert_path = "./secrets/tatooine"
version = "~> 2.0.0"
version = "~> 2.2.0"
}
provider "docker" {
host = "tcp://docker.dovpn.bb8.fun:2376"
cert_path = "./secrets/sydney"
version = "~> 2.2.0"
alias = "sydney"
}
provider "kubernetes" {
@@ -1,0 +1,1 @@
@@ -1,0 +1,40 @@
resource "docker_network" "kaarana-db" {
name = "kaarana-db"
labels = {
internal = "true"
role = "database"
}
internal = true
ipam_config {
subnet = "172.20.0.0/29"
gateway = "172.20.0.1"
}
}
resource "docker_container" "mysql" {
image = "${docker_image.db.latest}"
name = "kaarana-mariadb"
env = [
"MYSQL_ROOT_PASSWORD=${var.root_db_password}",
"MYSQL_USER=${local.username}",
"MYSQL_PASSWORD=${var.db_password}",
"MYSQL_DATABASE=${local.database}",
]
volumes {
host_path = "/mnt/disk/kaarana-db"
container_path = "/var/lib/mysql"
}
networks_advanced {
name = "kaarana-db"
aliases = ["${local.db_hostname}"]
}
}
@@ -1,0 +1,26 @@
data "docker_registry_image" "wp" {
name = "wordpress:latest"
}
resource "docker_image" "wp" {
name = "wordpress"
pull_triggers = ["${data.docker_registry_image.wp.sha256_digest}"]
}
data "docker_registry_image" "db" {
name = "mariadb:10.4"
}
resource "docker_image" "db" {
name = "mariadb"
pull_triggers = ["${data.docker_registry_image.db.sha256_digest}"]
}
data "docker_registry_image" "traefik" {
name = "traefik:v2.0"
}
resource "docker_image" "traefik" {
name = "traefik"
pull_triggers = ["${data.docker_registry_image.db.sha256_digest}"]
}
@@ -1,0 +1,11 @@
resource "docker_network" "traefik" {
name = "traefik"
labels = {
internal = "true"
role = "ingress"
}
internal = true
}
@@ -1,0 +1,8 @@
variable "root_db_password" {}
variable "db_password" {}
locals {
username = "wordpress"
database = "wordpress"
db_hostname = "kaarana.db"
}
@@ -1,0 +1,34 @@
resource "docker_container" "wp" {
image = "${docker_image.wp.latest}"
name = "kaarana-wordpress"
env = [
"WORDPRESS_DB_HOST=${local.db_hostname}",
"WORDPRESS_DB_USER=${local.username}",
"WORDPRESS_DB_PASSWORD=${var.db_password}",
"WORDPRESS_DB_NAME=${local.database}",
"WORDPRESS_TABLE_PREFIX=",
]
volumes {
host_path = "/mnt/disk/kaarana-wp"
container_path = "/var/www/html"
}
ports {
internal = 8080
external = 8213
ip = "10.8.0.1"
}
networks_advanced = [
{
name = "kaarana-db"
},
{
name = "bridge"
},
]
}