Make appdata and unraid smb modules to reduce duplication
This commit is contained in:
62
2-nomad-config/modules/unraid_smb/main.tf
Normal file
62
2-nomad-config/modules/unraid_smb/main.tf
Normal file
@@ -0,0 +1,62 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
sops = {
|
||||
source = "carlpett/sops"
|
||||
version = "~> 0.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
description = "Name of the volume registration"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "id" {
|
||||
description = "ID to use for the volume registration, defaults to name with - replaced by _"
|
||||
type = string
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "share" {
|
||||
description = "Name of the SMB share on the unraid server"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "subDir" {
|
||||
description = "Subdirectory within the SMB share"
|
||||
type = string
|
||||
default = null
|
||||
}
|
||||
|
||||
data "nomad_plugin" "smb" {
|
||||
plugin_id = "smb"
|
||||
wait_for_healthy = true
|
||||
}
|
||||
|
||||
data "sops_file" "secrets" {
|
||||
source_file = "secrets/secrets.enc.json"
|
||||
}
|
||||
|
||||
resource "nomad_csi_volume_registration" "this" {
|
||||
depends_on = [data.nomad_plugin.smb]
|
||||
plugin_id = "smb"
|
||||
|
||||
volume_id = var.id != null ? var.id : "unraid_${var.share}_${replace(var.name, "-", "_")}"
|
||||
name = var.id != null ? var.id : "unraid_${var.share}_${replace(var.name, "-", "_")}"
|
||||
external_id = var.id != null ? var.id : "unraid_${var.share}_${replace(var.name, "-", "_")}"
|
||||
|
||||
capability {
|
||||
access_mode = "single-node-writer"
|
||||
attachment_mode = "file-system"
|
||||
}
|
||||
|
||||
context = merge({
|
||||
source = "//betelgeuse-seven-unraid.lan/${var.share}"
|
||||
}, var.subDir == null ? {} : { "subDir" = var.subDir })
|
||||
|
||||
secrets = {
|
||||
"username" = "nomad"
|
||||
"password" = data.sops_file.secrets.data["unraid.nomad"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user