diff --git a/manifests/swh/deploy/indexer.pp b/manifests/swh/deploy/indexer.pp new file mode 100644 index 0000000..31fba13 --- /dev/null +++ b/manifests/swh/deploy/indexer.pp @@ -0,0 +1,31 @@ +# Base class for the indexer manifests +class profile::swh::deploy::indexer { + + $config_directory = '/etc/softwareheritage/indexer' + $config_file = "${config_directory}/base.yml" + $config = hiera('swh::deploy::worker::swh_indexer::base::config') + + $objstorage_config = hiera('swh::azure_objstorage::config') + $merged_config = merge($config, {'objstorage' => $objstorage_config}) + + $packages = ['python3-swh.indexer'] + + file {$config_directory: + ensure => 'directory', + owner => 'swhworker', + group => 'swhworker', + mode => '0755', + } + + file {$config_file: + ensure => 'present', + owner => 'swhworker', + group => 'swhworker', + mode => '0640', + content => inline_template('<%= @merged_config.to_yaml %>'), + } + + package {$packages: + ensure => 'installed', + } +} diff --git a/manifests/swh/deploy/worker/swh_indexer_language.pp b/manifests/swh/deploy/worker/swh_indexer_language.pp new file mode 100644 index 0000000..a0228c2 --- /dev/null +++ b/manifests/swh/deploy/worker/swh_indexer_language.pp @@ -0,0 +1,24 @@ +# Deployment for swh-indexer-language + +class profile::swh::deploy::worker::swh_indexer_language { + include ::profile::swh::deploy::indexer + + $concurrency = hiera('swh::deploy::worker::swh_indexer::language::concurrency') + $loglevel = hiera('swh::deploy::worker::swh_indexer::language::loglevel') + $task_broker = hiera('swh::deploy::worker::swh_indexer::language::task_broker') + + $task_modules = ['swh.indexer.tasks'] + $task_queues = ['swh_indexer_content_language'] + + ::profile::swh::deploy::worker::instance {'swh_indexer_language': + ensure => present, + concurrency => $concurrency, + loglevel => $loglevel, + task_broker => $task_broker, + task_modules => $task_modules, + task_queues => $task_queues, + require => [ + Class['profile::swh::deploy::indexer'], + ], + } +} diff --git a/manifests/swh/deploy/worker/swh_indexer_mimetype.pp b/manifests/swh/deploy/worker/swh_indexer_mimetype.pp new file mode 100644 index 0000000..2ec7bd4 --- /dev/null +++ b/manifests/swh/deploy/worker/swh_indexer_mimetype.pp @@ -0,0 +1,39 @@ +# Deployment for swh-indexer-mimetype + +class profile::swh::deploy::worker::swh_indexer_mimetype { + include ::profile::swh::deploy::indexer + + $concurrency = hiera('swh::deploy::worker::swh_indexer::mimetype::concurrency') + $loglevel = hiera('swh::deploy::worker::swh_indexer::mimetype::loglevel') + $task_broker = hiera('swh::deploy::worker::swh_indexer::mimetype::task_broker') + + $config_file = '/etc/softwareheritage/indexer/mimetype.yml' + $config = hiera('swh::deploy::worker::swh_indexer::mimetype::config') + + $objstorage_config = hiera('swh::azure_objstorage::config') + $merged_config = merge($config, {'objstorage' => $objstorage_config}) + + $task_modules = ['swh.indexer.tasks'] + $task_queues = ['swh_indexer_content_mimetype'] + + ::profile::swh::deploy::worker::instance {'swh_indexer_mimetype': + ensure => present, + concurrency => $concurrency, + loglevel => $loglevel, + task_broker => $task_broker, + task_modules => $task_modules, + task_queues => $task_queues, + require => [ + Class['profile::swh::deploy::indexer'], + File[$config_file], + ], + } + + file {$config_file: + ensure => 'present', + owner => 'swhworker', + group => 'swhworker', + mode => '0640', + content => inline_template('<%= @merged_config.to_yaml %>'), + } +} diff --git a/manifests/swh/deploy/worker/swh_indexer_orchestrator.pp b/manifests/swh/deploy/worker/swh_indexer_orchestrator.pp new file mode 100644 index 0000000..bdc47bd --- /dev/null +++ b/manifests/swh/deploy/worker/swh_indexer_orchestrator.pp @@ -0,0 +1,37 @@ +# Deployment for swh-indexer + +class profile::swh::deploy::worker::swh_indexer_orchestrator { + + include ::profile::swh::deploy::indexer + + $concurrency = hiera('swh::deploy::worker::swh_indexer::orchestrator::concurrency') + $loglevel = hiera('swh::deploy::worker::swh_indexer::orchestrator::loglevel') + $task_broker = hiera('swh::deploy::worker::swh_indexer::orchestrator::task_broker') + + $config_file = '/etc/softwareheritage/indexer/orchestrator.yml' + $config = hiera('swh::deploy::worker::swh_indexer::orchestrator::config') + + $task_modules = ['swh.indexer.tasks'] + $task_queues = ['swh_indexer_orchestrator'] + + ::profile::swh::deploy::worker::instance {'swh_indexer_orchestrator': + ensure => present, + concurrency => $concurrency, + loglevel => $loglevel, + task_broker => $task_broker, + task_modules => $task_modules, + task_queues => $task_queues, + require => [ + Class['profile::swh::deploy::indexer'], + File[$config_file], + ], + } + + file {$config_file: + ensure => 'present', + owner => 'swhworker', + group => 'swhworker', + mode => '0644', + content => inline_template('<%= @config.to_yaml %>'), + } +}