Replace the volume test with a useful file browser
This commit is contained in:
@@ -62,6 +62,6 @@ resource "nomad_volume" "unraid_transfer" {
|
||||
}
|
||||
}
|
||||
|
||||
resource "nomad_job" "volume_test" {
|
||||
jobspec = file("volume-test.nomad.hcl")
|
||||
resource "nomad_job" "transfer" {
|
||||
jobspec = file("transfer.nomad.hcl")
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.11.4",
|
||||
"serial": 484,
|
||||
"serial": 514,
|
||||
"lineage": "15e0900c-88bc-9754-4600-e3977d018ba0",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
@@ -267,7 +267,9 @@
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"allocation_ids": [],
|
||||
"datacenters": [],
|
||||
"datacenters": [
|
||||
"*"
|
||||
],
|
||||
"deployment_id": null,
|
||||
"deployment_status": null,
|
||||
"deregister_on_destroy": true,
|
||||
@@ -326,27 +328,25 @@
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "nomad_job",
|
||||
"name": "volume_test",
|
||||
"name": "transfer",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/nomad\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"allocation_ids": [],
|
||||
"datacenters": [
|
||||
"*"
|
||||
],
|
||||
"datacenters": [],
|
||||
"deployment_id": null,
|
||||
"deployment_status": null,
|
||||
"deregister_on_destroy": true,
|
||||
"deregister_on_id_change": true,
|
||||
"detach": true,
|
||||
"hcl2": [],
|
||||
"id": "volume-test",
|
||||
"jobspec": "job \"volume-test\" {\n group \"web\" {\n network {\n port \"www\" {\n to = 80\n }\n }\n\n volume \"unraid_transfer_use\" {\n type = \"csi\"\n source = \"unraid_transfer_id5\"\n access_mode = \"single-node-writer\"\n attachment_mode = \"file-system\"\n read_only = true\n\n mount_options {\n fs_type = \"ext4\"\n mount_flags = [\"noatime\"]\n }\n }\n\n service {\n name = \"volume-test\"\n port = \"www\"\n \n tags = [\n \"traefik.enable=true\",\n \"traefik.http.routers.volume-test.middlewares=auth@file\",\n ]\n\n check {\n name = \"alive\"\n type = \"tcp\"\n port = \"www\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n task \"webserver\" {\n driver = \"docker\"\n\n config {\n image = \"nginx:latest\"\n\n ports = [\"www\"]\n # volumes = [\n # \"local:/usr/share/nginx/html:ro\"\n # ]\n }\n\n volume_mount {\n volume = \"unraid_transfer_use\"\n\t destination = \"/usr/share/nginx/html/transfer\"\n read_only = true\n }\n\n # template {\n # data = \"\u003ch1\u003eVolume Test 1\u003c/h1\u003e\"\n # destination = \"local/index.html\"\n # }\n\n resources {\n cpu = 500\n memory = 256\n }\n }\n\n # volume \"local\" {\n # type = \"csi\"\n # source = \"unraid_transfer\"\n # read_only = true\n # access_mode = \"single-node-writer\"\n # attachment_mode = \"file-system\"\n # }\n }\n}",
|
||||
"id": "transfer",
|
||||
"jobspec": "job \"transfer\" {\n group \"transfer\" {\n network {\n port \"http\" {\n to = 80\n }\n }\n\n service {\n name = \"transfer\"\n port = \"http\"\n \n tags = [\n \"traefik.enable=true\",\n \"traefik.http.routers.volume-test.middlewares=auth@file\",\n ]\n\n check {\n type = \"http\"\n path = \"/\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n volume \"unraid_transfer_use\" {\n type = \"csi\"\n read_only = false\n source = \"unraid_transfer_id5\"\n access_mode = \"single-node-writer\"\n attachment_mode = \"file-system\"\n }\n\n task \"filebrowser\" {\n driver = \"docker\"\n\n config {\n # Use the s6 tag for the linuxserver.io based image\n image = \"filebrowser/filebrowser:s6\"\n\n ports = [\"http\"]\n\n volumes = [\n \"local/config/settings.json:/config/settings.json\",\n ]\n }\n\n volume_mount {\n volume = \"unraid_transfer_use\"\n\t destination = \"/srv\"\n read_only = false\n }\n\n resources {\n cpu = 500\n memory = 256\n }\n\n template {\n data = \u003c\u003cEOF\n{\n \"port\": 80,\n \"baseURL\": \"\",\n \"address\": \"\",\n \"log\": \"stdout\",\n \"database\": \"/database/filebrowser.db\",\n \"root\": \"/srv\",\n \"auth\": {\n \"method\": \"noauth\"\n }\n}\nEOF\n\n destination = \"local/config/settings.json\"\n }\n }\n }\n}",
|
||||
"json": null,
|
||||
"modify_index": "17705",
|
||||
"name": "volume-test",
|
||||
"modify_index": "19989",
|
||||
"name": "transfer",
|
||||
"namespace": "default",
|
||||
"policy_override": null,
|
||||
"purge_on_destroy": null,
|
||||
@@ -358,16 +358,16 @@
|
||||
{
|
||||
"count": 1,
|
||||
"meta": {},
|
||||
"name": "web",
|
||||
"name": "transfer",
|
||||
"task": [
|
||||
{
|
||||
"driver": "docker",
|
||||
"meta": {},
|
||||
"name": "webserver",
|
||||
"name": "filebrowser",
|
||||
"volume_mounts": [
|
||||
{
|
||||
"destination": "/usr/share/nginx/html/transfer",
|
||||
"read_only": true,
|
||||
"destination": "/srv",
|
||||
"read_only": false,
|
||||
"volume": "unraid_transfer_use"
|
||||
}
|
||||
]
|
||||
@@ -376,7 +376,7 @@
|
||||
"volumes": [
|
||||
{
|
||||
"name": "unraid_transfer_use",
|
||||
"read_only": true,
|
||||
"read_only": false,
|
||||
"source": "unraid_transfer_id5",
|
||||
"type": "csi"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.11.4",
|
||||
"serial": 482,
|
||||
"serial": 512,
|
||||
"lineage": "15e0900c-88bc-9754-4600-e3977d018ba0",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
@@ -267,7 +267,9 @@
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"allocation_ids": [],
|
||||
"datacenters": [],
|
||||
"datacenters": [
|
||||
"*"
|
||||
],
|
||||
"deployment_id": null,
|
||||
"deployment_status": null,
|
||||
"deregister_on_destroy": true,
|
||||
@@ -275,9 +277,9 @@
|
||||
"detach": true,
|
||||
"hcl2": [],
|
||||
"id": "traefik",
|
||||
"jobspec": "job \"traefik\" {\n group \"traefik\" {\n network {\n port \"http\" {\n static = 80\n }\n\n port \"https\" {\n static = 443\n }\n\n port \"api\" {\n static = 8081\n }\n }\n\n service {\n name = \"traefik\"\n\n tags = [\n \"traefik.enable=true\",\n \"traefik.http.routers.traefik.rule=Host(`traefik.othrayte.one`)\",\n \"traefik.http.routers.traefik.service=traefik\",\n \"traefik.http.routers.traefik.middlewares=authelia@file\",\n \"traefik.http.services.traefik.loadbalancer.server.port=8081\",\n ]\n\n check {\n name = \"alive\"\n type = \"tcp\"\n port = \"http\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n volume \"traefik\" {\n type = \"host\"\n read_only = false\n source = \"traefik\"\n }\n\n task \"traefik\" {\n driver = \"docker\"\n\n config {\n image = \"traefik:v3.3\"\n network_mode = \"host\"\n\n volumes = [\n \"local/traefik.yml:/etc/traefik/traefik.yml\",\n \"local/configs/:/etc/traefik/configs/\"\n ]\n }\n\n volume_mount {\n volume = \"traefik\"\n destination = \"/opt/traefik\"\n read_only = false\n }\n\n template {\n data = \u003c\u003cEOF\nentryPoints:\n web:\n address: \":80\"\n http:\n redirections:\n entryPoint:\n to: websecure\n scheme: https\n websecure:\n address: \":443\"\n http:\n tls:\n certResolver: letsencrypt\n traefik:\n address: \":8081\"\n\napi:\n dashboard: true\n insecure: true\n\nproviders:\n file:\n directory: \"/etc/traefik/configs/\"\n\n consulCatalog:\n prefix: \"traefik\"\n exposedByDefault: false\n defaultRule: {{\"Host(`{{ .Name }}.othrayte.one`)\"}}\n endpoint:\n address: \"127.0.0.1:8500\"\n scheme: \"http\"\n\ncertificatesResolvers:\n letsencrypt:\n acme:\n email: \"othrayte@gmail.com\"\n storage: \"/opt/traefik/acme.json\"\n httpChallenge:\n entryPoint: web\nEOF\n\n destination = \"local/traefik.yml\"\n }\n\n template {\n data = \u003c\u003cEOF\nhttp:\n middlewares:\n auth:\n forwardAuth:\n address: \"http://192.168.1.235:9091/api/authz/forward-auth\"\n trustForwardHeader: true\n routers:\n fallback:\n rule: \"HostRegexp(`^.+$`)\"\n entryPoints:\n - websecure\n middlewares:\n - auth\n service: noop@internal # This router just applies middleware\n priority: 1\n nomad-ui:\n rule: \"Host(`nomad.othrayte.one`)\"\n service: nomad-ui\n middlewares:\n - auth\n consul-ui:\n rule: \"Host(`consul.othrayte.one`)\"\n service: consul-ui\n middlewares:\n - auth\n unraid:\n rule: \"Host(`unraid.othrayte.one`)\"\n service: unraid\n middlewares:\n - auth\n\n services:\n nomad-ui:\n loadBalancer:\n servers:\n - url: \"http://127.0.0.1:4646\"\n consul-ui:\n loadBalancer:\n servers:\n - url: \"http://127.0.0.1:8500\"\n unraid:\n loadBalancer:\n servers:\n - url: \"http://192.168.1.192:80\"\nEOF\n\n destination = \"local/configs/nomad.yml\"\n }\n\n resources {\n cpu = 100\n memory = 128\n }\n }\n }\n}\n",
|
||||
"jobspec": "job \"traefik\" {\n group \"traefik\" {\n network {\n port \"http\" {\n static = 80\n }\n\n port \"https\" {\n static = 443\n }\n\n port \"api\" {\n static = 8081\n }\n }\n\n service {\n name = \"traefik\"\n\n tags = [\n \"traefik.enable=true\",\n \"traefik.http.routers.traefik.rule=Host(`traefik.othrayte.one`)\",\n \"traefik.http.routers.traefik.service=traefik\",\n \"traefik.http.routers.traefik.middlewares=auth@file\",\n \"traefik.http.services.traefik.loadbalancer.server.port=8081\",\n ]\n\n check {\n name = \"alive\"\n type = \"tcp\"\n port = \"http\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n volume \"traefik\" {\n type = \"host\"\n read_only = false\n source = \"traefik\"\n }\n\n task \"traefik\" {\n driver = \"docker\"\n\n config {\n image = \"traefik:v3.3\"\n network_mode = \"host\"\n\n volumes = [\n \"local/traefik.yml:/etc/traefik/traefik.yml\",\n \"local/configs/:/etc/traefik/configs/\"\n ]\n }\n\n volume_mount {\n volume = \"traefik\"\n destination = \"/opt/traefik\"\n read_only = false\n }\n\n template {\n data = \u003c\u003cEOF\nentryPoints:\n web:\n address: \":80\"\n http:\n redirections:\n entryPoint:\n to: websecure\n scheme: https\n websecure:\n address: \":443\"\n http:\n tls:\n certResolver: letsencrypt\n traefik:\n address: \":8081\"\n\napi:\n dashboard: true\n insecure: true\n\nproviders:\n file:\n directory: \"/etc/traefik/configs/\"\n\n consulCatalog:\n prefix: \"traefik\"\n exposedByDefault: false\n defaultRule: {{\"Host(`{{ .Name }}.othrayte.one`)\"}}\n endpoint:\n address: \"127.0.0.1:8500\"\n scheme: \"http\"\n\ncertificatesResolvers:\n letsencrypt:\n acme:\n email: \"othrayte@gmail.com\"\n storage: \"/opt/traefik/acme.json\"\n httpChallenge:\n entryPoint: web\nEOF\n\n destination = \"local/traefik.yml\"\n }\n\n template {\n data = \u003c\u003cEOF\nhttp:\n middlewares:\n auth:\n forwardAuth:\n address: \"http://192.168.1.235:9091/api/authz/forward-auth\"\n trustForwardHeader: true\n routers:\n fallback:\n rule: \"HostRegexp(`^.+$`)\"\n entryPoints:\n - websecure\n middlewares:\n - auth\n service: noop@internal # This router just applies middleware\n priority: 1\n nomad-ui:\n rule: \"Host(`nomad.othrayte.one`)\"\n service: nomad-ui\n middlewares:\n - auth\n consul-ui:\n rule: \"Host(`consul.othrayte.one`)\"\n service: consul-ui\n middlewares:\n - auth\n unraid:\n rule: \"Host(`unraid.othrayte.one`)\"\n service: unraid\n middlewares:\n - auth\n\n services:\n nomad-ui:\n loadBalancer:\n servers:\n - url: \"http://127.0.0.1:4646\"\n consul-ui:\n loadBalancer:\n servers:\n - url: \"http://127.0.0.1:8500\"\n unraid:\n loadBalancer:\n servers:\n - url: \"http://192.168.1.192:80\"\nEOF\n\n destination = \"local/configs/nomad.yml\"\n }\n\n resources {\n cpu = 100\n memory = 128\n }\n }\n }\n}\n",
|
||||
"json": null,
|
||||
"modify_index": "17991",
|
||||
"modify_index": "18000",
|
||||
"name": "traefik",
|
||||
"namespace": "default",
|
||||
"policy_override": null,
|
||||
@@ -326,27 +328,25 @@
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "nomad_job",
|
||||
"name": "volume_test",
|
||||
"name": "transfer",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/nomad\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"allocation_ids": [],
|
||||
"datacenters": [
|
||||
"*"
|
||||
],
|
||||
"datacenters": [],
|
||||
"deployment_id": null,
|
||||
"deployment_status": null,
|
||||
"deregister_on_destroy": true,
|
||||
"deregister_on_id_change": true,
|
||||
"detach": true,
|
||||
"hcl2": [],
|
||||
"id": "volume-test",
|
||||
"jobspec": "job \"volume-test\" {\n group \"web\" {\n network {\n port \"www\" {\n to = 80\n }\n }\n\n volume \"unraid_transfer_use\" {\n type = \"csi\"\n source = \"unraid_transfer_id5\"\n access_mode = \"single-node-writer\"\n attachment_mode = \"file-system\"\n read_only = true\n\n mount_options {\n fs_type = \"ext4\"\n mount_flags = [\"noatime\"]\n }\n }\n\n service {\n name = \"volume-test\"\n port = \"www\"\n \n tags = [\n \"traefik.enable=true\",\n \"traefik.http.routers.volume-test.middlewares=auth@file\",\n ]\n\n check {\n name = \"alive\"\n type = \"tcp\"\n port = \"www\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n task \"webserver\" {\n driver = \"docker\"\n\n config {\n image = \"nginx:latest\"\n\n ports = [\"www\"]\n # volumes = [\n # \"local:/usr/share/nginx/html:ro\"\n # ]\n }\n\n volume_mount {\n volume = \"unraid_transfer_use\"\n\t destination = \"/usr/share/nginx/html/transfer\"\n read_only = true\n }\n\n # template {\n # data = \"\u003ch1\u003eVolume Test 1\u003c/h1\u003e\"\n # destination = \"local/index.html\"\n # }\n\n resources {\n cpu = 500\n memory = 256\n }\n }\n\n # volume \"local\" {\n # type = \"csi\"\n # source = \"unraid_transfer\"\n # read_only = true\n # access_mode = \"single-node-writer\"\n # attachment_mode = \"file-system\"\n # }\n }\n}",
|
||||
"id": "transfer",
|
||||
"jobspec": "job \"transfer\" {\n group \"transfer\" {\n network {\n port \"http\" {\n to = 80\n }\n }\n\n service {\n name = \"transfer\"\n port = \"http\"\n \n tags = [\n \"traefik.enable=true\",\n \"traefik.http.routers.volume-test.middlewares=auth@file\",\n ]\n\n check {\n type = \"http\"\n path = \"/\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n volume \"unraid_transfer_use\" {\n type = \"csi\"\n read_only = false\n source = \"unraid_transfer_id5\"\n access_mode = \"single-node-writer\"\n attachment_mode = \"file-system\"\n }\n\n task \"filebrowser\" {\n driver = \"docker\"\n\n config {\n # Use the s6 tag for the linuxserver.io based image\n image = \"filebrowser/filebrowser:s6\"\n\n ports = [\"http\"]\n\n volumes = [\n \"local/config/settings.json:/config/settings.json\",\n ]\n }\n\n volume_mount {\n volume = \"unraid_transfer_use\"\n\t destination = \"/srv\"\n read_only = false\n }\n\n resources {\n cpu = 500\n memory = 256\n }\n\n template {\n data = \u003c\u003cEOF\n{\n \"port\": 80,\n \"baseURL\": \"\",\n \"address\": \"\",\n \"log\": \"stdout\",\n \"database\": \"/database/filebrowser.db\",\n \"root\": \"/srv\",\n \"auth\": {\n \"method\": \"noauth\",\n \"header\": \"X-Forwarded-User\"\n }\n}\nEOF\n\n destination = \"local/config/settings.json\"\n }\n }\n }\n}",
|
||||
"json": null,
|
||||
"modify_index": "17705",
|
||||
"name": "volume-test",
|
||||
"modify_index": "19963",
|
||||
"name": "transfer",
|
||||
"namespace": "default",
|
||||
"policy_override": null,
|
||||
"purge_on_destroy": null,
|
||||
@@ -358,16 +358,16 @@
|
||||
{
|
||||
"count": 1,
|
||||
"meta": {},
|
||||
"name": "web",
|
||||
"name": "transfer",
|
||||
"task": [
|
||||
{
|
||||
"driver": "docker",
|
||||
"meta": {},
|
||||
"name": "webserver",
|
||||
"name": "filebrowser",
|
||||
"volume_mounts": [
|
||||
{
|
||||
"destination": "/usr/share/nginx/html/transfer",
|
||||
"read_only": true,
|
||||
"destination": "/srv",
|
||||
"read_only": false,
|
||||
"volume": "unraid_transfer_use"
|
||||
}
|
||||
]
|
||||
@@ -376,7 +376,7 @@
|
||||
"volumes": [
|
||||
{
|
||||
"name": "unraid_transfer_use",
|
||||
"read_only": true,
|
||||
"read_only": false,
|
||||
"source": "unraid_transfer_id5",
|
||||
"type": "csi"
|
||||
}
|
||||
|
||||
78
2-nomad-config/transfer.nomad.hcl
Normal file
78
2-nomad-config/transfer.nomad.hcl
Normal file
@@ -0,0 +1,78 @@
|
||||
job "transfer" {
|
||||
group "transfer" {
|
||||
network {
|
||||
port "http" {
|
||||
to = 80
|
||||
}
|
||||
}
|
||||
|
||||
service {
|
||||
name = "transfer"
|
||||
port = "http"
|
||||
|
||||
tags = [
|
||||
"traefik.enable=true",
|
||||
"traefik.http.routers.transfer.middlewares=auth@file",
|
||||
]
|
||||
|
||||
check {
|
||||
type = "http"
|
||||
path = "/"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
}
|
||||
|
||||
volume "unraid_transfer_use" {
|
||||
type = "csi"
|
||||
read_only = false
|
||||
source = "unraid_transfer_id5"
|
||||
access_mode = "single-node-writer"
|
||||
attachment_mode = "file-system"
|
||||
}
|
||||
|
||||
task "filebrowser" {
|
||||
driver = "docker"
|
||||
|
||||
config {
|
||||
# Use the s6 tag for the linuxserver.io based image
|
||||
image = "filebrowser/filebrowser:s6"
|
||||
|
||||
ports = ["http"]
|
||||
|
||||
volumes = [
|
||||
"local/config/settings.json:/config/settings.json",
|
||||
]
|
||||
}
|
||||
|
||||
volume_mount {
|
||||
volume = "unraid_transfer_use"
|
||||
destination = "/srv"
|
||||
read_only = false
|
||||
}
|
||||
|
||||
resources {
|
||||
cpu = 500
|
||||
memory = 256
|
||||
}
|
||||
|
||||
template {
|
||||
data = <<EOF
|
||||
{
|
||||
"port": 80,
|
||||
"baseURL": "",
|
||||
"address": "",
|
||||
"log": "stdout",
|
||||
"database": "/database/filebrowser.db",
|
||||
"root": "/srv",
|
||||
"auth": {
|
||||
"method": "noauth"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
destination = "local/config/settings.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
job "volume-test" {
|
||||
group "web" {
|
||||
network {
|
||||
port "www" {
|
||||
to = 80
|
||||
}
|
||||
}
|
||||
|
||||
volume "unraid_transfer_use" {
|
||||
type = "csi"
|
||||
source = "unraid_transfer_id5"
|
||||
access_mode = "single-node-writer"
|
||||
attachment_mode = "file-system"
|
||||
read_only = true
|
||||
|
||||
mount_options {
|
||||
fs_type = "ext4"
|
||||
mount_flags = ["noatime"]
|
||||
}
|
||||
}
|
||||
|
||||
service {
|
||||
name = "volume-test"
|
||||
port = "www"
|
||||
|
||||
tags = [
|
||||
"traefik.enable=true",
|
||||
"traefik.http.routers.volume-test.middlewares=auth@file",
|
||||
]
|
||||
|
||||
check {
|
||||
name = "alive"
|
||||
type = "tcp"
|
||||
port = "www"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
}
|
||||
|
||||
task "webserver" {
|
||||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "nginx:latest"
|
||||
|
||||
ports = ["www"]
|
||||
# volumes = [
|
||||
# "local:/usr/share/nginx/html:ro"
|
||||
# ]
|
||||
}
|
||||
|
||||
volume_mount {
|
||||
volume = "unraid_transfer_use"
|
||||
destination = "/usr/share/nginx/html/transfer"
|
||||
read_only = true
|
||||
}
|
||||
|
||||
# template {
|
||||
# data = "<h1>Volume Test 1</h1>"
|
||||
# destination = "local/index.html"
|
||||
# }
|
||||
|
||||
resources {
|
||||
cpu = 500
|
||||
memory = 256
|
||||
}
|
||||
}
|
||||
|
||||
# volume "local" {
|
||||
# type = "csi"
|
||||
# source = "unraid_transfer"
|
||||
# read_only = true
|
||||
# access_mode = "single-node-writer"
|
||||
# attachment_mode = "file-system"
|
||||
# }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user