forked from Deuxfleurs/infrastructure
Upgrade seafile + discard unused services
This commit is contained in:
parent
f75497af11
commit
8625a9af75
4 changed files with 61 additions and 295 deletions
|
@ -1,64 +0,0 @@
|
||||||
job "mariadb" {
|
|
||||||
datacenters = ["dc1"]
|
|
||||||
type = "service"
|
|
||||||
priority = 10
|
|
||||||
|
|
||||||
constraint {
|
|
||||||
attribute = "${attr.cpu.arch}"
|
|
||||||
value = "amd64"
|
|
||||||
}
|
|
||||||
|
|
||||||
group "main" {
|
|
||||||
count = 1
|
|
||||||
task "server" {
|
|
||||||
driver = "docker"
|
|
||||||
config {
|
|
||||||
image = "superboum/amd64_mariadb:v4"
|
|
||||||
network_mode = "host"
|
|
||||||
command = "tail"
|
|
||||||
args = [
|
|
||||||
"-f", "/var/log/mysql/error.log",
|
|
||||||
]
|
|
||||||
volumes = [
|
|
||||||
"/mnt/glusterfs/mariadb/main/server:/var/lib/mysql",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
artifact {
|
|
||||||
source = "http://127.0.0.1:8500/v1/kv/configuration/mariadb/main/env.tpl?raw"
|
|
||||||
destination = "secrets/env.tpl"
|
|
||||||
mode = "file"
|
|
||||||
}
|
|
||||||
template {
|
|
||||||
source = "secrets/env.tpl"
|
|
||||||
destination = "secrets/env"
|
|
||||||
env = true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
resources {
|
|
||||||
memory = 800
|
|
||||||
}
|
|
||||||
|
|
||||||
service {
|
|
||||||
tags = ["mariadb"]
|
|
||||||
port = 3306
|
|
||||||
address_mode = "driver"
|
|
||||||
name = "mariadb"
|
|
||||||
check {
|
|
||||||
type = "tcp"
|
|
||||||
port = 3306
|
|
||||||
address_mode = "driver"
|
|
||||||
interval = "60s"
|
|
||||||
timeout = "5s"
|
|
||||||
check_restart {
|
|
||||||
limit = 3
|
|
||||||
grace = "90s"
|
|
||||||
ignore_warnings = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,159 +0,0 @@
|
||||||
job "not_safe_object_storage" {
|
|
||||||
datacenters = ["dc1"]
|
|
||||||
type = "service"
|
|
||||||
|
|
||||||
constraint {
|
|
||||||
attribute = "${attr.cpu.arch}"
|
|
||||||
value = "amd64"
|
|
||||||
}
|
|
||||||
|
|
||||||
group "not_safe_pithos" {
|
|
||||||
count = 2
|
|
||||||
task "not_safe_server" {
|
|
||||||
driver = "docker"
|
|
||||||
config {
|
|
||||||
image = "superboum/amd64_pithos:v1"
|
|
||||||
readonly_rootfs = true
|
|
||||||
port_map {
|
|
||||||
s3_port = 8080
|
|
||||||
}
|
|
||||||
volumes = [
|
|
||||||
"secrets/pithos.yaml:/etc/pithos/pithos.yaml"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
|
||||||
memory = 500
|
|
||||||
network {
|
|
||||||
port "s3_port" {
|
|
||||||
static = "8080"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template {
|
|
||||||
data = <<EOH
|
|
||||||
service:
|
|
||||||
host: '0.0.0.0'
|
|
||||||
port: 8080
|
|
||||||
|
|
||||||
|
|
||||||
## logging configuration
|
|
||||||
## ---------------------
|
|
||||||
logging:
|
|
||||||
level: info
|
|
||||||
console: true
|
|
||||||
files: []
|
|
||||||
|
|
||||||
# overrides:
|
|
||||||
# io.exo.pithos: debug
|
|
||||||
|
|
||||||
|
|
||||||
## global options
|
|
||||||
## --------------
|
|
||||||
options:
|
|
||||||
service-uri: 's3.esir.deuxfleurs.fr'
|
|
||||||
reporting: true
|
|
||||||
server-side-encryption: true
|
|
||||||
multipart-upload: true
|
|
||||||
masterkey-provisioning: true
|
|
||||||
masterkey-access: true
|
|
||||||
default-region: 'FR-RN1'
|
|
||||||
|
|
||||||
|
|
||||||
## keystore configuration
|
|
||||||
## ----------------------
|
|
||||||
#
|
|
||||||
# Keystores associate an access key with
|
|
||||||
# an organization and secret key.
|
|
||||||
#
|
|
||||||
# They may offer provisioning capacities with the
|
|
||||||
# masterkey. The default provider relies on keys
|
|
||||||
# being defined inline.
|
|
||||||
# generate access key: openssl rand -base64 24
|
|
||||||
# generate secret key: openssl rand -base64 39
|
|
||||||
# (size is arbitrary)
|
|
||||||
keystore:
|
|
||||||
keys:
|
|
||||||
NHu3glGc0lj5FL5AZPTvgjB20tb9w4Eo:
|
|
||||||
master: true
|
|
||||||
tenant: 'pyr@spootnik.org'
|
|
||||||
secret: 'fpyehmZsimMHeYScjwTUREzvIOICeRZiO01Dck0JIKEifKdwOT3T'
|
|
||||||
rXNoqKXY45RcxpBOKy8i4H8fqGzlHIZu:
|
|
||||||
tenant: 'exoscale'
|
|
||||||
secret: 'qtQlWujN70Ukh9IvIbqIM3Zqos/5aU72hOhLCXblQ0PmfYsGO8lU'
|
|
||||||
|
|
||||||
|
|
||||||
## bucketstore configuration
|
|
||||||
## -------------------------
|
|
||||||
#
|
|
||||||
# The bucketstore is ring global and contains information
|
|
||||||
# on bucket location and global parameters.
|
|
||||||
#
|
|
||||||
# Its primary aim is to hold bucket location and ownership
|
|
||||||
# information.
|
|
||||||
#
|
|
||||||
# The default provider relies on cassandra.
|
|
||||||
bucketstore:
|
|
||||||
default-region: 'FR-RN1'
|
|
||||||
cluster:
|
|
||||||
- 148.60.11.181
|
|
||||||
- 148.60.11.183
|
|
||||||
- 148.60.11.237
|
|
||||||
keyspace: 'storage'
|
|
||||||
|
|
||||||
|
|
||||||
## regions
|
|
||||||
## -------
|
|
||||||
#
|
|
||||||
# Regions are composed of a metastore and an arbitrary number
|
|
||||||
# of named storage classes which depend on a blobstore.
|
|
||||||
#
|
|
||||||
# The metastore holds metadata for the full region, as well as
|
|
||||||
# object storage-class placement information.
|
|
||||||
#
|
|
||||||
# The default implementation of both metastore and blobstore
|
|
||||||
# rely on cassandra.
|
|
||||||
#
|
|
||||||
regions:
|
|
||||||
FR-RN1:
|
|
||||||
metastore:
|
|
||||||
cluster:
|
|
||||||
- 148.60.11.181
|
|
||||||
- 148.60.11.183
|
|
||||||
- 148.60.11.237
|
|
||||||
keyspace: 'storage'
|
|
||||||
storage-classes:
|
|
||||||
standard:
|
|
||||||
cluster:
|
|
||||||
- 148.60.11.181
|
|
||||||
- 148.60.11.183
|
|
||||||
- 148.60.11.237
|
|
||||||
keyspace: 'storage'
|
|
||||||
max-chunk: '128k'
|
|
||||||
max-block-chunks: 1024
|
|
||||||
EOH
|
|
||||||
destination = "secrets/pithos.yaml"
|
|
||||||
}
|
|
||||||
|
|
||||||
service {
|
|
||||||
tags = ["pithos"]
|
|
||||||
port = "s3_port"
|
|
||||||
address_mode = "host"
|
|
||||||
name = "pithos"
|
|
||||||
check {
|
|
||||||
type = "tcp"
|
|
||||||
port = "s3_port"
|
|
||||||
interval = "60s"
|
|
||||||
timeout = "5s"
|
|
||||||
check_restart {
|
|
||||||
limit = 3
|
|
||||||
grace = "300s"
|
|
||||||
ignore_warnings = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -12,17 +12,64 @@ job "seafile" {
|
||||||
count = 1
|
count = 1
|
||||||
|
|
||||||
network {
|
network {
|
||||||
port "seafile-frontend" { static = 8000 }
|
port "seafile-frontend_port" { static = 8000 }
|
||||||
port "seafile-seafhttp" { static = 8083 }
|
port "seafile-seafhttp_port" { static = 8083 }
|
||||||
port "seafile-dav" { static = 8084 }
|
port "seafile-dav_port" { static = 8084 }
|
||||||
port "seafile-hack" { static = 8085 }
|
port "seafile-hack_port" { static = 8085 }
|
||||||
|
port "mariadb_port" { static = 3306 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task "mariadb" {
|
||||||
|
driver = "docker"
|
||||||
|
config {
|
||||||
|
image = "superboum/amd64_mariadb:v4"
|
||||||
|
network_mode = "host"
|
||||||
|
command = "tail"
|
||||||
|
ports = [ "mariadb_port" ]
|
||||||
|
args = [
|
||||||
|
"-f", "/var/log/mysql/error.log",
|
||||||
|
]
|
||||||
|
volumes = [
|
||||||
|
"/mnt/glusterfs/mariadb/main/server:/var/lib/mysql",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
template {
|
||||||
|
data = file("../config/configuration/mariadb/main/env.tpl")
|
||||||
|
destination = "secrets/env"
|
||||||
|
env = true
|
||||||
|
}
|
||||||
|
|
||||||
|
resources {
|
||||||
|
memory = 800
|
||||||
|
}
|
||||||
|
|
||||||
|
service {
|
||||||
|
tags = ["mariadb"]
|
||||||
|
port = "mariadb_port"
|
||||||
|
address_mode = "host"
|
||||||
|
name = "mariadb"
|
||||||
|
check {
|
||||||
|
type = "tcp"
|
||||||
|
port = "mariadb_port"
|
||||||
|
interval = "60s"
|
||||||
|
timeout = "5s"
|
||||||
|
check_restart {
|
||||||
|
limit = 3
|
||||||
|
grace = "90s"
|
||||||
|
ignore_warnings = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
task "hack" {
|
task "hack" {
|
||||||
driver = "docker"
|
driver = "docker"
|
||||||
config {
|
config {
|
||||||
image = "alpine/socat:1.0.5"
|
image = "alpine/socat:1.0.5"
|
||||||
network_mode = "host"
|
network_mode = "host"
|
||||||
|
ports = [ "seafile-hack_port" ]
|
||||||
command = "tcp6-listen:8085,fork,reuseaddr"
|
command = "tcp6-listen:8085,fork,reuseaddr"
|
||||||
args = [ "tcp-connect:127.0.0.1:8083" ]
|
args = [ "tcp-connect:127.0.0.1:8083" ]
|
||||||
}
|
}
|
||||||
|
@ -37,13 +84,12 @@ job "seafile" {
|
||||||
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefixStrip:/seafhttp"
|
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefixStrip:/seafhttp"
|
||||||
|
|
||||||
]
|
]
|
||||||
port = 8085
|
port = "seafile-hack_port"
|
||||||
address_mode = "driver"
|
address_mode = "host"
|
||||||
name = "seafhttp"
|
name = "seafhttp"
|
||||||
check {
|
check {
|
||||||
type = "tcp"
|
type = "tcp"
|
||||||
port = 8085
|
port = "seafile-hack_port"
|
||||||
address_mode = "driver"
|
|
||||||
interval = "60s"
|
interval = "60s"
|
||||||
timeout = "5s"
|
timeout = "5s"
|
||||||
check_restart {
|
check_restart {
|
||||||
|
@ -61,6 +107,7 @@ job "seafile" {
|
||||||
config {
|
config {
|
||||||
image = "superboum/amd64_seafile:v6"
|
image = "superboum/amd64_seafile:v6"
|
||||||
network_mode = "host"
|
network_mode = "host"
|
||||||
|
ports = [ "seafile-frontend_port", "seafile-dav_port", "seafile-seafhttp_port" ]
|
||||||
|
|
||||||
## cmd + args are used for running an instance attachable for update
|
## cmd + args are used for running an instance attachable for update
|
||||||
# command = "/bin/sleep"
|
# command = "/bin/sleep"
|
||||||
|
@ -91,13 +138,12 @@ job "seafile" {
|
||||||
"traefik.frontend.entryPoints=https,http",
|
"traefik.frontend.entryPoints=https,http",
|
||||||
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefix:/"
|
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefix:/"
|
||||||
]
|
]
|
||||||
port = 8000
|
port = "seafile-frontend_port"
|
||||||
address_mode = "driver"
|
address_mode = "host"
|
||||||
name = "seahub"
|
name = "seahub"
|
||||||
check {
|
check {
|
||||||
type = "tcp"
|
type = "tcp"
|
||||||
port = 8000
|
port = "seafile-frontend_port"
|
||||||
address_mode = "driver"
|
|
||||||
interval = "60s"
|
interval = "60s"
|
||||||
timeout = "5s"
|
timeout = "5s"
|
||||||
check_restart {
|
check_restart {
|
||||||
|
@ -116,13 +162,12 @@ job "seafile" {
|
||||||
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefix:/seafdav"
|
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefix:/seafdav"
|
||||||
|
|
||||||
]
|
]
|
||||||
port = 8084
|
port = "seafile-dav_port"
|
||||||
address_mode = "driver"
|
address_mode = "host"
|
||||||
name = "seafdav"
|
name = "seafdav"
|
||||||
check {
|
check {
|
||||||
type = "tcp"
|
type = "tcp"
|
||||||
port = 8084
|
port = "seafile-dav_port"
|
||||||
address_mode = "driver"
|
|
||||||
interval = "60s"
|
interval = "60s"
|
||||||
timeout = "5s"
|
timeout = "5s"
|
||||||
check_restart {
|
check_restart {
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
job "webcap" {
|
|
||||||
datacenters = ["dc1"]
|
|
||||||
type = "service"
|
|
||||||
|
|
||||||
constraint {
|
|
||||||
attribute = "${attr.cpu.arch}"
|
|
||||||
value = "amd64"
|
|
||||||
}
|
|
||||||
|
|
||||||
group "main" {
|
|
||||||
task "flask" {
|
|
||||||
driver = "docker"
|
|
||||||
config {
|
|
||||||
image = "superboum/amd64_webcap:v7"
|
|
||||||
port_map {
|
|
||||||
web_port = 3000
|
|
||||||
}
|
|
||||||
}
|
|
||||||
env {
|
|
||||||
FLASK_APP = "/usr/local/bin/webcap"
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
|
||||||
cpu = 1000
|
|
||||||
memory = 2000
|
|
||||||
network {
|
|
||||||
port "web_port" {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
service {
|
|
||||||
tags = [
|
|
||||||
"webcap",
|
|
||||||
"traefik.enable=true",
|
|
||||||
"traefik.frontend.entryPoints=https,http",
|
|
||||||
"traefik.frontend.rule=Host:webcap.deuxfleurs.fr;PathPrefix:/"
|
|
||||||
]
|
|
||||||
port = "web_port"
|
|
||||||
address_mode = "host"
|
|
||||||
name = "webcap"
|
|
||||||
check {
|
|
||||||
type = "tcp"
|
|
||||||
port = "web_port"
|
|
||||||
interval = "60s"
|
|
||||||
timeout = "5s"
|
|
||||||
check_restart {
|
|
||||||
limit = 3
|
|
||||||
grace = "90s"
|
|
||||||
ignore_warnings = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue