diff --git a/manifests/swh/deploy/worker/instance.pp b/manifests/swh/deploy/worker/instance.pp
index 1cef01a..bf16362 100644
--- a/manifests/swh/deploy/worker/instance.pp
+++ b/manifests/swh/deploy/worker/instance.pp
@@ -1,70 +1,71 @@
 # Instance of a worker
 define profile::swh::deploy::worker::instance (
   $ensure = present,
   $task_broker = '',
   $task_modules = [],
   $task_queues = [],
   $task_soft_time_limit = 0,
   $concurrency = 10,
   $loglevel = 'info',
   $max_tasks_per_child = 5,
-  $instance_name = $title)
+  $instance_name = $title,
+  $limit_no_file='None')
 {
   include ::profile::swh::deploy::worker::base
   include ::systemd
 
   $service_basename = "swh-worker@${instance_name}"
   $service_name = "${service_basename}.service"
   $systemd_dir = "/etc/systemd/system/${service_name}.d"
   $systemd_snippet = "${systemd_dir}/parameters.conf"
   $config_directory = '/etc/softwareheritage/worker'
   $instance_config = "${config_directory}/${instance_name}.ini"
 
   case $ensure {
     'present': {
       file {$systemd_dir:
         ensure => directory,
         owner  => 'root',
         group  => 'root',
         mode   => '0755',
       }
 
       # Uses variables
       # - $concurrency
       # - $loglevel
       # - $max_tasks_per_child
       file {$systemd_snippet:
         ensure  => present,
         owner   => 'root',
         group   => 'root',
         mode    => '0644',
         content => template('profile/swh/deploy/worker/parameters.conf.erb'),
         notify  => [
           Exec['systemd-daemon-reload'],
         ],
       }
 
       # Uses variables
       # - $task_broker
       # - $task_modules
       # - $task_queues
       # - $task_soft_time_limit
       file {$instance_config:
         ensure  => present,
         owner   => 'swhworker',
         group   => 'swhdev',
         # contains a password for the broker
         mode    => '0640',
         content => template('profile/swh/deploy/worker/instance_config.ini.erb'),
       }
     }
     default: {
       file {[
         $systemd_dir,
         $instance_config,
       ]:
         ensure => absent,
       }
     }
   }
 }
diff --git a/templates/swh/deploy/worker/parameters.conf.erb b/templates/swh/deploy/worker/parameters.conf.erb
index f1a4d55..a5c8d63 100644
--- a/templates/swh/deploy/worker/parameters.conf.erb
+++ b/templates/swh/deploy/worker/parameters.conf.erb
@@ -1,7 +1,10 @@
 # Managed by puppet - modifications will be overwritten
 # In defined class profile::swh::deploy::worker::instance
 
 [Service]
 Environment=CONCURRENCY=<%= @concurrency %>
 Environment=MAX_TASKS_PER_CHILD=<%= @max_tasks_per_child %>
 Environment=LOGLEVEL=<%= @loglevel %>
+<% if limit_no_file != 'None' %>
+LimitNOFILE=<%= @limit_no_file %>
+<% end %>