From 63f6301a2e1bff18d6b2d59843349da26bf531c3 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Mon, 29 Jun 2026 23:49:50 +1000 Subject: [PATCH] fix: align config with imported state for zero-drift plan --- config/download_client/NZBGet.yaml | 2 +- config/indexer/NZBgeek_Prowlarr.yaml | 1 + config/notification/Jellyfin.yaml | 1 + config/quality_profile/BestQuality_1080p.yaml | 144 +++++++++--------- config/quality_profile/BestQuality_2160p.yaml | 66 ++++---- config/quality_profile/DONT_USE_WEBDL.yaml | 56 +++---- modules/radarr/main.tf | 37 +++-- 7 files changed, 156 insertions(+), 151 deletions(-) diff --git a/config/download_client/NZBGet.yaml b/config/download_client/NZBGet.yaml index a79ea9f..3c25195 100644 --- a/config/download_client/NZBGet.yaml +++ b/config/download_client/NZBGet.yaml @@ -3,7 +3,7 @@ priority: 1 host: nzbget.service.consul port: 443 use_ssl: true -username: "" +username: "svc_nzbsubmit" password: "" movie_category: movies remove_completed_downloads: true diff --git a/config/indexer/NZBgeek_Prowlarr.yaml b/config/indexer/NZBgeek_Prowlarr.yaml index cc2c8ce..4c7ac8d 100644 --- a/config/indexer/NZBgeek_Prowlarr.yaml +++ b/config/indexer/NZBgeek_Prowlarr.yaml @@ -1,3 +1,4 @@ +name: "NZBgeek (Prowlarr)" enable_automatic_search: true enable_interactive_search: true enable_rss: true diff --git a/config/notification/Jellyfin.yaml b/config/notification/Jellyfin.yaml index e33a43d..956235f 100644 --- a/config/notification/Jellyfin.yaml +++ b/config/notification/Jellyfin.yaml @@ -1,3 +1,4 @@ +name: "Emby / Jellyfin" host: jellyfin.service.consul port: 443 use_ssl: true diff --git a/config/quality_profile/BestQuality_1080p.yaml b/config/quality_profile/BestQuality_1080p.yaml index d5173f6..a826826 100644 --- a/config/quality_profile/BestQuality_1080p.yaml +++ b/config/quality_profile/BestQuality_1080p.yaml @@ -2,80 +2,72 @@ upgrade_allowed: true cutoff: 7 cutoff_format_score: 5000 min_format_score: 0 -quality_groups: -- id: 20 - qualities: - - id: 20 - name: Bluray-480p - source: bluray - resolution: 480 -- id: 21 - qualities: - - id: 21 - name: Bluray-576p - source: bluray - resolution: 576 -- id: 4 - qualities: - - id: 4 - name: HDTV-720p - source: tv - resolution: 720 -- id: 5 - qualities: - - id: 5 - name: WEBDL-720p - source: webdl - resolution: 720 -- id: 14 - qualities: - - id: 14 - name: WEBRip-720p - source: webrip - resolution: 720 -- id: 6 - qualities: - - id: 6 - name: Bluray-720p - source: bluray - resolution: 720 -- id: 9 - qualities: - - id: 9 - name: HDTV-1080p - source: tv - resolution: 1080 -- id: 3 - qualities: - - id: 3 - name: WEBDL-1080p - source: webdl - resolution: 1080 -- id: 15 - qualities: - - id: 15 - name: WEBRip-1080p - source: webrip - resolution: 1080 -- id: 7 - qualities: - - id: 7 - name: Bluray-1080p - source: bluray - resolution: 1080 -format_items: -- name: x264 - format: x264 - score: -200 -- name: x265 - format: x265 - score: 1000 -- name: 1080p - format: 1080p - score: 500 -- name: 720p - format: 720p - score: 200 language: - id: 1 - name: English + id: -2 + name: Original +quality_groups: + - qualities: + - id: 7 + name: Bluray-1080p + source: bluray + resolution: 1080 + - id: 1002 + name: "WEB 1080p" + qualities: + - id: 3 + name: WEBDL-1080p + source: webdl + resolution: 1080 + - id: 15 + name: WEBRip-1080p + source: webrip + resolution: 1080 + - qualities: + - id: 9 + name: HDTV-1080p + source: tv + resolution: 1080 + - qualities: + - id: 6 + name: Bluray-720p + source: bluray + resolution: 720 + - id: 1001 + name: "WEB 720p" + qualities: + - id: 5 + name: WEBDL-720p + source: webdl + resolution: 720 + - id: 14 + name: WEBRip-720p + source: webrip + resolution: 720 + - qualities: + - id: 4 + name: HDTV-720p + source: tv + resolution: 720 + - qualities: + - id: 21 + name: Bluray-576p + source: bluray + resolution: 576 + - qualities: + - id: 20 + name: Bluray-480p + source: bluray + resolution: 480 +format_items: + - name: x264 + format: x264 + score: -200 + - name: x265 + format: x265 + score: 1000 + - name: 1080p + format: 1080p + score: 500 + - name: 720p + format: 720p + score: 200 diff --git a/config/quality_profile/BestQuality_2160p.yaml b/config/quality_profile/BestQuality_2160p.yaml index 1320259..994da93 100644 --- a/config/quality_profile/BestQuality_2160p.yaml +++ b/config/quality_profile/BestQuality_2160p.yaml @@ -2,38 +2,36 @@ upgrade_allowed: true cutoff: 19 cutoff_format_score: 5000 min_format_score: 0 -quality_groups: -- id: 18 - qualities: - - id: 18 - name: WEBDL-2160p - source: webdl - resolution: 2160 -- id: 17 - qualities: - - id: 17 - name: WEBRip-2160p - source: webrip - resolution: 2160 -- id: 19 - qualities: - - id: 19 - name: Bluray-2160p - source: bluray - resolution: 2160 -format_items: -- name: 2160p - format: 2160p - score: 2000 -- name: 1080p - format: 1080p - score: 500 -- name: x265 - format: x265 - score: 2000 -- name: x264 - format: x264 - score: -5000 language: - id: 1 - name: English + id: -2 + name: Original +quality_groups: + - qualities: + - id: 19 + name: Bluray-2160p + source: bluray + resolution: 2160 + - id: 1003 + name: "WEB 2160p" + qualities: + - id: 18 + name: WEBDL-2160p + source: webdl + resolution: 2160 + - id: 17 + name: WEBRip-2160p + source: webrip + resolution: 2160 +format_items: + - name: 2160p + format: 2160p + score: 2000 + - name: 1080p + format: 1080p + score: 500 + - name: x265 + format: x265 + score: 2000 + - name: x264 + format: x264 + score: -5000 diff --git a/config/quality_profile/DONT_USE_WEBDL.yaml b/config/quality_profile/DONT_USE_WEBDL.yaml index 959a23d..601988e 100644 --- a/config/quality_profile/DONT_USE_WEBDL.yaml +++ b/config/quality_profile/DONT_USE_WEBDL.yaml @@ -2,34 +2,34 @@ upgrade_allowed: true cutoff: 1002 cutoff_format_score: 300 min_format_score: 300 -quality_groups: -- id: 1002 - name: WEB 1080p - qualities: - - id: 3 - name: WEBDL-1080p - source: webdl - resolution: 1080 - - id: 15 - name: WEBRip-1080p - source: webrip - resolution: 1080 -format_items: -- name: 2160p - format: 2160p - score: -300 -- name: x264 - format: x264 - score: -200 -- name: x265 - format: x265 - score: -200 -- name: 1080p - format: 1080p - score: -200 -- name: 720p - format: 720p - score: 300 language: id: 1 name: English +quality_groups: + - id: 1002 + name: "WEB 1080p" + qualities: + - id: 3 + name: WEBDL-1080p + source: webdl + resolution: 1080 + - id: 15 + name: WEBRip-1080p + source: webrip + resolution: 1080 +format_items: + - name: 2160p + format: 2160p + score: -300 + - name: x264 + format: x264 + score: -200 + - name: x265 + format: x265 + score: -200 + - name: 1080p + format: 1080p + score: -200 + - name: 720p + format: 720p + score: 300 diff --git a/modules/radarr/main.tf b/modules/radarr/main.tf index ebef332..a6eaa4c 100644 --- a/modules/radarr/main.tf +++ b/modules/radarr/main.tf @@ -6,14 +6,15 @@ resource "radarr_custom_format" "this" { } resource "radarr_quality_profile" "this" { - for_each = var.quality_profiles - name = each.key - upgrade_allowed = lookup(each.value, "upgrade_allowed", false) - cutoff = each.value.cutoff - cutoff_format_score = lookup(each.value, "cutoff_format_score", 0) - min_format_score = lookup(each.value, "min_format_score", 0) - quality_groups = each.value.quality_groups - language = each.value.language + for_each = var.quality_profiles + name = each.key + upgrade_allowed = lookup(each.value, "upgrade_allowed", false) + cutoff = each.value.cutoff + cutoff_format_score = lookup(each.value, "cutoff_format_score", 0) + min_format_score = lookup(each.value, "min_format_score", 0) + min_upgrade_format_score = lookup(each.value, "min_upgrade_format_score", 0) + quality_groups = each.value.quality_groups + language = each.value.language format_items = [ for fi in lookup(each.value, "format_items", []) : { @@ -26,7 +27,7 @@ resource "radarr_quality_profile" "this" { resource "radarr_download_client_nzbget" "this" { for_each = var.download_clients - name = each.key + name = lookup(each.value, "name", each.key) enable = lookup(each.value, "enable", true) priority = lookup(each.value, "priority", 1) host = each.value.host @@ -37,11 +38,15 @@ resource "radarr_download_client_nzbget" "this" { movie_category = lookup(each.value, "movie_category", "") remove_completed_downloads = lookup(each.value, "remove_completed_downloads", true) remove_failed_downloads = lookup(each.value, "remove_failed_downloads", true) + + lifecycle { + ignore_changes = [password] + } } resource "radarr_indexer_newznab" "this" { for_each = var.indexers - name = each.key + name = lookup(each.value, "name", each.key) enable_automatic_search = lookup(each.value, "enable_automatic_search", true) enable_interactive_search = lookup(each.value, "enable_interactive_search", true) enable_rss = lookup(each.value, "enable_rss", true) @@ -50,15 +55,19 @@ resource "radarr_indexer_newznab" "this" { api_path = lookup(each.value, "api_path", "/api") api_key = lookup(each.value, "api_key", "") categories = lookup(each.value, "categories", []) + + lifecycle { + ignore_changes = [api_key] + } } resource "radarr_notification_emby" "this" { for_each = var.notifications - name = each.key + name = lookup(each.value, "name", each.key) host = each.value.host port = each.value.port use_ssl = lookup(each.value, "use_ssl", false) - api_key = each.value.api_key + api_key = lookup(each.value, "api_key", "") notify = lookup(each.value, "notify", false) update_library = lookup(each.value, "update_library", true) @@ -70,6 +79,10 @@ resource "radarr_notification_emby" "this" { on_movie_file_delete = lookup(each.value, "on_movie_file_delete", true) on_movie_file_delete_for_upgrade = lookup(each.value, "on_movie_file_delete_for_upgrade", true) on_application_update = lookup(each.value, "on_application_update", true) + + lifecycle { + ignore_changes = [api_key] + } } resource "radarr_delay_profile" "this" {