Refactor s3 in opentofu to allow internal/external provider selection
This commit is contained in:
		
							parent
							
								
									9af19f51fa
								
							
						
					
					
						commit
						b336d01858
					
				
					 4 changed files with 5 additions and 42 deletions
				
			
		|  | @ -29,9 +29,7 @@ terraform { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| locals { | locals { | ||||||
|   services_auth = {for key, val in var.services : key => val if val.auth} |   services_s3 = {for key, val in var.services : key => (val.s3_buckets != null) ? val.s3_buckets : [key] if (val.s3 == "external")} | ||||||
|   services_database = {for key, val in var.services : key => val if val.database} |  | ||||||
|   services_s3 = {for key, val in var.services : key => (val.s3_buckets != null) ? val.s3_buckets : [key] if val.s3} |  | ||||||
|   buckets_s3 = merge([for key, val in local.services_s3 : {for bucket in val : bucket => key}]...) |   buckets_s3 = merge([for key, val in local.services_s3 : {for bucket in val : bucket => key}]...) | ||||||
| 
 | 
 | ||||||
|   hetzner_hosts = {for key, val in var.hosts : key => val if val.provider == "hetzner"} |   hetzner_hosts = {for key, val in var.hosts : key => val if val.provider == "hetzner"} | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ variable "services" { | ||||||
|     auth = bool |     auth = bool | ||||||
|     auth_cert = optional(string) |     auth_cert = optional(string) | ||||||
|     auth_redirects = optional(list(string)) |     auth_redirects = optional(list(string)) | ||||||
|     s3 = bool |     s3 = optional(string) | ||||||
|     s3_buckets = optional(list(string)) |     s3_buckets = optional(list(string)) | ||||||
|     database = bool |     database = bool | ||||||
|   })) |   })) | ||||||
|  |  | ||||||
|  | @ -32,7 +32,6 @@ services = { | ||||||
|     ] |     ] | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "authentik" = { |   "authentik" = { | ||||||
|  | @ -47,7 +46,6 @@ services = { | ||||||
|     certificates = ["auth.serguzim.me"] |     certificates = ["auth.serguzim.me"] | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|     mail = "auth" |     mail = "auth" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -55,7 +53,6 @@ services = { | ||||||
|     host = "*" |     host = "*" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "briefing" = { |   "briefing" = { | ||||||
|  | @ -69,7 +66,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   "caddy" = { |   "caddy" = { | ||||||
|  | @ -96,7 +92,6 @@ services = { | ||||||
|     ] |     ] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "deploy" = { |   "deploy" = { | ||||||
|  | @ -111,7 +106,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   "dokku" = { |   "dokku" = { | ||||||
|  | @ -154,14 +148,12 @@ services = { | ||||||
|     ] |     ] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "extra_services" = { |   "extra_services" = { | ||||||
|     host = "node001" |     host = "node001" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   #"factorio" = { |   #"factorio" = { | ||||||
|  | @ -198,7 +190,6 @@ services = { | ||||||
|   #  ] |   #  ] | ||||||
|   #  auth = false |   #  auth = false | ||||||
|   #  database = false |   #  database = false | ||||||
|   #  s3 = false |  | ||||||
|   #} |   #} | ||||||
| 
 | 
 | ||||||
|   "forgejo" = { |   "forgejo" = { | ||||||
|  | @ -229,7 +220,7 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://git.serguzim.me/user/oauth2/auth.serguzim.me/callback"] |     auth_redirects = ["https://git.serguzim.me/user/oauth2/auth.serguzim.me/callback"] | ||||||
|     database = true |     database = true | ||||||
|     s3 = true |     s3 = "external" | ||||||
|     mail = "git" |     mail = "git" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -237,14 +228,12 @@ services = { | ||||||
|     host = "node001" |     host = "node001" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "healthcheck" = { |   "healthcheck" = { | ||||||
|     host = "node001" |     host = "node001" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "gatus" = { |   "gatus" = { | ||||||
|  | @ -261,7 +250,6 @@ services = { | ||||||
|     }] |     }] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|     mail = "status" |     mail = "status" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -284,7 +272,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|     mail = "inventory" |     mail = "inventory" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -309,7 +296,6 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://gallery.serguzim.me/auth/login"] |     auth_redirects = ["https://gallery.serguzim.me/auth/login"] | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "influxdb" = { |   "influxdb" = { | ||||||
|  | @ -334,7 +320,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "jellyfin" = { |   "jellyfin" = { | ||||||
|  | @ -362,14 +347,12 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "lego" = { |   "lego" = { | ||||||
|     host = "*" |     host = "*" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   mailcowdockerized = { |   mailcowdockerized = { | ||||||
|  | @ -429,7 +412,6 @@ services = { | ||||||
|     ] |     ] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "lgtm_stack" = { |   "lgtm_stack" = { | ||||||
|  | @ -460,7 +442,7 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://monitoring.serguzim.me/login/generic_oauth"] |     auth_redirects = ["https://monitoring.serguzim.me/login/generic_oauth"] | ||||||
|     database = true |     database = true | ||||||
|     s3 = true |     s3 = "external" | ||||||
|     s3_buckets = ["mimir_blocks", "mimir_alertmanager", "mimir_ruler"] |     s3_buckets = ["mimir_blocks", "mimir_alertmanager", "mimir_ruler"] | ||||||
|     mail = "monitoring" |     mail = "monitoring" | ||||||
|   } |   } | ||||||
|  | @ -493,7 +475,6 @@ services = { | ||||||
|     }] |     }] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "minio" = { |   "minio" = { | ||||||
|  | @ -519,14 +500,12 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://console.s3.serguzim.me/oauth_callback"] |     auth_redirects = ["https://console.s3.serguzim.me/oauth_callback"] | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "node_exporter" = { |   "node_exporter" = { | ||||||
|     host = "*" |     host = "*" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "ntfy" = { |   "ntfy" = { | ||||||
|  | @ -551,7 +530,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "postgresql" = { |   "postgresql" = { | ||||||
|  | @ -574,7 +552,6 @@ services = { | ||||||
|     certificates = ["db.serguzim.me"] |     certificates = ["db.serguzim.me"] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "reitanlage_oranienburg" = { |   "reitanlage_oranienburg" = { | ||||||
|  | @ -598,7 +575,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "shlink" = { |   "shlink" = { | ||||||
|  | @ -628,7 +604,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "synapse" = { |   "synapse" = { | ||||||
|  | @ -665,7 +640,6 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://matrix.serguzim.me/_synapse/client/oidc/callback"] |     auth_redirects = ["https://matrix.serguzim.me/_synapse/client/oidc/callback"] | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|     mail = "matrix" |     mail = "matrix" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -684,7 +658,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "teamspeak_fallback" = { |   "teamspeak_fallback" = { | ||||||
|  | @ -723,7 +696,6 @@ services = { | ||||||
|     ] |     ] | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   "tinytinyrss" = { |   "tinytinyrss" = { | ||||||
|  | @ -737,7 +709,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "umami" = { |   "umami" = { | ||||||
|  | @ -751,7 +722,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "vikunja" = { |   "vikunja" = { | ||||||
|  | @ -773,7 +743,6 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://todo.serguzim.me/auth/openid/authserguzimme"] |     auth_redirects = ["https://todo.serguzim.me/auth/openid/authserguzimme"] | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|     mail = "todo" |     mail = "todo" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -781,7 +750,6 @@ services = { | ||||||
|     host = "*" |     host = "*" | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|     mail = "watchtower" |     mail = "watchtower" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -796,7 +764,6 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = false |     database = false | ||||||
|     s3 = false |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   "wiki_js" = { |   "wiki_js" = { | ||||||
|  | @ -810,7 +777,6 @@ services = { | ||||||
|     auth = true |     auth = true | ||||||
|     auth_redirects = ["https://wiki.serguzim.me/login/f792bc7d-1a25-4437-944e-55eaf0111102/callback"] |     auth_redirects = ["https://wiki.serguzim.me/login/f792bc7d-1a25-4437-944e-55eaf0111102/callback"] | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|     mail = "wiki" |     mail = "wiki" | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  | @ -836,6 +802,5 @@ services = { | ||||||
|     } |     } | ||||||
|     auth = false |     auth = false | ||||||
|     database = true |     database = true | ||||||
|     s3 = false |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -156,7 +156,7 @@ variable "services" { | ||||||
|     auth = bool |     auth = bool | ||||||
|     auth_cert = optional(string) |     auth_cert = optional(string) | ||||||
|     auth_redirects = optional(list(string)) |     auth_redirects = optional(list(string)) | ||||||
|     s3 = bool |     s3 = optional(string) | ||||||
|     s3_buckets = optional(list(string)) |     s3_buckets = optional(list(string)) | ||||||
|     database = bool |     database = bool | ||||||
|     mail = optional(string) |     mail = optional(string) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue