diff --git a/data/defaults.yaml b/data/defaults.yaml
index 28756a59..1dff9b8d 100644
--- a/data/defaults.yaml
+++ b/data/defaults.yaml
@@ -1,1732 +1,1752 @@
 ---
 ntp::servers:
   - sesi-ntp1.inria.fr
   - sesi-ntp2.inria.fr
 
 smtp::relayhost: '[smtp.inria.fr]'
 smtp::mydestination:
   - "%{::fqdn}"
 smtp::mynetworks:
   - 127.0.0.0/8
   - "[::ffff:127.0.0.0]/104"
   - "[::1]/128"
 smtp::relay_destinations: {}
 smtp::virtual_aliases: {}
 smtp::mail_aliases:
   root:
     - olasd
     - zack
   zack:
     - zack@upsilon.cc
   ardumont:
     - antoine.romain.dumont@gmail.com
   olasd:
     - nicolas+swhinfra@dandrimont.eu
   swhworker:
     - zack
     - olasd
     - ardumont
   swhstorage:
     - root
   postgres:
     - root
   rdicosmo:
     - roberto@dicosmo.org
 
 locales::default_locale: C.UTF-8
 locales::installed_locales:
   - C.UTF-8 UTF-8
   - en_US.UTF-8 UTF-8
   - fr_FR.UTF-8 UTF-8
   - it_IT.UTF-8 UTF-8
 
 packages:
   - etckeeper
   - htop
   - molly-guard
   - moreutils
   - ncdu
   - vim
   - zsh
   - git
   - python3
   - tmux
 
 packages::desktop:
   - gnome
   - chromium
   - emacs
   - myrepos
   - curl
   - tree
 
 packages::devel:
   - arcanist
   - elpa-magit
   - git-email
   - gitg
   - gitk
   - ltrace
   - perl-doc
   - strace
 
 packages::devel::debian:
   - devscripts
   - dpkg-dev
   - sbuild
   - reprepro
 
 packages::devel::python:
   - graphviz
   - make
   - python3-arrow
   - python3-blinker
   - python3-celery
   - python3-cffi
   - python3-dateutil
   - python3-flake8
   - python3-flask
   - python3-flask-api
   - python3-flask-testing
   - python3-msgpack
   - python3-nose
   - python3-psycopg2
   - python3-pygit2
   - python3-requests
   - python3-retrying
   - python3-sphinx
   - python3-vcversioner
   - python3-click
   - libjs-cryptojs
   - libjs-jquery-flot
   - libjs-jquery-flot-tooltip
 
 packages::devel::broker:
   - rabbitmq-server
 
 packages::devel::postgres:
   - apgdiff
   - barman
   - check-postgres
   - postgresql
   - postgresql-autodoc
   - postgresql-client
   - postgresql-contrib
   - postgresql-doc
   - postgresql-plpython3-9.5
   - postgresql-server-dev-9.5
 
 users:
   root:
     uid: 0
     full_name:
     shell: /bin/bash
     groups: []
     authorized_keys:
       root@louvre:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAABAQDMLEWHlUQldlvZs5rg0y42lRNAfOhD+6pmO8a73DzpJWHTqvAlfteLpU78IPjSacB4dO5ish1E/1RX/HC+Bt8p2v4RBqbCnVLx2w+Hx4ahWu6qbeTVmTz+U++1SQrHnL08fSlhT0OekCw0lRZM2sQq21FZi6+vul97Ecikag4Xaw6Qfumylu94pM3t05uzTUlKk1+6VMCjhT8dlSe8VS8OirVQpE/OqYtTMAWtQaMXGHPCsqDdYRAKzkJ8GjH7ydZmX5VCRyqS0RvPKAlcJfLCs5HBtv0u5rbeGtiHhuzhj/j3YgS/6NJOC2mUfcetcDOMPLnhkKpnF0vUAzTsJ7aR
   zack:
     uid: 1000
     full_name: Stefano Zacchiroli
     shell: /usr/bin/zsh
     groups:
       - swhdev
       - swhstorage
       - swhscheduler
       - swhdeploy
       - sudo
       - gitorious
       - swhteam
     authorized_keys:
       zack-software-heritage:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAACAQDU0O8tkUqtQCelLEatOGfGpx1sIwHPSMA+7OdXoZjZG5pT9Sfgf3ITsNgo1iYWge5bpH/TKhhvf20B05fa8cCEE5ULaD+xdV9eTIvBEaCiP36HH33WNl/UV8T8klTG2sqBXUgLMJuinfGkuRJ977ndm7mjNwzl3Ghf6JwKfpHrvob4GLc0hm54yzcnNEzQZLcdxmOCWdwTINKnL+W/DDM8NR3vNF6T5+xaiLJzsS0IGcTubklugD3m05qbswS/uACWys3FzRM8tttw/0wCRrC9SCSKoDLonab5y3Ld6vCj1k12J2RAHSqJYwVCm70JRPWZcmU67Udi6kbqkJMftp04K0pplu8V7RLPrpwLyH4sPx7Kkhslvxqj0rerLPOkoDkqneFgxNoMcxN5ayod7fBJAq5jQUmGozeTtgPLKybnxRDhsYpkEH9paZroQ3CqDsA0dptOpedVpcQUSbiLMaYd8kgCPkVIdKANnTGGXDcTfWv21IvFx6sKm1kld2Me3ExVMq7JFcmXutF/IQom9F4vj/xd/7Lt4KmqZKyiAq4n5iaPIRUbZvmwd2D6umOHpMGlqKwtsiWRUYnAVvhRfuSZmgrGgliYiYr+vU2xeWe+XXQhP9vt3eItmdSp/8/+a2lqaIE9slE75hEI2n8in7DeSn6QhFDbyUKwZz5OwK7QVw==
   olasd:
     uid: 1001
     full_name: Nicolas Dandrimont
     shell: /bin/bash
     groups:
       - swhdev
       - swhstorage
       - swhscheduler
       - swhdeploy
       - sudo
       - gitorious
       - swhteam
     authorized_keys:
       nicolasd@darboux:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ1TCpfzrvxLhEMhxjbxqPDCwY0nazIr1cyIbhGD2bUdAbZqVMdNtr7MeDnlLIKrIPJWuvltauvLNkYU0iLc1jMntdBCBM3hgXjmTyDtc8XvXseeBp5tDqccYNR/cnDUuweNcL5tfeu5kzaAg3DFi5Dsncs5hQK5KQ8CPKWcacPjEk4ir9gdFrtKG1rZmg/wi7YbfxrJYWzb171hdV13gSgyXdsG5UAFsNyxsKSztulcLKxvbmDgYbzytr38FK2udRk7WuqPbtEAW1zV4yrBXBSB/uw8EAMi+wwvLTwyUcEl4u0CTlhREljUx8LhYrsQUCrBcmoPAmlnLCD5Q9XrGH
   ardumont:
     uid: 1003
     full_name: Antoine R. Dumont
     shell: /usr/bin/zsh
     groups:
       - swhdev
       - swhstorage
       - swhscheduler
       - swhdeploy
       - sudo
       - gitorious
       - swhteam
     authorized_keys:
       eniotna.t@gmail.com:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAABAQDZarzgHrzUYspvrgSI6fszrALo92BDys7QOkJgUfZa9t9m4g7dUANNtwBiqIbqijAQPmB1zKgG6QTZC5rJkRy6KqXCW/+Qeedw/FWIbuI7jOD5WxnglbEQgvPkkB8kf1xIF7icRfWcQmK2je/3sFd9yS4/+jftNMPPXkBCxYm74onMenyllA1akA8FLyujLu6MNA1D8iLLXvz6pBDTT4GZ5/bm3vSE6Go8Xbuyu4SCtYZSHaHC2lXZ6Hhi6dbli4d3OwkUWz+YhFGaEra5Fx45Iig4UCL6kXPkvL/oSc9KGerpT//Xj9qz1K7p/IrBS8+eA4X69bHYYV0UZKDADZSn
       ardumont@louvre:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAABAQC0Xj8nwGWTb6VGFNIrlhVTLX6VFTlvpirjdgOTOz8riRxBTS9ra35g3cz8zfDl0iVyE455GXzxlm33w/uu3DX0jQOIzkcoEBRw+T33EK89lo6tCCd9xQrteWCTNR1ZBFloHSnYk2m7kw9kyrisziyAdULsCrXmMd3BH1oJyEpISA+sv/dtVpIOWdEQmkbLmdHl2uEdjBLjqb3BtAp2oJZMmppE5YjAx0Aa1+7uSnURf7NnwMx+0wTDMdfqn8z4wqI8eQny+B+bqLH9kY++52FfMVALuErGh5+75/vtd2xzRQamjKsBlTGjFFbMRagZiVNLDX2wtdudhNmnQDIKA+rH
   swhworker:
     uid: 1004
     full_name: SWH Worker Acccount
     shell: /bin/bash
     groups:
       - swhdeploy
       - gitorious
   swhstorage:
     uid: 1005
     full_name: SWH Storage Account
     shell: /bin/bash
     groups:
       - swhdeploy
       - swhstorage
   swhwebapp:
     uid: 1006
     full_name: SWH Web App Account
     shell: /bin/bash
     groups: []
   swhbackup:
     uid: 1007
     full_name: SWH Backup Account
     shell: /bin/bash
     groups: []
   rdicosmo:
     uid: 1008
     full_name: Roberto Di Cosmo
     shell: /bin/bash
     groups:
       - swhteam
     authorized_keys:
       dicosmo@voyager:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAACAQC5aS/3Cps2Ru9EW+nIF9Z9o6/xq1thwtCgpIjSPgcrm2BVisj6xbD5OOapS3U6BpLKjWZG8sMGBCsJJ3S1cP0s2I+xHFToqCcbfOxIe/tq/UgTtxGJ0+TfUKNoD+QJjIKnjyC+HVEQm5bSm8mJv0vptj4On8yNopytSGuLcFHHnMB2t+IOkHnTW7n3emhh3SZKAcpI1h7WvPqsqBobMFDMeqvGeHaH2AM2OSoUi7AY+MmcVL0Je6QtJqpz60QI5dvaM4AsobC12AZSJKXnuqQTY6nJy4r9jPRK8RUqo5PuAAsNtlxf5xA4s1LrDR5PxBDpYz47Pq2LHtI9Hgf/SFB3IqZeBKqquMI1xThRBwP307/vOtTiwJr4ZKcpOH+SbU7Tnde4n8siM719QZM8VITtrbwm/VBiEwvhGC/23npX4S55W7Et/l9gmeP3Q+lSw50vBuQhBSn7BzedPM1CqbTN/zqM8TCDUtPVIo+6b2s5ao/Vcq9vBXm5bP0xZeNsqsCl05zpCShudKpT6AlMGAaRTd6NUHHsf4D1JjNx3v42R3vQr6OgHELVMGECuyPs3zWHOS/P6AdD0yJTSOMaklRh2HGN8uj0+aQ7RhnrkYqRfhN+6UkrTANuxdb44AGdLmBAKIYglVrAJe+DEji/LzJdZ22baAWg4ar/WikpFJtxkw==
   swhteamannex:
     uid: 1009
     full_name: SWH Team Git Annex Account
     shell: /bin/bash
     groups:
       - swhteam
     authorized_keys:
       swhteamannex@louvre:
         type: ssh-rsa
         key: AAAAB3NzaC1yc2EAAAADAQABAAACAQDL/Ef9kktq/QkJ0lohan8ObQ3o7hMf7EOQPjO+u7UhIMjBNufJnaftQRGIA6N1/wEsDvxxNNz75/oJECJHgZs2OOTJJPsKfYeybmSBocSa/sn6IKK7/b/qlwHJlSGWPGVgbtfP0KexlSAKAmKZuJyqjES5igTLV5w4wTjvUUen9QyefuUehnCX3MJhTpoyixp7icXE80aNMaCPwHZppKb/28sNlPX3MbSONGM45wSFRXNuj0mAAjrgojkhAqFNnI9oKNAt9mDcw1hV0n86VvrDhEbMCJP/z58ecn376BgyXQ8zNUPIr2g0SrSPUNjfxZHfJ0XYpF7624wOMOmZE3fsQzZh+FeMF0IFRPvcG34RaelV9dXiy+/q45oqwbMF464gFSbyt++4jpgqHdsARM4zR//jBhyLvFXR+GaKC3hFENno5W5Raff4XE5rzN/q9jVJBNfvfuEPWrapyM3A/ePeuK3SyNJwyIx+bOEQXsRdxEWKszTeJO2SLPWtCrKrC+G4/HktQSQOj5S9a+N6HoKD8E889eBEYoeZGPIuzMot4cuUlyPt3P99z4oRIaeC6XwUCvZCD2DaTAkQWQMsmOn+soaeZ1zBHbsCBbV0mBMRx7K4Vjs62vhSelryQAXW+cBgd6+f5XBjOnNhHQhsNsDfYP4Kmztn58faQV2TzGG5ow==
   swhscheduler:
     uid: 1010
     full_name: SWH Scheduler Account
     shell: /bin/bash
     groups:
       - swhscheduler
   jbertran:
     uid: 2001
     full_name: Jordi Bertran de Balanda
     shell: /bin/false
     password: "!"
   qcampos:
     uid: 2002
     full_name: Quentin Campos
     shell: /bin/false
     password: "!"
   gitorious:
     uid: 5000
     full_name: Gitorious System User
     shell: /bin/false
     groups:
       - gitorious
 
 groups:
   swhdev:
     gid: 1002
   swhstorage:
     gid: 1005
   swhdeploy:
     gid: 1006
   swhbackup:
     gid: 1007
   swhwebapp:
     gid: 1008
   swhteam:
     gid: 1009
   swhscheduler:
     gid: 1010
   sudo:
     gid: 27 # assigned from base-files
   gitorious:
     gid: 5000
 
 munin::node::allow:
   - 192.168.100.29
 
 munin::node::network: 192.168.100.0/23
 
 munin::node::plugins::enable:
   - apt
   - postfix_mailvolume
   - postfix_mailqueue
 
 munin::node::plugins::disable:
   - apt_all
   - exim_mailstats
   - exim_mailqueue
 
 munin::master::hostname: munin.internal.softwareheritage.org
 
 munin::plugins::rabbitmq::messages_warn: 18000000
 munin::plugins::rabbitmq::messages_crit: 20000000
 munin::plugins::rabbitmq::queue_memory_warn: 1073741824 # 1GB
 munin::plugins::rabbitmq::queue_memory_crit: 2147483648 # 2GB
 
 puppet::master::hostname: pergamon.internal.softwareheritage.org
 
 strict_transport_security::max_age: 15768000
 
 # Those variables get picked up by 'include ::php::fpm::daemon'
 php::fpm::daemon::log_owner: www-data
 php::fpm::daemon::log_group: adm
 php::fpm::daemon::log_dir_mode: '0750'
 
 # Those variables get picked up by 'include ::apache'
 apache::server_tokens: 'Prod'
 apache::server_signature: 'Off'
 apache::trace_enable: 'Off'
 
 # Those variables need to be set manually in the SSL vhosts.
 apache::ssl_protocol: all -SSLv2 -SSLv3
 apache::ssl_honorcipherorder: 'On'
 apache::ssl_cipher: EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
 apache::hsts_header: "add Strict-Transport-Security \"max-age=%{hiera('strict_transport_security::max_age')}\""
 
 ssl:
   star_softwareheritage_org:
     certificate: |
       -----BEGIN CERTIFICATE-----
       MIIGlTCCBX2gAwIBAgIQDjmSRHUEXcLOQA5yynS0ljANBgkqhkiG9w0BAQsFADBk
       MQswCQYDVQQGEwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJ
       QW1zdGVyZGFtMQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wg
       Q0EgMzAeFw0xNTEwMTUwMDAwMDBaFw0xODEwMTkxMjAwMDBaMIG/MQswCQYDVQQG
       EwJGUjERMA8GA1UECBMIWXZlbGluZXMxFTATBgNVBAcTDFJvY3F1ZW5jb3VydDFJ
       MEcGA1UEChNASW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9y
       bWF0aXF1ZSBldCBlbiBBdXRvbWF0aXF1ZTEaMBgGA1UECxMRU29mdHdhcmUgSGVy
       aXRhZ2UxHzAdBgNVBAMMFiouc29mdHdhcmVoZXJpdGFnZS5vcmcwggIiMA0GCSqG
       SIb3DQEBAQUAA4ICDwAwggIKAoICAQDkJbBlHS8qDspHFiif9yqNrSalWNcAoxUr
       JRAW9NGhj98PTu3nVnmcLSkGLhXGNUkoU3xQ7p9fSQmHLgun4Suw4/DzRhwIyrXz
       pb1WjoMbaSqMenROexSb7C7YnwX19BH8d8A3Hut+VKzYLMG9/aevS7gd6+cLOT7P
       GTL6P5hL2XZfHlK/P8NNtWkefXrZJ/7TeD3Tx2wuzaercglsmfOQ2RJamLOr9oRR
       3++hxAQrrq0o3k0t8d7OWMNAFsrxzJJRpfoEWM9GYNzDbmsoOAKUwgZtgDs/seV+
       zByuzE3EC3Br1kNOc9bnNGn1p5Vybk1Pnu/MpkYaxG35oTN6r4i9whH1EJA6Ag8b
       cPOO9rR66emmyVc7PyGJl3zo6ajfzJ8WLrElLeofqcxIi10pr7jLEoIxWUmTHTRa
       2yi9juR9gWnMl930yTuNMF2YPlZFwGJq0UY2Bqpey25UdLUIYraqzn6I6Jpc52fq
       CUgmA390pyADqe8EhgOC6+BhTn0fFLnoOr0+p2kXLUHpCCG7ZmPg/mIkb4aX589o
       rRYbkhKx2yvpAYtwmcPdmOTkXry+j+ifXGbdmT6/uYeWmzYEuDFSI/cPm9OlSBgv
       TGop9uMOvrlHSzsLFlmZd05SweCjs/30EpRiIzdPD0bgA6QUk8s/Y6tstyR2aY4r
       gjDGFuPgfwIDAQABo4IB5TCCAeEwHwYDVR0jBBgwFoAUZ/2IIBQnmMcJ0iUZu+lR
       EWN1UGIwHQYDVR0OBBYEFF/v9armSIX9Cc27QHF7arptmN5MMDcGA1UdEQQwMC6C
       Fiouc29mdHdhcmVoZXJpdGFnZS5vcmeCFHNvZnR3YXJlaGVyaXRhZ2Uub3JnMA4G
       A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwawYD
       VR0fBGQwYjAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL1RFUkVOQVNT
       TENBMy5jcmwwL6AtoCuGKWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9URVJFTkFT
       U0xDQTMuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAEBMCowKAYIKwYBBQUHAgEW
       HGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQICMG4GCCsGAQUF
       BwEBBGIwYDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMDgG
       CCsGAQUFBzAChixodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVEVSRU5BU1NM
       Q0EzLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCYCI6aos3H
       z+uchhCCaxQNyxcjwQPdlNkQtdpJPxDEX6cOBPp3zFIhakQJHMbKrJBd4UEDTrzF
       zcJWNmZpFVs7nmSIYP5Asb74gQ83OoGL4IZBZNl6l7id99SmldeVl/Ptbfdkt8cw
       gV/8SgwLXSIxB/aStyo0eytdxri+BqZwKjJejaKfhzxCe50gLJaS+zyjTvlhljA1
       vDYmBramvEzGbt5ONEEAnPAYhKsSdZGo71ARbrit/nuLVUmY8zvoGblTNZHHRgT/
       JPsYp3CjKIVTX9v5tQjaTVt6oPaL9yQhBJaj1dbMrYmVyyaLyrY8i/O/Gdbfcesl
       wOHPLsGhuYNF
       -----END CERTIFICATE-----
     ca_bundle: |
       -----BEGIN CERTIFICATE-----
       MIIE+zCCA+OgAwIBAgIQCHC8xa8/25Wakctq7u/kZTANBgkqhkiG9w0BAQsFADBl
       MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
       d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
       b3QgQ0EwHhcNMTQxMTE4MTIwMDAwWhcNMjQxMTE4MTIwMDAwWjBkMQswCQYDVQQG
       EwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJQW1zdGVyZGFt
       MQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wgQ0EgMzCCASIw
       DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMV2Dw/ZQyk7bG3RR63eEL8jwnio
       Snc18SNb4EweQefCMQC9iDdFdd25AhCAHo/tZCMERaegOTuBTc9jP8JJ/yKeiLDS
       lrlcinQfkioq8hLIt2hUtVhBgUBoBhpPhSn7tU08D08/QJYbzqjMXjX/ZJj1dd10
       VAWgNhEEEiRVY++Udy538RV27tOkWUUhn6i+0SftCuirOMo/h9Ha8Y+5Cx9E5+Ct
       85XCFk3shKM6ktTPxn3mvcsaQE+zVLHzj28NHuO+SaNW5Ae8jafOHbBbV1bRxBz8
       mGXRzUYvkZS/RYVJ+G1ShxwCVgEnFqtyLvRx5GG1IKD6JmlqCvGrn223zyUCAwEA
       AaOCAaYwggGiMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMHkG
       CCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu
       Y29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln
       aUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRw
       Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js
       MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk
       SURSb290Q0EuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo
       dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBRn/YggFCeYxwnS
       JRm76VERY3VQYjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
       hkiG9w0BAQsFAAOCAQEAqSg1esR71tonHqyYzyc2TxEydHTmQN0dzfJodzWvs4xd
       xgS/FfQjZ4u5b5cE60adws3J0aSugS7JurHogNAcyTnBVnZZbJx946nw09E02DxJ
       WYsamM6/xvLYMDX/6W9doK867mZTrqqMaci+mqege9iCSzMTyAfzd9fzZM2eY/lC
       J1OuEDOJcjcV8b73HjWizsMt8tey5gvHacDlH198aZt+ziYaM0TDuncFO7pdP0GJ
       +hY77gRuW6xWS++McPJKe1e9GW6LNgdUJi2GCZQfXzer8CM/jyxflp5HcahE3qm5
       hS+1NGClXwmgmkMd1L8tRNaN2v11y18WoA5hwnA9Ng==
       -----END CERTIFICATE-----
   star_internal_softwareheritage_org:
     certificate: |
       -----BEGIN CERTIFICATE-----
       MIIGsDCCBZigAwIBAgIQD1wiwe+Cg9VcwL5QrB+UqzANBgkqhkiG9w0BAQsFADBk
       MQswCQYDVQQGEwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJ
       QW1zdGVyZGFtMQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wg
       Q0EgMzAeFw0xNTEwMTUwMDAwMDBaFw0xODEwMTkxMjAwMDBaMIHIMQswCQYDVQQG
       EwJGUjERMA8GA1UECBMIWXZlbGluZXMxFTATBgNVBAcTDFJvY3F1ZW5jb3VydDFJ
       MEcGA1UEChNASW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9y
       bWF0aXF1ZSBldCBlbiBBdXRvbWF0aXF1ZTEaMBgGA1UECxMRU29mdHdhcmUgSGVy
       aXRhZ2UxKDAmBgNVBAMMHyouaW50ZXJuYWwuc29mdHdhcmVoZXJpdGFnZS5vcmcw
       ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDxz6BsVNPDk1fSAltRCwiU
       0iZtd+10WKJL+tgPmv/s3+WgIqj5+hQ/iZsAc7Y45yQo4yU+PsDq+BIFR2yt5rtk
       B0Xz4sNHAo585IEvWvf3wAULf6GQ17o2XRxN5IZfNgLfRy6jQjeIbiFmO5M2g6To
       Fl+MMAuK0+u9u6az41eBl1etTe7QjGaL+B45kfLyLeBB4rhusEQSPRTrGrdrgdEt
       di9jedDjbMkV2B197D7CZHqKRR3B+yuRwgd/t/OqIBpN0M//kPE6AJzpLN2B4Z6L
       HGSeyprQleFkS3d7hAlZal/9di8C+38bAGmTW8dQLGwFeYTHN6hBuMYm0y4Yk32W
       423rPZuguA3j2sIxOuIExKmlMDzuGociy3npfjTvWCi/6ESo0hkImnrWKUZ0eyFH
       h52DsPC6ePhou4qh+KdwObxJmYgS69YhHgrsfZokbbWy/hj6N6dAFmTYJQ9hcrpr
       x2CHHAmbd7J8gTInMDHlUMJ1vcL11coRpmfevMiaK4szZwzRfI+xsevVeHRusxpC
       ErrtW+T+9rSfFVIROjXirD4uok8R3UTMpwNOhPQtKTHN/8v9Cvp5BzY0XNnRiVFc
       lL/4YezG+YO6r4GieWEJyLyB7R/JRJbSuCJLzzqZek4twESiV7mtKe2P1clUF1z+
       O1+pLFUaRSSgpGxypDgIXQIDAQABo4IB9zCCAfMwHwYDVR0jBBgwFoAUZ/2IIBQn
       mMcJ0iUZu+lREWN1UGIwHQYDVR0OBBYEFEZAY+NxWfpgt+qo+0pdRQ5uTsPeMEkG
       A1UdEQRCMECCHyouaW50ZXJuYWwuc29mdHdhcmVoZXJpdGFnZS5vcmeCHWludGVy
       bmFsLnNvZnR3YXJlaGVyaXRhZ2Uub3JnMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE
       FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwawYDVR0fBGQwYjAvoC2gK4YpaHR0cDov
       L2NybDMuZGlnaWNlcnQuY29tL1RFUkVOQVNTTENBMy5jcmwwL6AtoCuGKWh0dHA6
       Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9URVJFTkFTU0xDQTMuY3JsMEwGA1UdIARFMEMw
       NwYJYIZIAYb9bAEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0
       LmNvbS9DUFMwCAYGZ4EMAQICMG4GCCsGAQUFBwEBBGIwYDAkBggrBgEFBQcwAYYY
       aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMDgGCCsGAQUFBzAChixodHRwOi8vY2Fj
       ZXJ0cy5kaWdpY2VydC5jb20vVEVSRU5BU1NMQ0EzLmNydDAMBgNVHRMBAf8EAjAA
       MA0GCSqGSIb3DQEBCwUAA4IBAQBt7fVm/+sNa5VkhdxfiSSAqrqrjrNPI2izU3Bs
       fNrN+o7buLGTmA83WJaJsX74kdegqsmT5J3qBO/RDNpvIJqeGBQdDO2L4tRCHxSZ
       mJ0o7GKFfWY01hF6J6jSHzOehpL/UQ37U1Kh3l7GLBkOhPubV9wkG5jMLlrYNCAd
       gY59W84hH9QCV+oO44F4Q3bdwTcXrZuQ3tpyqqgukmrCm0TcK7pOa5FWZ4r6ZIWe
       RNpor8OyVqmMj8U2NX2478LsyE4Ut6NrtdOQHnVVFgPlsuiQgTUfqgL5XCMQw4vz
       5vNH/vho0zTFoJjB68mos1xazWNYqC+QmKXcsFWeodct9l3F
       -----END CERTIFICATE-----
     ca_bundle: |
       -----BEGIN CERTIFICATE-----
       MIIE+zCCA+OgAwIBAgIQCHC8xa8/25Wakctq7u/kZTANBgkqhkiG9w0BAQsFADBl
       MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
       d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
       b3QgQ0EwHhcNMTQxMTE4MTIwMDAwWhcNMjQxMTE4MTIwMDAwWjBkMQswCQYDVQQG
       EwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJQW1zdGVyZGFt
       MQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wgQ0EgMzCCASIw
       DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMV2Dw/ZQyk7bG3RR63eEL8jwnio
       Snc18SNb4EweQefCMQC9iDdFdd25AhCAHo/tZCMERaegOTuBTc9jP8JJ/yKeiLDS
       lrlcinQfkioq8hLIt2hUtVhBgUBoBhpPhSn7tU08D08/QJYbzqjMXjX/ZJj1dd10
       VAWgNhEEEiRVY++Udy538RV27tOkWUUhn6i+0SftCuirOMo/h9Ha8Y+5Cx9E5+Ct
       85XCFk3shKM6ktTPxn3mvcsaQE+zVLHzj28NHuO+SaNW5Ae8jafOHbBbV1bRxBz8
       mGXRzUYvkZS/RYVJ+G1ShxwCVgEnFqtyLvRx5GG1IKD6JmlqCvGrn223zyUCAwEA
       AaOCAaYwggGiMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMHkG
       CCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu
       Y29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln
       aUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRw
       Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js
       MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk
       SURSb290Q0EuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo
       dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBRn/YggFCeYxwnS
       JRm76VERY3VQYjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
       hkiG9w0BAQsFAAOCAQEAqSg1esR71tonHqyYzyc2TxEydHTmQN0dzfJodzWvs4xd
       xgS/FfQjZ4u5b5cE60adws3J0aSugS7JurHogNAcyTnBVnZZbJx946nw09E02DxJ
       WYsamM6/xvLYMDX/6W9doK867mZTrqqMaci+mqege9iCSzMTyAfzd9fzZM2eY/lC
       J1OuEDOJcjcV8b73HjWizsMt8tey5gvHacDlH198aZt+ziYaM0TDuncFO7pdP0GJ
       +hY77gRuW6xWS++McPJKe1e9GW6LNgdUJi2GCZQfXzer8CM/jyxflp5HcahE3qm5
       hS+1NGClXwmgmkMd1L8tRNaN2v11y18WoA5hwnA9Ng==
       -----END CERTIFICATE-----
   stats_export_softwareheritage_org:
     certificate: |
       -----BEGIN CERTIFICATE-----
       MIIGtDCCBZygAwIBAgIQBdh1rlqVNqqDtC3ToOG6zjANBgkqhkiG9w0BAQ0FADBk
       MQswCQYDVQQGEwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJ
       QW1zdGVyZGFtMQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wg
       Q0EgMzAeFw0xNjA2MjAwMDAwMDBaFw0xOTA2MjUxMjAwMDBaMIHKMQswCQYDVQQG
       EwJGUjERMA8GA1UECBMIWXZlbGluZXMxFTATBgNVBAcTDFJvY3F1ZW5jb3VydDFJ
       MEcGA1UEChNASW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9y
       bWF0aXF1ZSBldCBlbiBBdXRvbWF0aXF1ZTEaMBgGA1UECxMRU29mdHdhcmUgSGVy
       aXRhZ2UxKjAoBgNVBAMTIXN0YXRzLmV4cG9ydC5zb2Z0d2FyZWhlcml0YWdlLm9y
       ZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOzz90M9R26tzSSGdU6w
       Hy4xXP9mInZvR4JWa4TYgSIosvC+N6pZpV1PM3ZWR3RlJ6Mn5yyQ3uNJQnuHeqEX
       X3Yq6xrloylgoE/bW+6rStv+MhCka7zkcbpZ900RMK6Uun7dlBxqW6+Y0e9Z0NZY
       7RW+R4w1MqcUR0kJ6pwM+bYIXtUkgpUi6aXLg7LhNoufkxcYnBDZe3GTYNeFdEUN
       /NjbqxVcLRO7DNTszwpLoT+6Dg0lmbu2/ZROJg0c+YYzIvWGiSCxkP0jlra6W8EO
       j9aXWp/7+lvX0qWsLNYxfnOb5QDQVDqbuIZuqjsFFgXgueS6cEJRWhgZaAeVeZif
       HidHLWdpGHlQgqG+EwE3iaLJPOrGQqtNUwk6DEJpyhQCu9Fc78irolk9eyccgfQr
       7YEuxN2yukFwutQy7QP1/6CWtCovwwNw0/l1vmbFd2hcOmyq/DzOXeBkAHo8e5+t
       EG+nN5Mk5vUI/OkQLO24/6IHge3uN2zXcDaqwAgQ/06TVCbdCrwzDFuhpt27EHDp
       PvpD/751z7axqrIemXM5lDXgnG7QbQHN74P1n+g3fkVljBuWF2L1mfXBDRogslPI
       VvYHql3QLIkHEvx2gTq/O2piVt3awlQqqXJmnURUMgf8acYfMc2QhFNmRIeorS1W
       z6LXHohQRiVvVhmjlVpPa7mXAgMBAAGjggH5MIIB9TAfBgNVHSMEGDAWgBRn/Ygg
       FCeYxwnSJRm76VERY3VQYjAdBgNVHQ4EFgQUb7Uzk+Q4+Zg/alPyn1AodsDoSbMw
       SwYDVR0RBEQwQoIhc3RhdHMuZXhwb3J0LnNvZnR3YXJlaGVyaXRhZ2Uub3Jngh1w
       ZXJnYW1vbi5zb2Z0d2FyZWhlcml0YWdlLm9yZzAOBgNVHQ8BAf8EBAMCBaAwHQYD
       VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMGsGA1UdHwRkMGIwL6AtoCuGKWh0
       dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9URVJFTkFTU0xDQTMuY3JsMC+gLaArhilo
       dHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVEVSRU5BU1NMQ0EzLmNybDBMBgNVHSAE
       RTBDMDcGCWCGSAGG/WwBATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdp
       Y2VydC5jb20vQ1BTMAgGBmeBDAECAjBuBggrBgEFBQcBAQRiMGAwJAYIKwYBBQUH
       MAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA4BggrBgEFBQcwAoYsaHR0cDov
       L2NhY2VydHMuZGlnaWNlcnQuY29tL1RFUkVOQVNTTENBMy5jcnQwDAYDVR0TAQH/
       BAIwADANBgkqhkiG9w0BAQ0FAAOCAQEAUjG+ZmlzgZwiXp5xJqdbG8EZ9Dh7+utY
       ZXkWlr2VsDzGNt9dLcht0FxfjozOoizpIdldLFkjW2OkNIQhChBpiLQ6gFn79B9/
       iNSZONQUpI1sqCLaOnOLbTHza0zi3Is+MBKjwxBVAcUERVjJbu5YSEm/Dle5IpUw
       S8K5A7iwFIBQywLOySvz9P1c+MFqMLackEmlVM+vnF6axqQtMgOhscM06GW5bZdy
       UnamhLXOIr+/Z9B+voB080qZZUn8DqFxP7og8au9IYKP5zLqTxTKayYX3qSXl+QT
       NpzEGsZavMjzG7fNmQ8bTnEimThnqLbLAcgqWMmy/LBFRvabwHan4w==
       -----END CERTIFICATE-----
     ca_bundle: |
       -----BEGIN CERTIFICATE-----
       MIIE+zCCA+OgAwIBAgIQCHC8xa8/25Wakctq7u/kZTANBgkqhkiG9w0BAQsFADBl
       MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
       d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
       b3QgQ0EwHhcNMTQxMTE4MTIwMDAwWhcNMjQxMTE4MTIwMDAwWjBkMQswCQYDVQQG
       EwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJQW1zdGVyZGFt
       MQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wgQ0EgMzCCASIw
       DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMV2Dw/ZQyk7bG3RR63eEL8jwnio
       Snc18SNb4EweQefCMQC9iDdFdd25AhCAHo/tZCMERaegOTuBTc9jP8JJ/yKeiLDS
       lrlcinQfkioq8hLIt2hUtVhBgUBoBhpPhSn7tU08D08/QJYbzqjMXjX/ZJj1dd10
       VAWgNhEEEiRVY++Udy538RV27tOkWUUhn6i+0SftCuirOMo/h9Ha8Y+5Cx9E5+Ct
       85XCFk3shKM6ktTPxn3mvcsaQE+zVLHzj28NHuO+SaNW5Ae8jafOHbBbV1bRxBz8
       mGXRzUYvkZS/RYVJ+G1ShxwCVgEnFqtyLvRx5GG1IKD6JmlqCvGrn223zyUCAwEA
       AaOCAaYwggGiMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMHkG
       CCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu
       Y29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln
       aUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRw
       Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js
       MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk
       SURSb290Q0EuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo
       dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBRn/YggFCeYxwnS
       JRm76VERY3VQYjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
       hkiG9w0BAQsFAAOCAQEAqSg1esR71tonHqyYzyc2TxEydHTmQN0dzfJodzWvs4xd
       xgS/FfQjZ4u5b5cE60adws3J0aSugS7JurHogNAcyTnBVnZZbJx946nw09E02DxJ
       WYsamM6/xvLYMDX/6W9doK867mZTrqqMaci+mqege9iCSzMTyAfzd9fzZM2eY/lC
       J1OuEDOJcjcV8b73HjWizsMt8tey5gvHacDlH198aZt+ziYaM0TDuncFO7pdP0GJ
       +hY77gRuW6xWS++McPJKe1e9GW6LNgdUJi2GCZQfXzer8CM/jyxflp5HcahE3qm5
       hS+1NGClXwmgmkMd1L8tRNaN2v11y18WoA5hwnA9Ng==
       -----END CERTIFICATE-----
 
 bind::update_key: local-update
 
 bind::zones:
   internal.softwareheritage.org:
     domain: internal.softwareheritage.org
   100.168.192.in-addr.arpa:
     domain: 100.168.192.in-addr.arpa
   101.168.192.in-addr.arpa:
     domain: 101.168.192.in-addr.arpa
 
 bind::zones::default_data:
   zone_type: master
   dynamic: true
   masters: ''
   transfer_source: ''
   allow_updates: []
   update_policies: ''
   allow_transfers: ''
   dnssec: false
   key_directory: ''
   ns_notify: true
   also_notify: ''
   allow_notify: ''
   forwarders: ''
   forward: ''
   source: ''
 
 bind::resource_records:
   internal/NS:
     type: NS
     record: internal.softwareheritage.org
     data: pergamon.internal.softwareheritage.org.
   100/NS:
     type: NS
     record: 101.168.192.in-addr.arpa
     data: pergamon.internal.softwareheritage.org.
   101/NS:
     type: NS
     record: 101.168.192.in-addr.arpa
     data: pergamon.internal.softwareheritage.org.
   db/CNAME:
     type: CNAME
     record: db.internal.softwareheritage.org
     data: prado.internal.softwareheritage.org.
   debian/CNAME:
     type: CNAME
     record: debian.internal.softwareheritage.org
     data: pergamon.internal.softwareheritage.org.
   backup/CNAME:
     type: CNAME
     record: backup.internal.softwareheritage.org
     data: banco.internal.softwareheritage.org.
   banco/A:
     record: banco.internal.softwareheritage.org
     data: 192.168.100.18
   beaubourg/A:
     record: beaubourg.internal.softwareheritage.org
     data: 192.168.100.32
   icinga/CNAME:
     type: CNAME
     record: icinga.internal.softwareheritage.org
     data: pergamon.internal.softwareheritage.org.
   faitout/CNAME:
     type: CNAME
     record: faitout.internal.softwareheritage.org
     data: prado.internal.softwareheritage.org.
 # VPN hosts
   zack/A:
     record: zack.internal.softwareheritage.org
     data: 192.168.101.6
   olasd/A:
     record: olasd.internal.softwareheritage.org
     data: 192.168.101.10
   ardumont/A:
     record: ardumont.internal.softwareheritage.org
     data: 192.168.101.14
   rdicosmo/A:
     record: rdicosmo.internal.softwareheritage.org
     data: 192.168.101.38
   petit-palais/A:
     record: petit-palais.internal.softwareheritage.org
     data: 192.168.101.58
   petitpalais/CNAME:
     type: CNAME
     record: petitpalais.internal.softwareheritage.org
     data: petit-palais.internal.softwareheritage.org.
   grand-palais/A:
     record: grand-palais.internal.softwareheritage.org
     data: 192.168.101.62
   grandpalais/CNAME:
     type: CNAME
     record: grandpalais.internal.softwareheritage.org
     data: grand-palais.internal.softwareheritage.org.
   worker01-euwest/A:
     type: A
     record: worker01.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.4
   worker02-euwest/A:
     type: A
     record: worker02.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.5
   worker03-euwest/A:
     type: A
     record: worker03.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.6
   worker04-euwest/A:
     type: A
     record: worker04.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.7
   worker05-euwest/A:
     type: A
     record: worker05.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.8
   worker06-euwest/A:
     type: A
     record: worker06.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.9
   worker07-euwest/A:
     type: A
     record: worker07.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.10
   worker08-euwest/A:
     type: A
     record: worker08.euwest.azure.internal.softwareheritage.org
     data: 192.168.200.11
 
 bind::resource_records::default_data:
   type: A
 
 bind::forwarders:
   - 193.51.196.130
   - 193.51.196.131
 
 bind::clients:
   - 192.168.100.0/24
   - 192.168.101.0/24
   - 192.168.200.0/21
   - 127.0.0.0/8
   - '::1/128'
 
 bind::autogenerate:
   '192.168.100.0/24': internal.softwareheritage.org
 
 dar::backup::storage: /srv/backups
 dar::backup::num_backups: 1
 dar::backup::base: /
 dar::backup::select: [] # empty list = full backup
 dar::backup::exclude:
  - dev
  - proc
  - run
  - srv/backups
  - srv/remote-backups
  - srv/softwareheritage/objects
  - srv/storage
  - sys
  - tmp
  - var/cache
  - var/run
  - var/tmp
 dar::backup::options:
  - -zbzip2
 
 dar::cron::hour: 0
 dar::cron::minute: fqdn_rand
 dar::cron::month: '*'
 dar::cron::monthday: '*'
 dar::cron::weekday: '*'
 
 dar_server::backup::storage: /srv/remote-backups
 dar_server::cron::hour: '0-4'
 dar_server::cron::minute: '*/10'
 dar_server::cron::month: '*'
 dar_server::cron::monthday: '*'
 dar_server::cron::weekday: '*'
 
 phabricator::basepath: /srv/phabricator
 phabricator::user: phabricator
 phabricator::vcs_user: git
 
 phabricator::notification::client_host: 127.0.0.1
 phabricator::notification::client_port: 22280
 phabricator::notification::listen: "%{hiera('phabricator::notification::client_host')}:%{hiera('phabricator::notification::client_port')}"
 
 phabricator::mysql::database_prefix: phabricator
 phabricator::mysql::username: phabricator
 
 phabricator::mysql::conf::max_allowed_packet: 33554432
 phabricator::mysql::conf::sql_mode: STRICT_ALL_TABLES
 phabricator::mysql::conf::ft_stopword_file: "%{hiera('phabricator::basepath')}/phabricator/resources/sql/stopwords.txt"
 phabricator::mysql::conf::ft_min_word_len: 3
 phabricator::mysql::conf::ft_boolean_syntax: "' |-><()~*:\"\"&^'"
 phabricator::mysql::conf::innodb_buffer_pool_size: 4G
 phabricator::mysql::conf::innodb_file_per_table: TRUE
 phabricator::mysql::conf::innodb_flush_method: O_DIRECT
 phabricator::mysql::conf::innodb_log_file_size: 1G
 
 phabricator::php::fpm_listen: 127.0.0.1:9001
 phabricator::php::max_file_size: 128M
 phabricator::php::opcache_validate_timestamps: 0
 
 phabricator::vhost::name: forge.softwareheritage.org
 phabricator::vhost::docroot: "%{hiera('phabricator::basepath')}/phabricator/webroot"
 phabricator::vhost::ssl_protocol: "%{hiera('apache::ssl_protocol')}"
 phabricator::vhost::ssl_honorcipherorder: "%{hiera('apache::ssl_honorcipherorder')}"
 phabricator::vhost::ssl_cipher: "%{hiera('apache::ssl_cipher')}"
 phabricator::vhost::hsts_header: "%{hiera('apache::hsts_header')}"
 
 mediawiki::php::fpm_listen: 127.0.0.1:9002
 
 mediawiki::vhosts:
   intranet.softwareheritage.org:
     swh_logo: /images/9/99/Swh-intranet-logo.png
     mysql:
       username: mediawiki
       dbname: mediawiki
     aliases: []
   wiki.softwareheritage.org:
     swh_logo: /images/b/b2/Swh-logo.png
     mysql:
       username: mediawiki_wg
       dbname: mediawiki_wg
     aliases: []
 
 mediawiki::vhost::docroot: /var/lib/mediawiki
 mediawiki::vhost::ssl_protocol: "%{hiera('apache::ssl_protocol')}"
 mediawiki::vhost::ssl_honorcipherorder: "%{hiera('apache::ssl_honorcipherorder')}"
 mediawiki::vhost::ssl_cipher: "%{hiera('apache::ssl_cipher')}"
 mediawiki::vhost::hsts_header: "%{hiera('apache::hsts_header')}"
 
 annex::basepath: /srv/softwareheritage/annex
 annex::vhost::name: annex.softwareheritage.org
 annex::vhost::docroot: "%{hiera('annex::basepath')}/webroot"
 annex::vhost::ssl_protocol: "%{hiera('apache::ssl_protocol')}"
 annex::vhost::ssl_honorcipherorder: "%{hiera('apache::ssl_honorcipherorder')}"
 annex::vhost::ssl_cipher: "%{hiera('apache::ssl_cipher')}"
 annex::vhost::hsts_header: "%{hiera('apache::hsts_header')}"
 
 ssh::port: 22
 
 swh::base_directory: /srv/softwareheritage
 swh::conf_directory: /etc/softwareheritage
 swh::log_directory: /var/log/softwareheritage
 swh::global_conf::file: "%{hiera('swh::conf_directory')}/global.ini"
 swh::global_conf::contents: |
   # Managed by puppet (class profile::swh) - modifications will be overwritten
   [main]
   log_db = host=db dbname=softwareheritage-log user=guest
 
 swh::apt_config::swh_repository::hostname: debian.internal.softwareheritage.org
 swh::apt_config::swh_repository::basepath: "%{hiera('swh::base_directory')}/repository"
 swh::apt_config::swh_repository: "http://%{hiera('swh::apt_config::swh_repository::hostname')}/"
 
 swh::apt_config::debian_mirror::hostname: deb.debian.org
 swh::apt_config::debian_mirror: "http://%{hiera('swh::apt_config::debian_mirror::hostname')}/debian/"
 
 swh::apt_config::debian_security_mirror::hostname: "%{hiera('swh::apt_config::debian_mirror::hostname')}"
 swh::apt_config::debian_security_mirror: "http://%{hiera('swh::apt_config::debian_mirror::hostname')}/debian-security/"
 
 swh::apt_config::azure_repository::hostname: debian-archive.trafficmanager.net
 swh::apt_config::azure_repository: "http://%{hiera('swh::apt_config::azure_repository::hostname')}/debian-azure/"
 
 swh::deploy::directory: "%{hiera('swh::conf_directory')}/deploy"
 swh::deploy::group: swhdeploy
 swh::deploy::public_key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWrJX/uUss/EYZaTp2EIsZgg3ZSH8JcNZV5gBdNZ7EHcQcqxYUCqmwv9Ss3xT8n9kIrH6iz/vquqf84XR+keoZK3bsp50tMOY8LJWpcl/JK2XD6ovoJrHPu+iAroLkE59RdTa1Vz+jF67Q2UuG9f0nKwL4rnkeWTyuK/zAbyHyYKFQntkkwMr5/YTU8sjl/4aNF/2Ww8hitdi2GORlCjav2bB0wyPBA2e8sMt8Hp9O4TIWg/RD6vPX+ZvuFaB/Lw/Hv21622QGTHoZiO92/8/W9/t24il6SU4z96ZGfXqdUZkpPYKBGwyIkZkS4dN6jb4CcRlyXTObphyu3dAlABRt swhworker@worker01'
 
 swh::deploy::storage::conf_directory: "%{hiera('swh::conf_directory')}/storage"
 swh::deploy::storage::conf_file: "%{hiera('swh::deploy::storage::conf_directory')}/storage.ini"
 swh::deploy::storage::user: swhstorage
 swh::deploy::storage::group: swhstorage
 swh::deploy::storage::db::host: db
 swh::deploy::storage::db::user: swhstorage
 swh::deploy::storage::db::dbname: softwareheritage
 swh::deploy::storage::directory: "%{hiera('swh::base_directory')}/objects"
 swh::deploy::storage::uwsgi::listen: 127.0.0.1:5002
 swh::deploy::storage::uwsgi::workers: 4
 swh::deploy::storage::uwsgi::max_requests: 32
 swh::deploy::storage::uwsgi::max_requests_delta: 4
 swh::deploy::storage::uwsgi::reload_mercy: 3600
 swh::deploy::storage::uwsgi::http_workers: 1
 swh::deploy::storage::uwsgi::http_keepalive: 1
 swh::deploy::storage::uwsgi::http_timeout: 100000
 
 swh::deploy::storage_listener::conf_directory: "%{hiera('swh::conf_directory')}/storage"
 swh::deploy::storage_listener::conf_file: "%{hiera('swh::deploy::storage_listener::conf_directory')}/listener.ini"
 swh::deploy::storage_listener::user: swhstorage
 swh::deploy::storage_listener::group: swhstorage
 swh::deploy::storage_listener::database: host=db user=guest dbname=softwareheritage
 swh::deploy::storage_listener::topic_prefix: swh.tmp_journal.new
 swh::deploy::storage_listener::kafka_brokers:
   - getty.internal.softwareheritage.org
 swh::deploy::storage_listener::poll_timeout: 10
 
 swh::deploy::objstorage::conf_directory: "%{hiera('swh::conf_directory')}/objstorage"
 swh::deploy::objstorage::conf_file: "%{hiera('swh::deploy::objstorage::conf_directory')}/objstorage.ini"
 swh::deploy::objstorage::user: "%{hiera('swh::deploy::storage::user')}"
 swh::deploy::objstorage::group: "%{hiera('swh::deploy::storage::group')}"
 swh::deploy::objstorage::directory: "%{hiera('swh::deploy::storage::directory')}"
 swh::deploy::objstorage::slicing: 0:2/2:4/4:6
 swh::deploy::objstorage::uwsgi::listen: 127.0.0.1:5003
 swh::deploy::objstorage::uwsgi::workers: "%{hiera('swh::deploy::storage::uwsgi::workers')}"
 swh::deploy::objstorage::uwsgi::max_requests: "%{hiera('swh::deploy::storage::uwsgi::max_requests')}"
 swh::deploy::objstorage::uwsgi::max_requests_delta: "%{hiera('swh::deploy::storage::uwsgi::max_requests_delta')}"
 swh::deploy::objstorage::uwsgi::reload_mercy: "%{hiera('swh::deploy::storage::uwsgi::reload_mercy')}"
 swh::deploy::objstorage::uwsgi::http_workers: "%{hiera('swh::deploy::storage::uwsgi::http_workers')}"
 swh::deploy::objstorage::uwsgi::http_keepalive: "%{hiera('swh::deploy::storage::uwsgi::http_keepalive')}"
 swh::deploy::objstorage::uwsgi::http_timeout: "%{hiera('swh::deploy::storage::uwsgi::http_timeout')}"
 
 swh::deploy::objstorage_log_checker::conf_directory: "%{hiera('swh::deploy::objstorage::conf_directory')}"
 swh::deploy::objstorage_log_checker::conf_file: "%{hiera('swh::deploy::objstorage_log_checker::conf_directory')}/log_checker.yml"
 swh::deploy::objstorage_log_checker::user: "%{hiera('swh::deploy::objstorage::user')}"
 swh::deploy::objstorage_log_checker::group: "%{hiera('swh::deploy::objstorage::group')}"
 swh::deploy::objstorage_log_checker::directory: "%{hiera('swh::deploy::objstorage::directory')}"
 swh::deploy::objstorage_log_checker::slicing: "%{hiera('swh::deploy::objstorage::slicing')}"
 swh::deploy::objstorage_log_checker::class: pathslicing
 swh::deploy::objstorage_log_checker::batch_size: 1000
 swh::deploy::objstorage_log_checker::log_tag: objstorage.checker.log
 
 swh::deploy::objstorage_repair_checker::conf_directory: "%{hiera('swh::deploy::objstorage::conf_directory')}"
 swh::deploy::objstorage_repair_checker::conf_file: "%{hiera('swh::deploy::objstorage_repair_checker::conf_directory')}/repair_checker.yml"
 swh::deploy::objstorage_repair_checker::user: "%{hiera('swh::deploy::objstorage::user')}"
 swh::deploy::objstorage_repair_checker::group: "%{hiera('swh::deploy::objstorage::group')}"
 swh::deploy::objstorage_repair_checker::directory: "%{hiera('swh::deploy::objstorage::directory')}"
 swh::deploy::objstorage_repair_checker::slicing: "%{hiera('swh::deploy::objstorage::slicing')}"
 swh::deploy::objstorage_repair_checker::class: pathslicing
 swh::deploy::objstorage_repair_checker::batch_size: 1000
 swh::deploy::objstorage_repair_checker::log_tag: objstorage.checker.repair
 
 swh::deploy::objstorage_archive_notifier_checker::conf_directory: "%{hiera('swh::deploy::objstorage::conf_directory')}"
 swh::deploy::objstorage_archive_notifier_checker::conf_file: "%{hiera('swh::deploy::objstorage_archive_notifier_checker::conf_directory')}/archive_notifier_checker.yml"
 swh::deploy::objstorage_archive_notifier_checker::user: "%{hiera('swh::deploy::objstorage::user')}"
 swh::deploy::objstorage_archive_notifier_checker::group: "%{hiera('swh::deploy::objstorage::group')}"
 swh::deploy::objstorage_archive_notifier_checker::directory: "%{hiera('swh::deploy::objstorage::directory')}"
 swh::deploy::objstorage_archive_notifier_checker::slicing: "%{hiera('swh::deploy::objstorage::slicing')}"
 swh::deploy::objstorage_archive_notifier_checker::class: pathslicing
 swh::deploy::objstorage_archive_notifier_checker::batch_size: 1000
 swh::deploy::objstorage_archive_notifier_checker::log_tag: objstorage.checker.archive_notifier
 swh::deploy::objstorage_archive_notifier_checker::storage_name: this-must-be-overriden-on-a-host-basis
 swh::deploy::objstorage_archive_notifier_checker::db::host: "%{hiera('swh::deploy::worker::swh_storage_archiver::db::host')}"
 swh::deploy::objstorage_archive_notifier_checker::db::dbname: "%{hiera('swh::deploy::worker::swh_storage_archiver::db::dbname')}"
 swh::deploy::objstorage_archive_notifier_checker::db::user: "%{hiera('swh::deploy::worker::swh_storage_archiver::db::user')}"
 swh::deploy::objstorage_archive_notifier_checker::db::password: "%{hiera('swh::deploy::worker::swh_storage_archiver::db::password')}"
 
 swh::deploy::webapp::conf_directory: "%{hiera('swh::conf_directory')}/webapp"
 swh::deploy::webapp::conf_file: "%{hiera('swh::deploy::webapp::conf_directory')}/webapp.ini"
 swh::deploy::webapp::user: swhwebapp
 swh::deploy::webapp::group: swhwebapp
 swh::deploy::webapp::conf::storage_class: remote_storage
 swh::deploy::webapp::conf::storage_args: http://127.0.0.1:5002/
 swh::deploy::webapp::conf::log_dir: "%{hiera('swh::log_directory')}/webapp"
 swh::deploy::webapp::uwsgi::listen: 127.0.0.1:5003
 swh::deploy::webapp::uwsgi::protocol: uwsgi
 swh::deploy::webapp::uwsgi::workers: 4
 swh::deploy::webapp::uwsgi::max_requests: 32
 swh::deploy::webapp::uwsgi::max_requests_delta: 4
 swh::deploy::webapp::uwsgi::reload_mercy: 3600
 swh::deploy::webapp::vhost::name: archive.softwareheritage.org
 swh::deploy::webapp::vhost::aliases:
   - base.softwareheritage.org
 swh::deploy::webapp::vhost::docroot: "/var/www/%{hiera('swh::deploy::webapp::vhost::name')}"
 swh::deploy::webapp::vhost::ssl_protocol: "%{hiera('apache::ssl_protocol')}"
 swh::deploy::webapp::vhost::ssl_honorcipherorder: "%{hiera('apache::ssl_honorcipherorder')}"
 swh::deploy::webapp::vhost::ssl_cipher: "%{hiera('apache::ssl_cipher')}"
 swh::deploy::webapp::vhost::hsts_header: "%{hiera('apache::hsts_header')}"
 swh::deploy::webapp::open_endpoints:
   - /flask-api/
   - /api/1/stat/counters/
   - /api/1/content/search/
 
 swh::deploy::scheduler::conf_file: "%{hiera('swh::conf_directory')}/scheduler.ini"
 swh::deploy::scheduler::user: swhscheduler
 swh::deploy::scheduler::group: swhscheduler
 swh::deploy::scheduler::db::host: db
 swh::deploy::scheduler::db::dbname: softwareheritage-scheduler
 swh::deploy::scheduler::db::user: swhscheduler
 # swh::deploy::scheduler::db::password in private data
 swh::deploy::scheduler::database: "host=%{hiera('swh::deploy::scheduler::db::host')} dbname=%{hiera('swh::deploy::scheduler::db::dbname')} user=%{hiera('swh::deploy::scheduler::db::user')} password=%{hiera('swh::deploy::scheduler::db::password')}"
 # swh::deploy::scheduler::task_broker in private data
 swh::deploy::scheduler::task_packages:
   - python3-swh.loader.git
   - python3-swh.loader.dir
   - python3-swh.loader.tar
   - python3-swh.lister.github
 swh::deploy::scheduler::task_modules:
   - swh.loader.git.tasks
   - swh.loader.dir.tasks
   - swh.loader.tar.tasks
   - swh.lister.github.tasks
 
 swh::deploy::worker::instances:
   - swh_loader_git
   - swh_lister_github
 
 swh::deploy::worker::swh_loader_git::concurrency: 6
 swh::deploy::worker::swh_loader_git::loglevel: info
 # Contains a password: in private data
 swh::deploy::worker::swh_loader_git::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_loader_git::config:
   storage_class: remote_storage
   storage_args: http://uffizi.internal.softwareheritage.org:5002/
   save_data: true
   save_data_path: /srv/storage/space/data/sharded_packfiles
 
