Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
58 lines
1.9 KiB
Puppet
58 lines
1.9 KiB
Puppet
class zulip::tornado_sharding {
|
|
include zulip::nginx
|
|
|
|
# The file entries below serve only to initialize the sharding config files
|
|
# with the correct default content for the "only one shard" setup. For this
|
|
# reason they use "replace => false", because the files are managed by
|
|
# the sharding script afterwards and Puppet shouldn't overwrite them.
|
|
file { '/etc/zulip/nginx_sharding_map.conf':
|
|
ensure => file,
|
|
owner => 'zulip',
|
|
group => 'zulip',
|
|
mode => '0644',
|
|
notify => Service['nginx'],
|
|
content => @(EOT),
|
|
map "" $tornado_server {
|
|
default http://tornado;
|
|
}
|
|
| EOT
|
|
replace => false,
|
|
}
|
|
file { '/etc/zulip/nginx_sharding.conf':
|
|
ensure => absent,
|
|
}
|
|
file { '/etc/zulip/sharding.json':
|
|
ensure => file,
|
|
require => User['zulip'],
|
|
owner => 'zulip',
|
|
group => 'zulip',
|
|
mode => '0644',
|
|
content => "{}\n",
|
|
replace => false,
|
|
}
|
|
|
|
# This creates .tmp files which scripts/refresh-sharding-and-restart
|
|
# moves into place
|
|
exec { 'stage_updated_sharding':
|
|
command => "${facts['zulip_scripts_path']}/lib/sharding.py",
|
|
onlyif => "${facts['zulip_scripts_path']}/lib/sharding.py --errors-ok",
|
|
require => [File['/etc/zulip/nginx_sharding_map.conf'], File['/etc/zulip/sharding.json']],
|
|
logoutput => true,
|
|
loglevel => warning,
|
|
}
|
|
|
|
# The ports of Tornado processes to run on the server, computed from
|
|
# the zulip.conf configuration. Default is just port 9800.
|
|
$tornado_groups = zulipconf_keys('tornado_sharding').map |$key| { $key.regsubst(/_regex$/, '').split('_') }.unique
|
|
$tornado_ports = $tornado_groups.flatten.unique
|
|
|
|
file { '/etc/nginx/zulip-include/tornado-upstreams':
|
|
require => [Package[$zulip::common::nginx], Exec['stage_updated_sharding']],
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0644',
|
|
content => template('zulip/nginx/tornado-upstreams.conf.template.erb'),
|
|
notify => Service['nginx'],
|
|
}
|
|
}
|