Differential D8181 Diff 29539 site-modules/profile/manifests/swh/deploy/scrubber/checker/postgres.pp
Changeset View
Changeset View
Standalone View
Standalone View
site-modules/profile/manifests/swh/deploy/scrubber/checker/postgres.pp
# Deployment of the swh.scrubber's checker postgres service | # Deployment of the swh.scrubber's checker postgres service | |||||||||||||||||||||||||||||
class profile::swh::deploy::scrubber::checker::postgres { | class profile::swh::deploy::scrubber::checker::postgres { | |||||||||||||||||||||||||||||
$sentry_dsn = lookup("swh::deploy::scrubber::sentry_dsn") | $sentry_dsn = lookup("swh::deploy::scrubber::sentry_dsn") | |||||||||||||||||||||||||||||
$sentry_environment = lookup("swh::deploy::scrubber::sentry_environment") | $sentry_environment = lookup("swh::deploy::scrubber::sentry_environment") | |||||||||||||||||||||||||||||
$sentry_swh_package = lookup("swh::deploy::scrubber::sentry_swh_package") | $sentry_swh_package = lookup("swh::deploy::scrubber::sentry_swh_package") | |||||||||||||||||||||||||||||
$config_dir = lookup('swh::deploy::scrubber::checker::postgres::conf_directory') | $config_dir = lookup('swh::deploy::scrubber::checker::postgres::conf_directory') | |||||||||||||||||||||||||||||
$config_file = lookup('swh::deploy::scrubber::checker::postgres::conf_file') | ||||||||||||||||||||||||||||||
$config_dict = lookup('swh::deploy::scrubber::checker::postgres::config') | ||||||||||||||||||||||||||||||
$user = lookup('swh::deploy::scrubber::checker::postgres::user') | $user = lookup('swh::deploy::scrubber::checker::postgres::user') | |||||||||||||||||||||||||||||
$group = lookup('swh::deploy::scrubber::checker::postgres::group') | $group = lookup('swh::deploy::scrubber::checker::postgres::group') | |||||||||||||||||||||||||||||
$object_types = lookup('swh::deploy::scrubber::checker::postgres::object_types') | $object_types = lookup('swh::deploy::scrubber::checker::postgres::object_types') | |||||||||||||||||||||||||||||
$ranges = lookup('swh::deploy::scrubber::checker::postgres::ranges') | $ranges = lookup('swh::deploy::scrubber::checker::postgres::ranges') | |||||||||||||||||||||||||||||
$packages = ['python3-swh.scrubber'] | $packages = ['python3-swh.scrubber'] | |||||||||||||||||||||||||||||
ensure_packages($packages) | ensure_packages($packages) | |||||||||||||||||||||||||||||
file {$config_dir: | file {$config_dir: | |||||||||||||||||||||||||||||
ensure => 'directory', | ensure => 'directory', | |||||||||||||||||||||||||||||
owner => $user, | owner => $user, | |||||||||||||||||||||||||||||
group => $group, | group => $group, | |||||||||||||||||||||||||||||
} | purge => true, | |||||||||||||||||||||||||||||
olasd: Probably deserves a `purge => true` (and other relevant arguments) to clean up old config files. | ||||||||||||||||||||||||||||||
force => true, | ||||||||||||||||||||||||||||||
file {$config_file: | recurse => true, | |||||||||||||||||||||||||||||
ensure => present, | ||||||||||||||||||||||||||||||
owner => $user, | ||||||||||||||||||||||||||||||
group => $group, | ||||||||||||||||||||||||||||||
mode => '0640', | ||||||||||||||||||||||||||||||
content => inline_template("<%= @config_dict.to_yaml %>\n"), | ||||||||||||||||||||||||||||||
require => File[$config_dir] | ||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
$systemd_slice_name = "swh-scrubber.slice" | $systemd_slice_name = "swh-scrubber.slice" | |||||||||||||||||||||||||||||
::systemd::unit_file {$systemd_slice_name: | ::systemd::unit_file {$systemd_slice_name: | |||||||||||||||||||||||||||||
ensure => 'present', | ensure => 'present', | |||||||||||||||||||||||||||||
source => "puppet:///modules/profile/swh/deploy/scrubber/${systemd_slice_name}", | source => "puppet:///modules/profile/swh/deploy/scrubber/${systemd_slice_name}", | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
$template_name = 'swh-scrubber-checker-postgres' | $template_name = 'swh-scrubber-checker-postgres' | |||||||||||||||||||||||||||||
$template_unit_name = "${template_name}@.service" | $template_unit_name = "${template_name}@.service" | |||||||||||||||||||||||||||||
# Template uses: | # Template uses: | |||||||||||||||||||||||||||||
# - $user | # - $user | |||||||||||||||||||||||||||||
# - $group | # - $group | |||||||||||||||||||||||||||||
# - $sentry_dsn | # - $sentry_dsn | |||||||||||||||||||||||||||||
# - $sentry_environment | # - $sentry_environment | |||||||||||||||||||||||||||||
# - $sentry_swh_package | # - $sentry_swh_package | |||||||||||||||||||||||||||||
# - $config_file | ||||||||||||||||||||||||||||||
::systemd::unit_file {$template_unit_name: | ::systemd::unit_file {$template_unit_name: | |||||||||||||||||||||||||||||
ensure => present, | ensure => present, | |||||||||||||||||||||||||||||
content => template("profile/swh/deploy/scrubber/${template_unit_name}.erb"), | content => template("profile/swh/deploy/scrubber/${template_unit_name}.erb"), | |||||||||||||||||||||||||||||
enable => false, | enable => false, | |||||||||||||||||||||||||||||
require => [ | require => [ | |||||||||||||||||||||||||||||
File[$config_file], | File[$config_file], | |||||||||||||||||||||||||||||
::Systemd::Unit_file[$systemd_slice_name], | ::Systemd::Unit_file[$systemd_slice_name], | |||||||||||||||||||||||||||||
Package[$packages], | Package[$packages], | |||||||||||||||||||||||||||||
] | ] | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
$config_per_dbs_to_scrub = lookup('swh::deploy::scrubber::checker::postgres::config_per_db') | ||||||||||||||||||||||||||||||
# As many services as there are dbs to scrub | ||||||||||||||||||||||||||||||
$config_per_dbs_to_scrub.each | $db_name, $cfg | { | ||||||||||||||||||||||||||||||
$config_file = "${config_dir}/${db_name}.yaml" | ||||||||||||||||||||||||||||||
$config_dict = $cfg['config'] | ||||||||||||||||||||||||||||||
file {$config_file: | ||||||||||||||||||||||||||||||
ensure => present, | ||||||||||||||||||||||||||||||
owner => $user, | ||||||||||||||||||||||||||||||
group => $group, | ||||||||||||||||||||||||||||||
mode => '0640', | ||||||||||||||||||||||||||||||
content => inline_yaml($config_dict), | ||||||||||||||||||||||||||||||
require => File[$config_dir] | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
$object_types.each | $object_type | { | $object_types.each | $object_type | { | |||||||||||||||||||||||||||||
$ranges.each | $range_index, $range | { | $ranges.each | $range_index, $range | { | |||||||||||||||||||||||||||||
$ranges_list = $range.split(':') | $ranges_list = $range.split(':') | |||||||||||||||||||||||||||||
$start_object = $ranges_list[0] | $start_object = $ranges_list[0] | |||||||||||||||||||||||||||||
$end_object = $ranges_list[1] | $end_object = $ranges_list[1] | |||||||||||||||||||||||||||||
$service_name = "${template_name}@${object_type}-${range_index}.service" | $service_name = "${template_name}@${db_name}-${object_type}-${range_index}.service" | |||||||||||||||||||||||||||||
$parameters_conf_name = "${service_name}.d/parameters.conf" | $parameters_conf_name = "${service_name}.d/parameters.conf" | |||||||||||||||||||||||||||||
# Template uses: | # Template uses: | |||||||||||||||||||||||||||||
# - $object_type | # - $object_type | |||||||||||||||||||||||||||||
# - $start_object | # - $start_object | |||||||||||||||||||||||||||||
# - $end_object | # - $end_object | |||||||||||||||||||||||||||||
# - $config_file | ||||||||||||||||||||||||||||||
::systemd::dropin_file {$parameters_conf_name: | ::systemd::dropin_file {$parameters_conf_name: | |||||||||||||||||||||||||||||
ensure => present, | ensure => present, | |||||||||||||||||||||||||||||
unit => $service_name, | unit => $service_name, | |||||||||||||||||||||||||||||
filename => 'parameters.conf', | filename => 'parameters.conf', | |||||||||||||||||||||||||||||
content => template("profile/swh/deploy/scrubber/parameters.conf.erb"), | content => template("profile/swh/deploy/scrubber/parameters.conf.erb"), | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
service {$service_name: | service {$service_name: | |||||||||||||||||||||||||||||
ensure => running, | ensure => running, | |||||||||||||||||||||||||||||
olasdUnsubmitted Not Done Inline ActionsPlease do enable the service so it gets started on boot (instead of through the first puppet run) olasd: Please do enable the service so it gets started on boot (instead of through the first puppet… | ||||||||||||||||||||||||||||||
ardumontAuthorUnsubmitted Done Inline Actionsack ardumont: ack | ||||||||||||||||||||||||||||||
enable => false, | ||||||||||||||||||||||||||||||
require => [ | require => [ | |||||||||||||||||||||||||||||
::Systemd::Unit_file[$template_unit_name], | ::Systemd::Unit_file[$template_unit_name], | |||||||||||||||||||||||||||||
::Systemd::Dropin_File[$parameters_conf_name], | ::Systemd::Dropin_File[$parameters_conf_name], | |||||||||||||||||||||||||||||
], | ], | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||
# clean up old resources | ||||||||||||||||||||||||||||||
$object_types.each | $object_type | { | ||||||||||||||||||||||||||||||
$ranges.each | $range_index, $range | { | ||||||||||||||||||||||||||||||
$old_svc_name = "${template_name}@${object_type}-${range_index}.service" | ||||||||||||||||||||||||||||||
$old_params_confname = "${old_svc_name}.d/parameters.conf" | ||||||||||||||||||||||||||||||
::systemd::dropin_file {$old_params_confname: | ||||||||||||||||||||||||||||||
ensure => absent, | ||||||||||||||||||||||||||||||
unit => $old_svc_name, | ||||||||||||||||||||||||||||||
filename => 'parameters.conf', | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Done Inline Actions
olasd: | ||||||||||||||||||||||||||||||
service {$old_svc_name: | ||||||||||||||||||||||||||||||
ensure => stopped, | ||||||||||||||||||||||||||||||
enable => false, | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Done Inline ActionsSeems like a typo? olasd: Seems like a typo? | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Done Inline Actions
Maybe add cleanup of old resources? olasd: Maybe add cleanup of old resources? | ||||||||||||||||||||||||||||||
Done Inline Actionscarrement, that will avoid to do the manual clean up myself ;) ardumont: carrement, that will avoid to do the manual clean up myself ;) | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Done Inline Actionsuse inline_yaml($config_dict) to get the "managed by puppet" header olasd: use `inline_yaml($config_dict)` to get the "managed by puppet" header |
Probably deserves a purge => true (and other relevant arguments) to clean up old config files.