+swh::deploy::worker::swh_loader_svn::concurrency: 1
+swh::deploy::worker::swh_loader_svn::loglevel: info
+# Contains a password: in private data
+swh::deploy::worker::swh_loader_svn::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
+swh::deploy::worker::swh_loader_svn::config:
+  storage_class: remote_storage
+  storage_args: http://uffizi.internal.softwareheritage.org:5002/
+  send_contents: true
+  send_directories: true
+  send_revisions: true
+  send_releases: true
+  send_occurrences: true
+  content_packet_size: 1000
+  content_packet_block_size_bytes: 104857600
+  content_packet_size_bytes: 1073741824
+  directory_packet_size: 250
+  revision_packet_size: 100
+  release_packet_size: 100
+  occurrence_packet_size: 100
+
 swh::deploy::worker::swh_reader_git::concurrency: 6
 swh::deploy::worker::swh_reader_git::loglevel: info
 # Contains a password: in private data
 swh::deploy::worker::swh_reader_git::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_reader_git::config:
   storage_class: remote_storage
   storage_args: http://uffizi.internal.softwareheritage.org:5002/
   send_contents: False
   send_directories: False
   send_revisions: False
   send_releases: False
   send_occurrences: False
   pack_size_bytes: 274877906944
   pack_storage_base: ''
   next_task:
     queue: 'swh.storage.archiver.tasks.SWHArchiverToBackendTask'
     batch_size: 100
     destination: azure
     pack_storage_base: ''
 
 swh::deploy::worker::swh_provenance_cache::concurrency: 1
 swh::deploy::worker::swh_provenance_cache::loglevel: info
 # Contains a password: in private data
 swh::deploy::worker::swh_provenance_cache::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_provenance_cache::config:
   storage:
     cls: remote_storage
     args:
       - http://uffizi.internal.softwareheritage.org:5002/
   revision_packet_size: 100
 
 swh::deploy::worker::swh_lister_github::concurrency: 1
 swh::deploy::worker::swh_lister_github::loglevel: warning
 # Contains a password: in private data
 swh::deploy::worker::swh_lister_github::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_lister_github::db::host: db
 swh::deploy::worker::swh_lister_github::db::dbname: lister-github
 swh::deploy::worker::swh_lister_github::db::user: lister-github
 #swh::deploy::worker::swh_lister_github::db::password in private data
 swh::deploy::worker::swh_lister_github::config:
   storage_class: remote_storage
   storage_args:
     - http://uffizi.internal.softwareheritage.org:5002/
   scheduling_db: "%{hiera('swh::deploy::scheduler::database')}"
   lister_db_url: "postgresql://%{hiera('swh::deploy::worker::swh_lister_github::db::user')}:%{hiera('swh::deploy::worker::swh_lister_github::db::password')}@%{hiera('swh::deploy::worker::swh_lister_github::db::host')}/%{hiera('swh::deploy::worker::swh_lister_github::db::dbname')}"
   # credentials in private data
 
 swh::deploy::worker::swh_storage_archiver::conf_directory: "%{hiera('swh::conf_directory')}/archiver"
 swh::deploy::worker::swh_storage_archiver::conf_file: "%{hiera('swh::deploy::worker::swh_storage_archiver::conf_directory')}/worker.yml"
 swh::deploy::worker::swh_storage_archiver::archival_max_age: 3600
 swh::deploy::worker::swh_storage_archiver::retention_policy: 2
 swh::deploy::worker::swh_storage_archiver::batch_max_size: 1000
 swh::deploy::worker::swh_storage_archiver::db::host: db
 swh::deploy::worker::swh_storage_archiver::db::dbname: softwareheritage-archiver
 swh::deploy::worker::swh_storage_archiver::db::user: "%{hiera('swh::deploy::storage::db::user')}"
 swh::deploy::worker::swh_storage_archiver::db::password: "%{hiera('swh::deploy::storage::db::password')}"
 swh::deploy::worker::swh_storage_archiver::storages:
   - host: uffizi
     cls: pathslicing
     args:
       root: "%{hiera('swh::deploy::storage::directory')}"
       slicing: "%{hiera('swh::deploy::objstorage::slicing')}"
   - host: banco
     cls: remote
     args:
       base_url: http://banco.internal.softwareheritage.org:5003/
 
 swh::deploy::worker::swh_storage_archiver::concurrency: 10
 swh::deploy::worker::swh_storage_archiver::loglevel: info
 # Contains a password: in private data
 swh::deploy::worker::swh_storage_archiver::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_storage_archiver::config:
   archival_max_age: "%{hiera('swh::deploy::worker::swh_storage_archiver::archival_max_age')}"
   retention_policy: "%{hiera('swh::deploy::worker::swh_storage_archiver::retention_policy')}"
   batch_max_size: "%{hiera('swh::deploy::worker::swh_storage_archiver::batch_max_size')}"
   dbconn: "host=%{hiera('swh::deploy::worker::swh_storage_archiver::db::host')} user=%{hiera('swh::deploy::worker::swh_storage_archiver::db::user')}  dbname=%{hiera('swh::deploy::worker::swh_storage_archiver::db::dbname')} password=%{hiera('swh::deploy::worker::swh_storage_archiver::db::password')}"
 
 
 swh::deploy::worker::swh_storage_archiver_azure::conf_file: "%{hiera('swh::deploy::worker::swh_storage_archiver::conf_directory')}/worker-to-backend.yml"
 swh::deploy::worker::swh_storage_archiver_azure::concurrency: 10
 swh::deploy::worker::swh_storage_archiver_azure::loglevel: info
 # Contains a password: in private data
 swh::deploy::worker::swh_storage_archiver_azure::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_storage_archiver_azure::config:
   batch_max_size: "%{hiera('swh::deploy::worker::swh_storage_archiver::batch_max_size')}"
   source: uffizi
   destination: azure
   force_copy: false
   dbconn: "host=%{hiera('swh::deploy::worker::swh_storage_archiver::db::host')} user=%{hiera('swh::deploy::worker::swh_storage_archiver::db::user')}  dbname=%{hiera('swh::deploy::worker::swh_storage_archiver::db::dbname')} password=%{hiera('swh::deploy::worker::swh_storage_archiver::db::password')}"
   next_task:
     queue: swh.indexer.tasks.SWHOrchestratorAllContentsTask
     batch_size: 10
 
 swh::azure_objstorage::config:
   cls: multiplexer
   args:
     objstorages:
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 0euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::0euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 0
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 1euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::1euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 1
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 2euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::2euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 2
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 3euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::3euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 3
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 4euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::4euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 4
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 5euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::5euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 5
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 6euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::6euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 6
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 7euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::7euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 7
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 8euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::8euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 8
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: 9euwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::9euwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: 9
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: aeuwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::aeuwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: a
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: beuwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::beuwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: b
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: ceuwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::ceuwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: c
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: deuwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::deuwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: d
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: eeuwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::eeuwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: e
       - cls: filtered
         args:
           storage_conf:
             cls: azure-storage
             args:
               account_name: feuwestswh
               api_secret_key: "%{hiera('swh::azure::credentials::feuwestswh')}"
               container_name: contents
           filters_conf:
             - type: prefix
               prefix: f
 
 
 swh::deploy::worker::swh_indexer::orchestrator::concurrency: 2
 swh::deploy::worker::swh_indexer::orchestrator::loglevel: info
 swh::deploy::worker::swh_indexer::orchestrator::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_indexer::orchestrator::config:
   indexers:
     - mimetype
   check_presence: false
 
 swh::deploy::worker::swh_indexer::orchestrator_text::concurrency: 2
 swh::deploy::worker::swh_indexer::orchestrator_text::loglevel: info
 swh::deploy::worker::swh_indexer::orchestrator_text::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_indexer::orchestrator_text::config:
   indexers:
     - language
     - ctags
     - fossology_license
   check_presence: false
 
 swh::deploy::worker::swh_indexer::base::concurrency: 2
 swh::deploy::worker::swh_indexer::base::loglevel: info
 # Contains a password: in private data
 swh::deploy::worker::swh_indexer::base::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 # objstorage configuration from swh::azure_objstorage::config is merged in the manifest
 swh::deploy::worker::swh_indexer::base::config:
   storage:
     cls: remote_storage
     args:
       - http://uffizi.internal.softwareheritage.org:5002/
 
 swh::deploy::worker::swh_indexer::mimetype::concurrency: 2
 swh::deploy::worker::swh_indexer::mimetype::loglevel: "%{hiera('swh::deploy::worker::swh_indexer::base::loglevel')}"
 # Contains a password: in private data
 swh::deploy::worker::swh_indexer::mimetype::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 # objstorage configuration from swh::azure_objstorage::config is merged in the manifest
 swh::deploy::worker::swh_indexer::mimetype::config:
   storage:
     cls: remote_storage
     args:
       - http://uffizi.internal.softwareheritage.org:5002/
   workdir: /tmp/swh/indexer.mimetype/
   tool:
     name: file
     version: 5.22
     command: file
 
 swh::deploy::worker::swh_indexer::fossology_license::concurrency: 2
 swh::deploy::worker::swh_indexer::fossology_license::loglevel: "%{hiera('swh::deploy::worker::swh_indexer::base::loglevel')}"
 # Contains a password: in private data
 swh::deploy::worker::swh_indexer::fossology_license::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 # objstorage configuration from swh::azure_objstorage::config is merged in the manifest
 swh::deploy::worker::swh_indexer::fossology_license::config:
   storage:
     cls: remote_storage
     args:
       - http://uffizi.internal.softwareheritage.org:5002/
   workdir: /tmp/swh/indexer.fossology.license/
   tool:
     name: nomos
     version: 3.1.0rc2-31-ga2cbb8c
     command: /usr/bin/nomossa
 
 swh::deploy::worker::swh_indexer::language::concurrency: 2
 swh::deploy::worker::swh_indexer::language::loglevel: "%{hiera('swh::deploy::worker::swh_indexer::base::loglevel')}"
 # Contains a password: in private data
 swh::deploy::worker::swh_indexer::language::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 swh::deploy::worker::swh_indexer::language::config:
   storage:
     cls: remote_storage
     args:
       - http://uffizi.internal.softwareheritage.org:5002/
   workdir: /tmp/swh/indexer.language/
   tool:
     name: pygments
     version: 2.0.1+dfsg-1.1+deb8u1
 
 swh::deploy::worker::swh_indexer::ctags::concurrency: 2
 swh::deploy::worker::swh_indexer::ctags::loglevel: "%{hiera('swh::deploy::worker::swh_indexer::base::loglevel')}"
 # Contains a password: in private data
 swh::deploy::worker::swh_indexer::ctags::task_broker: "%{hiera('swh::deploy::worker::task_broker')}"
 # objstorage configuration from swh::azure_objstorage::config is merged in the manifest
 swh::deploy::worker::swh_indexer::ctags::config:
   storage:
     cls: remote_storage
     args:
       - http://uffizi.internal.softwareheritage.org:5002/
   workdir: /tmp/swh/indexer.ctags/
   tool:
     name: universal-ctags
     version: ~git7859817b
     command: /usr/bin/ctags
   languages:
     abap: ''
     abnf: ''
     actionscript: ''
     actionscript-3: ''
     ada: Ada
     adl: ''
     agda: ''
     alloy: ''
     ambienttalk: ''
     antlr: ''
     antlr-with-actionscript-target: ''
     antlr-with-c#-target: ''
     antlr-with-cpp-target: ''
     antlr-with-java-target: ''
     antlr-with-objectivec-target: ''
     antlr-with-perl-target: ''
     antlr-with-python-target: ''
     antlr-with-ruby-target: ''
     apacheconf: ''
     apl: ''
     applescript: ''
     arduino: ''
     aspectj: ''
     aspx-cs: ''
     aspx-vb: ''
     asymptote: ''
     autohotkey: ''
     autoit: ''
     awk: Awk
     base-makefile: Make
     bash: Sh
     bash-session: Sh
     batchfile: DosBatch
     bbcode: ''
     bc: ''
     befunge: ''
     blitzbasic: Basic
     blitzmax: ''
     bnf: ''
     boo: ''
     boogie: ''
     brainfuck: ''
     bro: ''
     bugs: ''
     c: C
     c#: C#
     c++: C++
     c-objdump: asm
     ca65-assembler: asm
     cadl: ''
     camkes: ''
     cbm-basic-v2: ''
     ceylon: Java
     cfengine3: ''
     cfstatement: ''
     chaiscript: ''
     chapel: ''
     cheetah: ''
     cirru: ''
     clay: ''
     clojure: Clojure
     clojurescript: Clojure
     cmake: Make
     cobol: Cobol
     cobolfree: Cobol
     coffeescript: CoffeeScript
     coldfusion-cfc: HTML
     coldfusion-html: HTML
     common-lisp: Lisp
     component-pascal: Pascal
     coq: ''
     cpp-objdump: Asm
     cpsa: ''
     crmsh: Sh
     croc: ''
     cryptol: ''
     csound-document: ''
     csound-orchestra: ''
     csound-score: ''
     css: CSS
     css+django/jinja: CSS
     css+genshi-text: CSS
     css+lasso: CSS
     css+mako: CSS
     css+mozpreproc: CSS
     css+myghty: CSS
     css+php: CSS
     css+ruby: CSS
     css+smarty: CSS
     cuda: ''
     cypher: ''
     cython: Python
     d: D
     d-objdump: Asm
     darcs-patch: Diff
     dart: ''
     debian-control-file: ''
     debian-sourcelist: ''
     delphi: ''
     dg: ''
     diff: Diff
     django/jinja: Python
     docker: Iniconf
     dtd: ''
     duel: ''
     dylan: ''
     dylan-session: ''
     dylanlid: ''
     earl-grey: ''
     easytrieve: ''
     ebnf: ''
     ec: ''
     ecl: ''
     eiffel: Eiffel
     elixir: ''
     elixir-iex-session: ''
     elm: ''
     emacslisp: Lisp
     embedded-ragel: ''
     erb: Ruby
     erlang: Erlang
     erlang-erl-session: Erlang
     evoque: ''
     ezhil: ''
     factor: ''
     fancy: ''
     fantom: ''
     felix: ''
     fish: ''
     fortran: Fortran
     fortranfixed: Fortran
     nfoxpro: ''
     fsharp: Ocaml
     gap: ''
     gas: ''
     genshi: ''
     genshi-text: ''
     gettext-catalog: ''
     gherkin: ''
     glsl: ''
     gnuplot: ''
     go: Go
     golo: ''
     gooddata-cl: ''
     gosu: ''
     gosu-template: ''
     groff: ''
     groovy: ''
     haml: ''
     handlebars: ''
     haskell: ''
     haxe: ''
     hexdump: ''
     html: HTML
     html+cheetah: HTML
     html+django/jinja: HTML
     html+evoque: HTML
     html+genshi: HTML
     html+handlebars: HTML
     html+lasso: HTML
     html+mako: HTML
     html+myghty: HTML
     html+php: HTML
     html+smarty: HTML
     html+twig: HTML
     html+velocity: HTML
     http: ''
     hxml: ''
     hy: Lisp
     hybris: ''
     idl: ''
     idris: ''
     igor: ''
     inform-6: ''
     inform-6-template: ''
     inform-7: ''
     ini: Iniconf
     io: ''
     ioke: ''
     irc-logs: ''
     isabelle: ''
     j: ''
     jade: ''
     jags: ''
     jasmin: ''
     java: Java
     java-server-page: Java
     javascript: JavaScript
     javascript+cheetah: JavaScript
     javascript+django/jinja: JavaScript
     javascript+genshi-text: JavaScript
     javascript+lasso: JavaScript
     javascript+mako: JavaScript
     javascript+mozpreproc: JavaScript
     javascript+myghty: JavaScript
     javascript+php: JavaScript
     javascript+ruby: JavaScript
     javascript+smarty: JavaScript
     jcl: ''
     json: JSON
     json-ld: JSON
     julia: ''
     julia-console: ''
     kal: ''
     kconfig: ''
     koka: ''
     kotlin: ''
     lasso: ''
     lean: ''
     lesscss: CSS
     lighttpd-configuration-file: Iniconf
     limbo: ''
     liquid: ''
     literate-agda: ''
     literate-cryptol: ''
     literate-haskell: ''
     literate-idris: ''
     livescript: ''
     llvm: ''
     logos: ''
     logtalk: ''
     lsl: ''
     lua: Lua
     makefile: Make
     mako: ''
     maql: ''
     mask: ''
     mason: ''
     mathematica: MatLab
     matlab: MatLab
     matlab-session: MatLab
     minid: ''
     modelica: ''
     modula-2: ''
     moinmoin/trac-wiki-markup: ''
     monkey: ''
     moocode: ''
     moonscript: ''
     mozhashpreproc: ''
     mozpercentpreproc: ''
     mql: ''
     mscgen: ''
     msdos-session: ''
     mupad: ''
     mxml: ''
     myghty: ''
     mysql: SQL
     nasm: Asm
     nemerle: ''
     nesc: ''
     newlisp: Lisp
     newspeak: ''
     nginx-configuration-file: ''
     nimrod: ''
     nit: ''
     nix: ''
     nsis: ''
     numpy: ''
     objdump: Asm
     objdump-nasm: Asm
     objective-c: ObjectiveC
     objective-c++: Objective-C
     objective-j: ''
     ocaml: Ocaml
     octave: ''
     odin: ''
     ooc: ''
     opa: ''
     openedge-abl: ''
     pacmanconf: ''
     pan: ''
     parasail: ''
     pawn: ''
     perl: Perl
     perl6: Perl6
     php: PHP
     pig: ''
     pike: ''
     pkgconfig: ''
     pl/pgsql: SQL
     postgresql-console-(psql): ''
     postgresql-sql-dialect: SQL
     postscript: ''
     povray: ''
     powershell: ''
     powershell-session: ''
     praat: ''
     prolog: ''
     properties: Iniconf
     protocol-buffer: Protobuf
     puppet: ''
     pypy-log: ''
     python: Python
     python-3: Python
     python-3.0-traceback: Python
     python-console-session: Python
     python-traceback: Python
     qbasic: ''
     qml: ''
     qvto: ''
     racket: LISP
     ragel: ''
     ragel-in-c-host: ''
     ragel-in-cpp-host: ''
     ragel-in-d-host: ''
     ragel-in-java-host: ''
     ragel-in-objective-c-host: ''
     ragel-in-ruby-host: ''
     raw-token-data: ''
     rconsole: ''
     rd: ''
     rebol: ''
     red: ''
     redcode: ''
     reg: ''
     resourcebundle: ''
     restructuredtext: reStructuredText
     rexx: REXX
     rhtml: ''
     roboconf-graph: ''
     roboconf-instances: ''
     robotframework: ''
     rpmspec: RpmSpec
     rql: ''
     rsl: ''
     ruby: Ruby
     ruby-irb-session: Sh
     rust: Rust
     s: ''
     sass: ''
     scala: Java
     scalate-server-page: ''
     scaml: SML
     scheme: Lisp
     scilab: ''
     scss: ''
     shen: ''
     slim: ''
     smali: ''
     smalltalk: ''
     smarty: ''
     snobol: ''
     sourcepawn: ''
     sparql: ''
     sql: SQL
     sqlite3con: SQL
     squidconf: ''
     stan: ''
     standard-ml: SML
     supercollider: ''
     swift: ''
     swig: ''
     systemverilog: SystemVerilog
     tads-3: ''
     tap: ''
     tcl: ''
     tcsh: Sh
     tcsh-session: Sh
     tea: ''
     termcap: ''
     terminfo: ''
     terraform: ''
     tex: Tex
     text-only: ''
     thrift: ''
     todotxt: ''
     trafficscript: ''
     treetop: ''
     turtle: ''
     twig: ''
     typescript: ''
     urbiscript: ''
     vala: ''
     vb.net: Basic
     vctreestatus: ''
     velocity: ''
     verilog: Verilog
     vgl: ''
     vhdl: VHDL
     viml: Vim
     x10: ''
     xml: ''
     xml+cheetah: ''
     xml+django/jinja: ''
     xml+evoque: ''
     xml+lasso: ''
     xml+mako: ''
     xml+myghty: ''
     xml+php: ''
     xml+ruby: ''
     xml+smarty: ''
     xml+velocity: ''
     xquery: ''
     xslt: XSLT
     xtend: ''
     xul+mozpreproc: ''
     yaml: ''
     yaml+jinja: ''
     zephir: Zephir
     unknown: ''
 
 desktop::printers:
   MFP_C:
     uri: lpd://print.paris.inria.fr/MFP_C-pro
     description: Impression couleur
     location: Partout
     ppd: "%{hiera('desktop::printers::ppd_dir')}/MFP_Paris.ppd"
     ppd_options:
       ColorType: Color
   MFP:
     uri: lpd://print.paris.inria.fr/MFP-pro
     description: Impression Noir et Blanc
     location: Partout
     ppd: "%{hiera('desktop::printers::ppd_dir')}/MFP_Paris.ppd"
     ppd_options:
       ColorType: Mono
 
 desktop::printers::default: MFP
 desktop::printers::ppd_dir: /usr/share/ppd/softwareheritage
 
 desktop::printers::cups_usernames:
   olasd: ndandrim
   zack: zacchiro
 
 zookeeper::hosts:
   getty.internal.softwareheritage.org: '1'
 zookeeper::data_dir: /var/lib/zookeeper
 
 kafka::log_dirs:
   - /srv/kafka/logdir
 kafka::brokers:
   getty.internal.softwareheritage.org:
     id: 1
 kafka::zookeeper::hosts:
   - getty.internal.softwareheritage.org:2181
 kafka::zookeeper::chroot: '/kafka/softwareheritage'
 
 stats_export::vhost::name: stats.export.softwareheritage.org
 stats_export::vhost::docroot: "/var/www/%{hiera('stats_export::vhost::name')}"
 stats_export::vhost::ssl_protocol: "%{hiera('apache::ssl_protocol')}"
 stats_export::vhost::ssl_honorcipherorder: "%{hiera('apache::ssl_honorcipherorder')}"
 stats_export::vhost::ssl_cipher: "%{hiera('apache::ssl_cipher')}"
 stats_export::vhost::hsts_header: "%{hiera('apache::hsts_header')}"
