diff --git a/site-modules/profile/manifests/swh/deploy/base_loader_git.pp b/site-modules/profile/manifests/swh/deploy/base_loader_git.pp
index 007e0de5..c11490b4 100644
--- a/site-modules/profile/manifests/swh/deploy/base_loader_git.pp
+++ b/site-modules/profile/manifests/swh/deploy/base_loader_git.pp
@@ -1,11 +1,21 @@
 # Git Loader base configuration
 class profile::swh::deploy::base_loader_git {
   include ::profile::swh::deploy::loader
 
+  $load_metadata = lookup('swh::deploy::worker::loader_git::load_metadata')
   $packages = ['python3-swh.loader.git']
 
-  package {$packages:
-    ensure => 'present',
+  if $load_metadata {
+    $extra_config = lookup('swh::deploy::worker::loader_git::extra_config', {
+      default_value => {}
+    })
+    $extra_packages = ['python3-swh.loader.metadata']
+    ensure_packages($extra_packages)
+    $all_packages = $packages + $extra_packages
+  } else {
+    $extra_config = {}
   }
 
+  ensure_packages($packages)
+
 }
diff --git a/site-modules/profile/manifests/swh/deploy/worker/loader_git.pp b/site-modules/profile/manifests/swh/deploy/worker/loader_git.pp
index 5cd93a8b..0eb51fab 100644
--- a/site-modules/profile/manifests/swh/deploy/worker/loader_git.pp
+++ b/site-modules/profile/manifests/swh/deploy/worker/loader_git.pp
@@ -1,25 +1,10 @@
 # Deployment for swh-loader-git (remote)
 class profile::swh::deploy::worker::loader_git {
   include ::profile::swh::deploy::base_loader_git
 
-  $load_metadata = lookup('swh::deploy::worker::loader_git::load_metadata')
-  $packages = [$::profile::swh::deploy::base_loader_git::packages]
-
-  if $load_metadata {
-    $extra_config = lookup('swh::deploy::worker::loader_git::extra_config', {
-      default_value => {}
-    })
-    $extra_packages = ['python3-swh.loader.metadata']
-    ensure_packages($extra_packages)
-    $all_packages = $packages + $extra_packages
-  } else {
-    $extra_config = {}
-    $all_packages = $packages
-  }
-
   ::profile::swh::deploy::worker::instance {'loader_git':
     ensure       => present,
-    require      => Package[$all_packages],
-    extra_config => $extra_config
+    require      => Package[$::profile::swh::deploy::base_loader_git::packages],
+    extra_config => $::profile::swh::deploy::base_loader_git::extra_config
   }
 }
diff --git a/site-modules/profile/manifests/swh/deploy/worker/loader_high_priority.pp b/site-modules/profile/manifests/swh/deploy/worker/loader_high_priority.pp
index 6e87722c..0fa41083 100644
--- a/site-modules/profile/manifests/swh/deploy/worker/loader_high_priority.pp
+++ b/site-modules/profile/manifests/swh/deploy/worker/loader_high_priority.pp
@@ -1,15 +1,16 @@
 # Deployment for high priority loader
 class profile::swh::deploy::worker::loader_high_priority {
   include ::profile::swh::deploy::base_loader_git
   include ::profile::swh::deploy::base_loader_mercurial
   include ::profile::swh::deploy::base_loader_svn
 
   $packages = $::profile::swh::deploy::base_loader_git::packages + $::profile::swh::deploy::base_loader_mercurial::packages + $::profile::swh::deploy::base_loader_svn::packages
 
   ::profile::swh::deploy::worker::instance {'loader_high_priority':
     ensure            => present,
     send_task_events  => true,
     require           => Package[$packages],
+    extra_config      => $::profile::swh::deploy::base_loader_git::extra_config,
   }
 
 }
diff --git a/site-modules/profile/manifests/swh/deploy/worker/loader_oneshot.pp b/site-modules/profile/manifests/swh/deploy/worker/loader_oneshot.pp
index 6f88c6b6..d819b2c9 100644
--- a/site-modules/profile/manifests/swh/deploy/worker/loader_oneshot.pp
+++ b/site-modules/profile/manifests/swh/deploy/worker/loader_oneshot.pp
@@ -1,14 +1,15 @@
 # Deployment for oneshot loader
 class profile::swh::deploy::worker::loader_oneshot {
   include ::profile::swh::deploy::base_loader_git
   include ::profile::swh::deploy::base_loader_mercurial
   include ::profile::swh::deploy::base_loader_svn
 
   $packages = $::profile::swh::deploy::base_loader_git::packages + $::profile::swh::deploy::base_loader_mercurial::packages + $::profile::swh::deploy::base_loader_svn::packages
 
   ::profile::swh::deploy::worker::instance {'loader_oneshot':
-    ensure  => present,
-    require => Package[$packages],
+    ensure       => present,
+    require      => Package[$packages],
+    extra_config => $::profile::swh::deploy::base_loader_git::extra_config,
   }
 
 }