diff --git a/site-modules/profile/manifests/swh/deploy/worker/indexer_origin_intrinsic_metadata.pp b/site-modules/profile/manifests/swh/deploy/worker/indexer_origin_intrinsic_metadata.pp index 81406042..827ae735 100644 --- a/site-modules/profile/manifests/swh/deploy/worker/indexer_origin_intrinsic_metadata.pp +++ b/site-modules/profile/manifests/swh/deploy/worker/indexer_origin_intrinsic_metadata.pp @@ -1,14 +1,11 @@ # Deployment for swh-indexer-origin-intrinsic-metadata - class profile::swh::deploy::worker::indexer_origin_intrinsic_metadata { include ::profile::swh::deploy::indexer - Package[$::profile::swh::deploy::base_indexer::packages] ~> ::profile::swh::deploy::worker::instance {'indexer_origin_intrinsic_metadata': - ensure => present, - sentry_name => 'indexer', - send_task_events => true, - require => [ - Class['profile::swh::deploy::indexer'], - ], + # Remove deprecated service + ::profile::swh::deploy::worker::instance {'indexer_origin_intrinsic_metadata': + ensure => absent, } + + include ::profile::swh::deploy::indexer_journal_client } diff --git a/site-modules/profile/manifests/swh/deploy/worker/instance.pp b/site-modules/profile/manifests/swh/deploy/worker/instance.pp index 7c8e9023..c000272f 100644 --- a/site-modules/profile/manifests/swh/deploy/worker/instance.pp +++ b/site-modules/profile/manifests/swh/deploy/worker/instance.pp @@ -1,107 +1,111 @@ # Instance of a worker # @param send_task_events # True for workers whose tasks are still scheduled with scheduler-runner (they need to # report their status to the listener which updates the scheduler accordingly). # False, the default, for other workers whose recurring tasks are scheduled with # next-gen scheduler-runner. Their status are updated through a journal client so no # need for the events. # @param extra_config # Extra configuration dict to merge into the default $config loaded for the service. # Typically, that'd be needed to provide extra sensible information like credentials. define profile::swh::deploy::worker::instance ( $ensure = present, $instance_name = $title, $sentry_name = $title, $limit_no_file = undef, $private_tmp = undef, $merge_policy = 'deep', $send_task_events = false, Hash[String, Any] $extra_config = {}, ) { include ::profile::swh::deploy::worker::base # Parametrize the celery worker to actually send task events if required if $send_task_events { $celery_worker_extra_args = "--events" } else { $celery_worker_extra_args = "" } $service_basename = "swh-worker@${instance_name}" $service_name = "${service_basename}.service" $concurrency = lookup("swh::deploy::worker::${instance_name}::concurrency") $max_tasks_per_child = lookup("swh::deploy::worker::${instance_name}::max_tasks_per_child", Integer, first, 5) $loglevel = lookup("swh::deploy::worker::${instance_name}::loglevel") $config_file = lookup("swh::deploy::worker::${instance_name}::config_file") # Merge the default $config with $extra_config (if any) $config = deep_merge( lookup("swh::deploy::worker::${instance_name}::config", Hash, $merge_policy), $extra_config ) $sentry_dsn = lookup("swh::deploy::${sentry_name}::sentry_dsn", Optional[String], 'first', undef) $sentry_environment = lookup("swh::deploy::${sentry_name}::sentry_environment", Optional[String], 'first', undef) $sentry_swh_package = lookup("swh::deploy::${sentry_name}::sentry_swh_package", Optional[String], 'first', undef) $celery_hostname = $::profile::swh::deploy::worker::base::celery_hostname + $parameters_conf = "${service_basename}/parameters.conf" case $ensure { 'present', 'running': { # Uses variables # - $concurrency # - $loglevel # - $max_tasks_per_child # - $celery_hostname # - $sentry_{dsn,environment,swh_package} - ::systemd::dropin_file {"${service_basename}/parameters.conf": + ::systemd::dropin_file {$parameters_conf: ensure => present, unit => $service_name, filename => 'parameters.conf', content => template('profile/swh/deploy/worker/parameters.conf.erb'), } file {$config_file: ensure => 'present', owner => 'swhworker', group => 'swhworker', mode => '0640', content => inline_template("<%= @config.to_yaml %>\n"), } if $ensure == 'running' { $service_ensure = 'running' } else { $service_ensure = undef } service {$service_basename: ensure => $service_ensure, enable => true, require => [ File[$config_file], ] } profile::cron::d {"swh-worker-${instance_name}-autorestart": command => "chronic /usr/local/sbin/swh-worker-ping-restart ${instance_name}@${celery_hostname} ${instance_name}", target => 'swh-worker', minute => 'fqdn_rand/15', require => File['/usr/local/sbin/swh-worker-ping-restart'], } } default: { - ::systemd::dropin_file {"${service_basename}/parameters.conf": + ::systemd::dropin_file {$parameters_conf: ensure => absent, unit => $service_name, filename => 'parameters.conf', } + service {$service_basename: + ensure => absent, + } file {$config_file: ensure => absent, } } } } 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 index 93dfda2b..703e074a 100644 --- 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 @@ -1,27 +1,27 @@ # 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] <%- if !@sentry_dsn.nil? and !@sentry_dsn.empty? -%> Environment=SWH_SENTRY_DSN=<%= @sentry_dsn %> <%- end -%> <%- if !@sentry_environment.nil? and !@sentry_environment.empty? -%> Environment=SWH_SENTRY_ENVIRONMENT=<%= @sentry_environment %> <%- end -%> <%- if !@sentry_swh_package.nil? and !@sentry_swh_package.empty? -%> Environment=SWH_MAIN_PACKAGE=<%= @sentry_swh_package %> <%- end -%> User=<%= @user %> Group=<%= @group %> Type=simple -ExecStart=/usr/bin/swh indexer --config-file <%= @config_path %> journal-client +ExecStart=/usr/bin/swh indexer --config-file <%= @config_path %> journal-client indexer origin-intrinsic-metadata Restart=always RestartSec=10 [Install] WantedBy=multi-user.target diff --git a/site-modules/role/manifests/swh_scheduler_with_journal_client.pp b/site-modules/role/manifests/swh_scheduler_with_journal_client.pp index 24add9fd..6ee9e26f 100644 --- a/site-modules/role/manifests/swh_scheduler_with_journal_client.pp +++ b/site-modules/role/manifests/swh_scheduler_with_journal_client.pp @@ -1,5 +1,4 @@ # Install the swh-scheduler stack + the scheduler's journal client class role::swh_scheduler_with_journal_client inherits role::swh_scheduler { include profile::swh::deploy::scheduler::journal_client - include profile::swh::deploy::indexer_journal_client }