diff --git a/data/hostname/worker01.euwest.azure.internal.softwareheritage.org.yaml b/data/hostname/worker01.euwest.azure.internal.softwareheritage.org.yaml
index bd8ffffb..57b2f228 100644
--- a/data/hostname/worker01.euwest.azure.internal.softwareheritage.org.yaml
+++ b/data/hostname/worker01.euwest.azure.internal.softwareheritage.org.yaml
@@ -1,6 +1,27 @@
 swh::deploy::worker::instances:
   - swh_indexer_orchestrator
   - swh_indexer_mimetype
   - swh_indexer_language
   - swh_indexer_ctags
   - swh_indexer_fossology_license
+  - swh_loader_svn
+
+# testing swh-loader-svn
+swh::deploy::storage::db::dbname: softwareheritage-test-svn
+swh::deploy::storage::storage_base: /srv/swh/objects/
+
+swh::deploy::worker::swh_loader_svn::config:
+  storage_class: remote_storage
+  storage_args: http://127.0.0.1:5002
+  send_contents: true
+  send_directories: true
+  send_revisions: true
+  send_releases: true
+  send_occurrences: true
+  content_packet_size: 1000
+  content_packet_block_size_bytes: 104857600
+  content_packet_size_bytes: 1073741824
+  directory_packet_size: 250
+  revision_packet_size: 100
+  release_packet_size: 100
+  occurrence_packet_size: 100
diff --git a/data/hostname/worker01.softwareheritage.org.yaml b/data/hostname/worker01.softwareheritage.org.yaml
index 5759f90b..a71394e7 100644
--- a/data/hostname/worker01.softwareheritage.org.yaml
+++ b/data/hostname/worker01.softwareheritage.org.yaml
@@ -1,21 +1,18 @@
 networks:
   private:
     interface: eth1
     address: 192.168.100.21
     netmask: 255.255.255.0
     gateway: 192.168.100.1
   default:
     interface: eth0
     address: 128.93.193.21
     netmask: 255.255.255.0
     gateway: 128.93.193.254
 
-# temporary for testing swh-loader-dir before going live
-swh::deploy::storage::db::dbname: softwareheritage-test-svn
-
 swh::deploy::worker::instances:
   - swh_loader_git
   - swh_lister_github
   - swh_reader_git
 
 swh::deploy::worker::swh_storage_archiver_azure::concurrency: 1