feat(deploy): use Consul KV for secrets via template stanza
Some checks failed
Build and Deploy MoneyMaker / build-and-deploy (push) Has been cancelled
Some checks failed
Build and Deploy MoneyMaker / build-and-deploy (push) Has been cancelled
- Remove sed substitution from pipeline (no more __PLACEHOLDER__ pattern)
- Nomad template{} reads mmd/* keys from Consul KV at allocation time
- Secrets never touch git or pipeline logs
- Remove Gitea secrets dependency for app secrets (only HARBOR_ROBOT_TOKEN needed)
This commit is contained in:
80
mmd.nomad
80
mmd.nomad
@@ -32,13 +32,7 @@ job "moneymaker" {
|
||||
|
||||
constraint {
|
||||
attribute = "${node.unique.name}"
|
||||
value = "autobox"
|
||||
}
|
||||
|
||||
volume "moneymaker-data" {
|
||||
type = "host"
|
||||
source = "moneymaker-data"
|
||||
read_only = false
|
||||
value = "int"
|
||||
}
|
||||
|
||||
service {
|
||||
@@ -74,16 +68,11 @@ job "moneymaker" {
|
||||
task "web" {
|
||||
driver = "docker"
|
||||
|
||||
volume_mount {
|
||||
volume = "moneymaker-data"
|
||||
destination = "/app/data"
|
||||
read_only = false
|
||||
}
|
||||
|
||||
config {
|
||||
image = "registry.i80.dk/gitea/mmd:latest"
|
||||
ports = ["http"]
|
||||
force_pull = true
|
||||
volumes = ["/opt/nomad/volumes/moneymaker-data:/app/data"]
|
||||
}
|
||||
|
||||
restart {
|
||||
@@ -94,16 +83,28 @@ job "moneymaker" {
|
||||
}
|
||||
|
||||
env {
|
||||
APP_ENV = "production"
|
||||
PORT = "${NOMAD_PORT_http}"
|
||||
HOST = "0.0.0.0"
|
||||
LOG_DIR = "/app/data/logs"
|
||||
SAXO_TOKEN_FILE = "/app/data/.saxo_token.json"
|
||||
HF_HOME = "/app/data/hf-cache"
|
||||
DATABASE_URL = "__DATABASE_URL__"
|
||||
ANTHROPIC_API_KEY = "__ANTHROPIC_API_KEY__"
|
||||
SAXO_APP_KEY = "__SAXO_APP_KEY__"
|
||||
SAXO_APP_SECRET_1 = "__SAXO_APP_SECRET_1__"
|
||||
APP_ENV = "production"
|
||||
PORT = "${NOMAD_PORT_http}"
|
||||
HOST = "0.0.0.0"
|
||||
LOG_DIR = "/app/data/logs"
|
||||
SAXO_TOKEN_FILE = "/app/data/.saxo_token.json"
|
||||
HF_HOME = "/app/data/hf-cache"
|
||||
}
|
||||
|
||||
template {
|
||||
data = <<EOF
|
||||
DATABASE_URL={{ key "mmd/DATABASE_URL" }}
|
||||
ANTHROPIC_API_KEY={{ key "mmd/anthropic_api_key" }}
|
||||
SAXO_APP_KEY={{ key "mmd/SAXO_APP_KEY" }}
|
||||
SAXO_APP_SECRET_1={{ key "mmd/SAXO_APP_SECRET_1" }}
|
||||
SAXO_APP_SECRET_2={{ key "mmd/SAXO_APP_SECRET_2" }}
|
||||
SAXO_BASE={{ key "mmd/SAXO_BASE" }}
|
||||
SAXO_AUTH_URL={{ key "mmd/SAXO_AUTH_URL" }}
|
||||
SAXO_TOKEN_URL={{ key "mmd/SAXO_TOKEN_URL" }}
|
||||
SAXO_REDIRECT={{ key "mmd/SAXO_REDIRECT" }}
|
||||
EOF
|
||||
destination = "secrets/app.env"
|
||||
env = true
|
||||
}
|
||||
|
||||
resources {
|
||||
@@ -116,17 +117,12 @@ job "moneymaker" {
|
||||
task "worker" {
|
||||
driver = "docker"
|
||||
|
||||
volume_mount {
|
||||
volume = "moneymaker-data"
|
||||
destination = "/app/data"
|
||||
read_only = false
|
||||
}
|
||||
|
||||
config {
|
||||
image = "registry.i80.dk/gitea/mmd:latest"
|
||||
command = "python"
|
||||
args = ["scheduler.py"]
|
||||
force_pull = true
|
||||
volumes = ["/opt/nomad/volumes/moneymaker-data:/app/data"]
|
||||
}
|
||||
|
||||
restart {
|
||||
@@ -137,13 +133,25 @@ job "moneymaker" {
|
||||
}
|
||||
|
||||
env {
|
||||
LOG_DIR = "/app/data/logs"
|
||||
SAXO_TOKEN_FILE = "/app/data/.saxo_token.json"
|
||||
HF_HOME = "/app/data/hf-cache"
|
||||
DATABASE_URL = "__DATABASE_URL__"
|
||||
ANTHROPIC_API_KEY = "__ANTHROPIC_API_KEY__"
|
||||
SAXO_APP_KEY = "__SAXO_APP_KEY__"
|
||||
SAXO_APP_SECRET_1 = "__SAXO_APP_SECRET_1__"
|
||||
LOG_DIR = "/app/data/logs"
|
||||
SAXO_TOKEN_FILE = "/app/data/.saxo_token.json"
|
||||
HF_HOME = "/app/data/hf-cache"
|
||||
}
|
||||
|
||||
template {
|
||||
data = <<EOF
|
||||
DATABASE_URL={{ key "mmd/DATABASE_URL" }}
|
||||
ANTHROPIC_API_KEY={{ key "mmd/anthropic_api_key" }}
|
||||
SAXO_APP_KEY={{ key "mmd/SAXO_APP_KEY" }}
|
||||
SAXO_APP_SECRET_1={{ key "mmd/SAXO_APP_SECRET_1" }}
|
||||
SAXO_APP_SECRET_2={{ key "mmd/SAXO_APP_SECRET_2" }}
|
||||
SAXO_BASE={{ key "mmd/SAXO_BASE" }}
|
||||
SAXO_AUTH_URL={{ key "mmd/SAXO_AUTH_URL" }}
|
||||
SAXO_TOKEN_URL={{ key "mmd/SAXO_TOKEN_URL" }}
|
||||
SAXO_REDIRECT={{ key "mmd/SAXO_REDIRECT" }}
|
||||
EOF
|
||||
destination = "secrets/app.env"
|
||||
env = true
|
||||
}
|
||||
|
||||
resources {
|
||||
|
||||
Reference in New Issue
Block a user