Changeset View
Changeset View
Standalone View
Standalone View
site-modules/profile/manifests/swh/deploy/indexer_journal_client.pp
# Deployment of the swh.indexer.journal_client | # Deployment of the swh.indexer.journal_client | ||||
define profile::swh::deploy::indexer_journal_client ( | define profile::swh::deploy::indexer_journal_client ( | ||||
$ensure = present, | $ensure = present, | ||||
$instance_name = $title, | $instance_name = $title, | ||||
$sentry_name = $title, | $sentry_name = $title, | ||||
) | ) | ||||
{ | { | ||||
include ::profile::swh::deploy::base_indexer | include ::profile::swh::deploy::base_indexer | ||||
include ::profile::swh::deploy::journal | include ::profile::swh::deploy::journal | ||||
$config_file = lookup("swh::deploy::indexer_journal_client::${instance_name}::config_file") | $config_file = lookup("swh::deploy::indexer_journal_client::${instance_name}::config_file") | ||||
$config_directory = $::profile::swh::deploy::base_indexer::config_directory | $config_directory = $::profile::swh::deploy::base_indexer::config_directory | ||||
$config_path = "${config_directory}/${config_file}" | $config_path = "${config_directory}/${config_file}" | ||||
$service_basename = $::profile::swh::deploy::base_indexer::service_basename | $service_basename = $::profile::swh::deploy::base_indexer::service_basename | ||||
$service_name = "${service_basename}@${instance_name}.service" | |||||
$parameters_conf_path = "${service_name}/parameters.conf" | |||||
case $ensure { | case $ensure { | ||||
'present', 'running': { | 'present', 'running': { | ||||
$config = lookup("swh::deploy::indexer_journal_client::${instance_name}::config") | $config = lookup("swh::deploy::indexer_journal_client::${instance_name}::config") | ||||
$loglevel = lookup("swh::deploy::indexer_journal_client::${instance_name}::loglevel") | $loglevel = lookup("swh::deploy::indexer_journal_client::${instance_name}::loglevel") | ||||
$sentry_dsn = lookup("swh::deploy::indexer::sentry_dsn", Optional[String], "first", undef) | $sentry_dsn = lookup("swh::deploy::indexer::sentry_dsn", Optional[String], "first", undef) | ||||
$sentry_environment = lookup("swh::deploy::indexer::sentry_environment", Optional[String], "first", undef) | $sentry_environment = lookup("swh::deploy::indexer::sentry_environment", Optional[String], "first", undef) | ||||
$sentry_swh_package = lookup("swh::deploy::indexer::sentry_swh_package", Optional[String], "first", undef) | $sentry_swh_package = lookup("swh::deploy::indexer::sentry_swh_package", Optional[String], "first", undef) | ||||
file {$config_path: | file {$config_path: | ||||
ensure => present, | ensure => present, | ||||
owner => "root", | owner => "root", | ||||
group => $::profile::swh::deploy::base_indexer::group, | group => $::profile::swh::deploy::base_indexer::group, | ||||
mode => "0640", | mode => "0640", | ||||
content => inline_template("<%= @config.to_yaml %>\n"), | content => inline_yaml($config), | ||||
notify => Service[$service_name], | notify => Service[$service_name], | ||||
require => File[$config_directory], | require => File[$config_directory], | ||||
} | } | ||||
$nb_instances = lookup("swh::deploy::indexer_journal_client::${instance_name}::nb_instances", { | |||||
default_value => 1, | |||||
value_type => Integer | |||||
}) | |||||
Integer[1, $nb_instances].each | $instance_id | { | |||||
$service_name = "${service_basename}@${instance_name}_${instance_id}.service" | |||||
$parameters_conf_path = "${service_name}/parameters.conf" | |||||
# Template uses variables | # Template uses variables | ||||
# - $config_path | # - $config_path | ||||
# - $sentry_dsn | # - $sentry_dsn | ||||
# - $sentry_environment | # - $sentry_environment | ||||
# - $sentry_swh_package | # - $sentry_swh_package | ||||
# - $loglevel | # - $loglevel | ||||
::systemd::dropin_file {$parameters_conf_path: | ::systemd::dropin_file {$parameters_conf_path: | ||||
ensure => present, | ensure => present, | ||||
unit => $service_name, | unit => $service_name, | ||||
filename => 'parameters.conf', | filename => 'parameters.conf', | ||||
content => template('profile/swh/deploy/journal/parameters.conf.erb'), | content => template('profile/swh/deploy/journal/parameters.conf.erb'), | ||||
} | } | ||||
service {$service_name: | service {$service_name: | ||||
ensure => running, | ensure => running, | ||||
enable => true, | enable => true, | ||||
require => [ | require => [ | ||||
File[$config_path], | File[$config_path], | ||||
], | ], | ||||
} | } | ||||
} | } | ||||
# clean up old service names | |||||
$service_name = "${service_basename}@${instance_name}.service" | |||||
$parameters_conf_path = "${service_name}/parameters.conf" | |||||
service {$service_name: | |||||
ensure => stopped, | |||||
} | |||||
::systemd::dropin_file {$parameters_conf_path: | |||||
ensure => absent, | |||||
unit => $service_name, | |||||
filename => 'parameters.conf', | |||||
} | |||||
} | |||||
# Otherwise, clean up everything | # Otherwise, clean up everything | ||||
default: { | default: { | ||||
$nb_instances = lookup("swh::deploy::indexer_journal_client::${instance_name}::nb_instances", { | |||||
default_value => 1, | |||||
value_type => Integer | |||||
}) | |||||
Integer[1, $nb_instances].each | $instance_id | { | |||||
$service_name = "${service_basename}@${instance_name}_${instance_id}.service" | |||||
$parameters_conf_path = "${service_name}/parameters.conf" | |||||
::systemd::dropin_file {$parameters_conf_path: | ::systemd::dropin_file {$parameters_conf_path: | ||||
ensure => absent, | ensure => absent, | ||||
unit => $service_name, | unit => $service_name, | ||||
filename => 'parameters.conf', | filename => 'parameters.conf', | ||||
} | } | ||||
service {$service_basename: | service {$service_basename: | ||||
ensure => stopped, | ensure => stopped, | ||||
} | } | ||||
file {$config_path: | file {$config_path: | ||||
ensure => absent, | ensure => absent, | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} |