diff --git a/data/defaults.yaml b/data/defaults.yaml --- a/data/defaults.yaml +++ b/data/defaults.yaml @@ -1973,6 +1973,15 @@ - banco max_queue_length: "%{hiera('swh::deploy::worker::swh_storage_archiver::max_queue_length')}" +swh::deploy::indexer_journal_client::config_file: "indexer/journal_client.yml" +swh::deploy::indexer_journal_client::user: swhstorage +swh::deploy::indexer_journal_client::group: swhstorage +swh::deploy::indexer_journal_client::config: + brokers: + - getty.internal.softwareheritage.org + consumer_id: swh.indexer.journal_client + scheduler: "%{alias('swh::remote_service::scheduler::config::saatchi')}" + swh::deploy::worker::swh_indexer::base::concurrency: 2 swh::deploy::worker::swh_indexer::base::loglevel: info # Contains a password: in private data diff --git a/site-modules/profile/manifests/swh/deploy/indexer_journal_client.pp b/site-modules/profile/manifests/swh/deploy/indexer_journal_client.pp new file mode 100644 --- /dev/null +++ b/site-modules/profile/manifests/swh/deploy/indexer_journal_client.pp @@ -0,0 +1,40 @@ +# Deployment of the swh.indexer.journal_client + +class profile::swh::deploy::indexer_journal_client { + include ::profile::swh::deploy::journal + + $conf_file = lookup('swh::deploy::indexer_journal_client::conf_file') + $user = lookup('swh::deploy::indexer_journal_client::user') + $group = lookup('swh::deploy::indexer_journal_client::group') + + $config = lookup('swh::deploy::indexer_journal_client::config') + $service_name = 'swh-indexer-journal-client' + $unit_name = "${service_name}.service" + + $packages = ['python3-swh.indexer'] + package {$packages: + ensure => 'present', + notify => Service[$service_name], + } + + file {$conf_file: + ensure => present, + owner => root, + group => $group, + mode => '0640', + content => inline_template("<%= @config.to_yaml %>\n"), + notify => Service[$service_name], + } + + # Template uses variables + # - $user + # - $group + # + ::systemd::unit {$unit_name: + ensure => present, + content => template("profile/swh/deploy/journal/${unit_name}.erb"), + } ~> service {$service_name: + ensure => running, + enable => false, + } +} diff --git a/site-modules/profile/templates/swh/deploy/journal/swh-indexer-journal-client.service.erb b/site-modules/profile/templates/swh/deploy/journal/swh-indexer-journal-client.service.erb new file mode 100644 --- /dev/null +++ b/site-modules/profile/templates/swh/deploy/journal/swh-indexer-journal-client.service.erb @@ -0,0 +1,18 @@ +# Indexer Journal Client unit file +# Managed by puppet class profile::swh::deploy::indexer_journal_client +# Changes will be overwritten + +[Unit] +Description=Software Heritage Indexer Journal Client +After=network.target + +[Service] +User=<%= @user %> +Group=<%= @group %> +Type=simple +ExecStart=/usr/bin/python3 -m swh.indexer.journal_client +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target