diff --git a/manifests/swh/deploy/journal.pp b/manifests/swh/deploy/journal.pp new file mode 100644 index 0000000..30a5d17 --- /dev/null +++ b/manifests/swh/deploy/journal.pp @@ -0,0 +1,17 @@ +# Base Journal configuration + +class profile::swh::deploy::journal { + $conf_directory = '/etc/softwareheritage/journal' + file {$config_dir: + ensure => 'directory', + owner => 'swhworker', + group => 'swhworker', + mode => '0644', + } + + $package_name = 'python3-swh.journal' + + package {$package_name: + ensure => latest, + } +} diff --git a/manifests/swh/deploy/journal_publisher.pp b/manifests/swh/deploy/journal_publisher.pp index adc53c0..ded7860 100644 --- a/manifests/swh/deploy/journal_publisher.pp +++ b/manifests/swh/deploy/journal_publisher.pp @@ -1,62 +1,57 @@ -# Deployment of the swh.storage.listener +# Deployment of the swh.journal.publisher class profile::swh::deploy::journal_publisher { - $conf_directory = hiera('swh::deploy::journal_publisher::conf_directory') + include ::profile::swh::deploy::journal + $conf_file = hiera('swh::deploy::journal_publisher::conf_file') $user = hiera('swh::deploy::journal_publisher::user') $group = hiera('swh::deploy::journal_publisher::group') $publisher_config = hiera('swh::deploy::journal_publisher::config') include ::systemd $service_name = 'swh-journal-publisher' $service_file = "/etc/systemd/system/${service_name}.service" - package_name = 'python3-swh.journal' - - package {$package_name: - ensure => latest, - notify => Service[$service_name], - } file {$conf_directory: ensure => directory, owner => 'root', group => $group, mode => '0750', } file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', require => File[$conf_directory], content => inline_template('<%= @publisher_config.to_yaml %>'), notify => Service[$service_name], } # Template uses variables # - $user # - $group # file {$service_file: ensure => present, owner => 'root', group => 'root', mode => '0644', - content => template('profile/swh/deploy/journal_publisher/swh-journal-publisher.service.erb'), + content => template('profile/swh/deploy/journal/swh-journal-publisher.service.erb'), require => Package[$package_name], notify => [ Exec['systemd-daemon-reload'], Service[$service_name], ], } service {$service_name: ensure => running, enable => false, require => File[$service_file], } } diff --git a/manifests/swh/deploy/journal_publisher.pp b/manifests/swh/deploy/journal_simple_checker_producer.pp similarity index 52% copy from manifests/swh/deploy/journal_publisher.pp copy to manifests/swh/deploy/journal_simple_checker_producer.pp index adc53c0..67e307e 100644 --- a/manifests/swh/deploy/journal_publisher.pp +++ b/manifests/swh/deploy/journal_simple_checker_producer.pp @@ -1,62 +1,57 @@ -# Deployment of the swh.storage.listener +# Deployment of the swh.journal.checker -class profile::swh::deploy::journal_publisher { - $conf_directory = hiera('swh::deploy::journal_publisher::conf_directory') - $conf_file = hiera('swh::deploy::journal_publisher::conf_file') - $user = hiera('swh::deploy::journal_publisher::user') - $group = hiera('swh::deploy::journal_publisher::group') +class profile::swh::deploy::journal_simple_checker_producer { + include ::profile::swh::deploy::journal - $publisher_config = hiera('swh::deploy::journal_publisher::config') + $conf_file = hiera('swh::deploy::journal_simple_checker_producer::conf_file') + $user = hiera('swh::deploy::journal_simple_checker_producer::user') + $group = hiera('swh::deploy::journal_simple_checker_producer::group') + + $checker_config = hiera( + 'swh::deploy::journal_simple_checker_producer::config') include ::systemd - $service_name = 'swh-journal-publisher' + $service_name = 'swh-journal-simple-checker-producer' $service_file = "/etc/systemd/system/${service_name}.service" - package_name = 'python3-swh.journal' - - package {$package_name: - ensure => latest, - notify => Service[$service_name], - } - file {$conf_directory: ensure => directory, owner => 'root', group => $group, mode => '0750', } file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', require => File[$conf_directory], - content => inline_template('<%= @publisher_config.to_yaml %>'), + content => inline_template('<%= @checker_config.to_yaml %>'), notify => Service[$service_name], } # Template uses variables # - $user # - $group # file {$service_file: ensure => present, owner => 'root', group => 'root', mode => '0644', - content => template('profile/swh/deploy/journal_publisher/swh-journal-publisher.service.erb'), + content => template('profile/swh/deploy/journal/swh-journal-simple-checker-producer.service.erb'), require => Package[$package_name], notify => [ Exec['systemd-daemon-reload'], Service[$service_name], ], } service {$service_name: ensure => running, enable => false, require => File[$service_file], } } diff --git a/templates/swh/deploy/journal_publisher/swh-journal-publisher.service.erb b/templates/swh/deploy/journal/swh-journal-publisher.service.erb similarity index 100% rename from templates/swh/deploy/journal_publisher/swh-journal-publisher.service.erb rename to templates/swh/deploy/journal/swh-journal-publisher.service.erb diff --git a/templates/swh/deploy/journal/swh-journal-simple-checker-producer.service.erb b/templates/swh/deploy/journal/swh-journal-simple-checker-producer.service.erb new file mode 100644 index 0000000..0a5212e --- /dev/null +++ b/templates/swh/deploy/journal/swh-journal-simple-checker-producer.service.erb @@ -0,0 +1,17 @@ +# Journal Checker unit file +# Managed by puppet class profile::swh::deploy::journal_simple_checker_producer +# Changes will be overwritten + +[Unit] +Description=Software Heritage Journal Checker +Requires=network.target kafka.service +After=network.target kafka.service + +[Service] +User=<%= @user %> +Group=<%= @group %> +Type=OneShot +ExecStart=/usr/bin/python3 -m swh.journal.checker + +[Install] +WantedBy=multi-user.target