forked from Deuxfleurs/infrastructure
WIP object storage
This commit is contained in:
parent
541d42e460
commit
0c4419b6a4
1 changed files with 159 additions and 0 deletions
159
nomad/object_storage.hcl
Normal file
159
nomad/object_storage.hcl
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue