Skip to content

Instantly share code, notes, and snippets.

@nekufa
Last active October 21, 2021 14:57
Show Gist options
  • Save nekufa/b940db1102f2d0789c81e3d7b169e14b to your computer and use it in GitHub Desktop.
Save nekufa/b940db1102f2d0789c81e3d7b169e14b to your computer and use it in GitHub Desktop.
#!/usr/bin/env tarantool
require('strict').on()
if package.setsearchroot ~= nil then
package.setsearchroot()
end
-- configure cartridge
local cartridge = require('cartridge')
local roles = {
'cartridge.roles.crud-router',
'cartridge.roles.crud-storage',
'cartridge.roles.metrics',
'cartridge.roles.vshard-router',
'cartridge.roles.vshard-storage',
'migrator',
}
if os.getenv('CARTRIDGE_MODE') == 'single' then
local ok, err = cartridge.cfg({
advertise_uri = 'localhost:3301',
roles = roles,
cluster_cookie = os.getenv('CLUSTER_COOKIE')
})
assert(ok, tostring(err))
cartridge.admin_edit_topology({
replicasets = {
{
alias = 'replicaset',
roles = require('cartridge.roles').get_all_roles(),
join_servers = {
{ uri = 'localhost:3301' }
}
}
}
})
cartridge.admin_bootstrap_vshard()
else
local ok, err = cartridge.cfg({
roles = roles,
})
assert(ok, tostring(err))
end
local migrator = require('migrator')
local config_loader = require('migrator.config-loader').new()
migrator.set_loader(config_loader)
local metrics = require('cartridge.roles.metrics')
metrics.set_export({
{
path = '/metrics',
format = 'prometheus'
},
{
path = '/health',
format = 'health'
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment