kaarana.org wordpress website
This commit is contained in:
parent
0633f6113f
commit
d4370f2b56
|
@ -0,0 +1,20 @@
|
||||||
|
# kaarana related stuff
|
||||||
|
|
||||||
|
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"
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
// Create a small database network
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run a small mySQL container in this subnet
|
||||||
|
|
||||||
|
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}"]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,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}"]
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
// Create a small database network
|
||||||
|
resource "docker_network" "traefik" {
|
||||||
|
name = "traefik"
|
||||||
|
|
||||||
|
labels = {
|
||||||
|
internal = "true"
|
||||||
|
role = "ingress"
|
||||||
|
}
|
||||||
|
|
||||||
|
internal = true
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
variable "root_db_password" {}
|
||||||
|
variable "db_password" {}
|
||||||
|
|
||||||
|
locals {
|
||||||
|
username = "wordpress"
|
||||||
|
database = "wordpress"
|
||||||
|
db_hostname = "kaarana.db"
|
||||||
|
}
|
|
@ -0,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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// TODO: Once configuration/plugins have stabilized
|
||||||
|
// remove internet access from wordpress
|
||||||
|
name = "bridge"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
17
kayak.tf
17
kayak.tf
|
@ -10,15 +10,14 @@
|
||||||
# docker = "docker.kayak"
|
# docker = "docker.kayak"
|
||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
provider "docker" {
|
# provider "docker" {
|
||||||
host = "tcp://${cloudflare_record.kayak-docker.hostname}:2376"
|
# host = "tcp://${cloudflare_record.kayak-docker.hostname}:2376"
|
||||||
version = "~> 2.0.0"
|
# version = "~> 2.0.0"
|
||||||
alias = "kayak"
|
# alias = "kayak"
|
||||||
ca_material = "${module.kayak.docker_ca_cert}"
|
# ca_material = "${module.kayak.docker_ca_cert}"
|
||||||
cert_material = "${module.kayak.docker_client_cert}"
|
# cert_material = "${module.kayak.docker_client_cert}"
|
||||||
key_material = "${module.kayak.docker_client_key}"
|
# key_material = "${module.kayak.docker_client_key}"
|
||||||
}
|
# }
|
||||||
|
|
||||||
# resource "cloudflare_record" "kayak-docker" {
|
# resource "cloudflare_record" "kayak-docker" {
|
||||||
# name = "docker.kayak"
|
# name = "docker.kayak"
|
||||||
# value = "${module.kayak.droplet_ipv4}"
|
# value = "${module.kayak.droplet_ipv4}"
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
provider "docker" {
|
provider "docker" {
|
||||||
host = "tcp://docker.vpn.bb8.fun:2376"
|
host = "tcp://docker.vpn.bb8.fun:2376"
|
||||||
cert_path = "./secrets/tatooine"
|
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" {
|
provider "kubernetes" {
|
||||||
|
|
Loading…
Reference in New Issue