145 lines
3.1 KiB
HCL
145 lines
3.1 KiB
HCL
provider "nomad" {
|
|
# For some reason nomad is binding to the tailscale IP but not the (local) IP that we get for the same hostname
|
|
address = "http://jaglan-beta-m01:4646"
|
|
}
|
|
|
|
terraform {
|
|
required_providers {
|
|
sops = {
|
|
source = "carlpett/sops"
|
|
version = "~> 0.5"
|
|
}
|
|
}
|
|
}
|
|
|
|
terraform {
|
|
backend "local" {
|
|
path = "./.tfstate/terraform.tfstate"
|
|
}
|
|
}
|
|
|
|
resource "nomad_job" "glance" {
|
|
jobspec = file("glance.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "hello_world" {
|
|
jobspec = file("hello-world.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "traefik" {
|
|
jobspec = file("traefik.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "authelia" {
|
|
jobspec = file("authelia.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "webapp" {
|
|
jobspec = file("webapp.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "csi-smb" {
|
|
jobspec = file("csi-smb.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "postgres" {
|
|
jobspec = file("postgres.nomad.hcl")
|
|
}
|
|
|
|
resource "nomad_job" "pgadmin" {
|
|
jobspec = file("pgadmin.nomad.hcl")
|
|
}
|
|
|
|
data "nomad_plugin" "smb" {
|
|
plugin_id = "smb"
|
|
wait_for_healthy = true
|
|
}
|
|
|
|
resource "nomad_csi_volume_registration" "unraid_transfer" {
|
|
#Note: Before chaning the definition of this volume you need to stop the jobs that are using it
|
|
depends_on = [data.nomad_plugin.smb]
|
|
plugin_id = "smb"
|
|
|
|
volume_id = "unraid_transfer"
|
|
name = "unraid_transfer"
|
|
|
|
external_id = "unraid_transfer"
|
|
|
|
capability {
|
|
access_mode = "single-node-writer"
|
|
attachment_mode = "file-system"
|
|
}
|
|
|
|
context = {
|
|
source = "//192.168.1.192/transfer"
|
|
}
|
|
|
|
secrets = {
|
|
"username" = "anon"
|
|
"password" = ""
|
|
}
|
|
}
|
|
|
|
resource "nomad_job" "transfer" {
|
|
jobspec = file("transfer.nomad.hcl")
|
|
}
|
|
|
|
data "sops_file" "secrets" {
|
|
source_file = "secrets.enc.json"
|
|
}
|
|
|
|
resource "nomad_csi_volume_registration" "unraid_database_dump" {
|
|
#Note: Before chaning the definition of this volume you need to stop the jobs that are using it
|
|
depends_on = [data.nomad_plugin.smb]
|
|
plugin_id = "smb"
|
|
|
|
volume_id = "unraid_database_dump"
|
|
name = "unraid_database_dump"
|
|
|
|
external_id = "unraid_database_dump"
|
|
|
|
capability {
|
|
access_mode = "single-node-writer"
|
|
attachment_mode = "file-system"
|
|
}
|
|
|
|
context = {
|
|
source = "//192.168.1.192/database-dump"
|
|
}
|
|
|
|
secrets = {
|
|
"username" = "nomad"
|
|
"password" = data.sops_file.secrets.data["unraid.nomad"]
|
|
}
|
|
}
|
|
|
|
resource "nomad_csi_volume_registration" "unraid_appdata_transferfilebrowser" {
|
|
#Note: Before chaning the definition of this volume you need to stop the jobs that are using it
|
|
depends_on = [data.nomad_plugin.smb]
|
|
plugin_id = "smb"
|
|
|
|
volume_id = "unraid_appdata_transferfilebrowser"
|
|
name = "unraid_appdata_transferfilebrowser"
|
|
|
|
external_id = "unraid_appdata_transferfilebrowser"
|
|
|
|
capability {
|
|
access_mode = "single-node-writer"
|
|
attachment_mode = "file-system"
|
|
}
|
|
|
|
context = {
|
|
source = "//192.168.1.192/appdata"
|
|
subDir = "transferfilebrowser" # Note: Needs to be manually created on the share
|
|
}
|
|
|
|
secrets = {
|
|
"username" = "nomad"
|
|
"password" = data.sops_file.secrets.data["unraid.nomad"]
|
|
}
|
|
}
|
|
|
|
resource "nomad_job" "pgbackup" {
|
|
jobspec = file("pgbackup.nomad.hcl")
|
|
}
|