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
|
||||
|
||||
network {
|
||||
port "seafile-frontend" { static = 8000 }
|
||||
port "seafile-seafhttp" { static = 8083 }
|
||||
port "seafile-dav" { static = 8084 }
|
||||
port "seafile-hack" { static = 8085 }
|
||||
port "seafile-frontend_port" { static = 8000 }
|
||||
port "seafile-seafhttp_port" { static = 8083 }
|
||||
port "seafile-dav_port" { static = 8084 }
|
||||
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" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "alpine/socat:1.0.5"
|
||||
network_mode = "host"
|
||||
ports = [ "seafile-hack_port" ]
|
||||
command = "tcp6-listen:8085,fork,reuseaddr"
|
||||
args = [ "tcp-connect:127.0.0.1:8083" ]
|
||||
}
|
||||
|
@ -37,13 +84,12 @@ job "seafile" {
|
|||
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefixStrip:/seafhttp"
|
||||
|
||||
]
|
||||
port = 8085
|
||||
address_mode = "driver"
|
||||
port = "seafile-hack_port"
|
||||
address_mode = "host"
|
||||
name = "seafhttp"
|
||||
check {
|
||||
type = "tcp"
|
||||
port = 8085
|
||||
address_mode = "driver"
|
||||
port = "seafile-hack_port"
|
||||
interval = "60s"
|
||||
timeout = "5s"
|
||||
check_restart {
|
||||
|
@ -61,6 +107,7 @@ job "seafile" {
|
|||
config {
|
||||
image = "superboum/amd64_seafile:v6"
|
||||
network_mode = "host"
|
||||
ports = [ "seafile-frontend_port", "seafile-dav_port", "seafile-seafhttp_port" ]
|
||||
|
||||
## cmd + args are used for running an instance attachable for update
|
||||
# command = "/bin/sleep"
|
||||
|
@ -91,13 +138,12 @@ job "seafile" {
|
|||
"traefik.frontend.entryPoints=https,http",
|
||||
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefix:/"
|
||||
]
|
||||
port = 8000
|
||||
address_mode = "driver"
|
||||
port = "seafile-frontend_port"
|
||||
address_mode = "host"
|
||||
name = "seahub"
|
||||
check {
|
||||
type = "tcp"
|
||||
port = 8000
|
||||
address_mode = "driver"
|
||||
port = "seafile-frontend_port"
|
||||
interval = "60s"
|
||||
timeout = "5s"
|
||||
check_restart {
|
||||
|
@ -116,13 +162,12 @@ job "seafile" {
|
|||
"traefik.frontend.rule=Host:cloud.deuxfleurs.fr;PathPrefix:/seafdav"
|
||||
|
||||
]
|
||||
port = 8084
|
||||
address_mode = "driver"
|
||||
port = "seafile-dav_port"
|
||||
address_mode = "host"
|
||||
name = "seafdav"
|
||||
check {
|
||||
type = "tcp"
|
||||
port = 8084
|
||||
address_mode = "driver"
|
||||
port = "seafile-dav_port"
|
||||
interval = "60s"
|
||||
timeout = "5s"
|
||||
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