From 9a5bf0a8b99228f9168e0e88b7a0bcbf9cade8bb Mon Sep 17 00:00:00 2001
From: Nemo <me@captnemo.in>
Date: Tue, 21 Aug 2018 08:39:00 +0530
Subject: [PATCH] Migrate radarr to volumes

---
 media/jackett.tf          |  4 ++--
 media/radarr.tf           | 64 ++++++++++++++++++++++++++++++++--------------------------------
 modules/container/main.tf |  2 +-
 modules/container/vars.tf |  3 ++-
 4 files changed, 32 insertions(+), 41 deletions(-)

diff --git a/media/jackett.tf b/media/jackett.tf
index 1e72f7d..5325f08 100644
--- a/media/jackett.tf
+++ a/media/jackett.tf
@@ -11,10 +11,10 @@
 
   networks = ["${docker_network.media.id}", "${var.traefik-network-id}"]
 
-  volumes {
+  volumes = [{
     host_path      = "/mnt/xwing/config/jackett"
     container_path = "/config"
-  }
+  }]
 
   env = [
     "PUID=1004",
diff --git a/media/radarr.tf b/media/radarr.tf
index ad0744c..8523927 100644
--- a/media/radarr.tf
+++ a/media/radarr.tf
@@ -1,48 +1,38 @@
-data "docker_registry_image" "radarr" {
-  name = "linuxserver/radarr:latest"
-}
-
-resource "docker_image" "radarr" {
-  name          = "${data.docker_registry_image.radarr.name}"
-  pull_triggers = ["${data.docker_registry_image.radarr.sha256_digest}"]
-}
-
-resource "docker_container" "radarr" {
-  name  = "radarr"
-  image = "${docker_image.radarr.latest}"
-
-  # TODO: wildcard certs needed!
-  labels = "${merge(
-    var.traefik-labels, map(
-      "traefik.port", 7878,
-      "traefik.frontend.rule","Host:radarr.${var.domain}"
-  ))}"
-
-  memory                = 512
-  restart               = "unless-stopped"
-  destroy_grace_seconds = 10
-  must_run              = true
-
-  volumes {
-    host_path      = "/mnt/xwing/config/radarr"
-    container_path = "/config"
+module "radarr" {
+  name   = "radarr"
+  source = "../modules/container"
+  image  = "linuxserver/radarr:latest"
+
+  web {
+    expose = true
+    port   = 7878
+    host   = "radarr.${var.domain}"
   }
 
-  volumes {
-    host_path      = "/mnt/xwing/media/DL"
-    container_path = "/downloads"
+  resource {
+    memory = 512
   }
 
-  volumes {
-    host_path      = "/mnt/xwing/media/Movies"
-    container_path = "/movies"
-  }
+  networks = ["${docker_network.media.id}", "${var.traefik-network-id}"]
+
+  volumes = [
+    {
+      host_path      = "/mnt/xwing/config/radarr"
+      container_path = "/config"
+    },
+    {
+      host_path      = "/mnt/xwing/media/DL"
+      container_path = "/downloads"
+    },
+    {
+      host_path      = "/mnt/xwing/media/Movies"
+      container_path = "/movies"
+    },
+  ]
 
   env = [
     "PUID=1004",
     "PGID=1003",
     "TZ=Asia/Kolkata",
   ]
-
-  networks = ["${docker_network.media.id}", "${var.traefik-network-id}"]
 }
diff --git a/modules/container/main.tf b/modules/container/main.tf
index 1e37603..a1245fb 100644
--- a/modules/container/main.tf
+++ a/modules/container/main.tf
@@ -20,7 +20,7 @@
 
   memory = "${local.resource["memory"]}"
 
-  volumes = ["${var.volumes}"]
+  volumes = "${var.volumes}"
 
   # Look at this monstrosity
   # And then https://github.com/hashicorp/terraform/issues/12453#issuecomment-365569618
diff --git a/modules/container/vars.tf b/modules/container/vars.tf
index 6fb586f..0540ab0 100644
--- a/modules/container/vars.tf
+++ a/modules/container/vars.tf
@@ -85,5 +85,6 @@
 
 variable "volumes" {
   description = "volumes"
-  default     = {}
+  type        = "list"
+  default     = []
 }
--
rgit 0.1.5