Giuseppe Lavagetto has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/318056

Change subject: docker::registry: add support for swift storage backend
......................................................................

docker::registry: add support for swift storage backend

Change-Id: I4ae75e0893215c30df20a44f2921754c2475aad9
---
M modules/docker/manifests/registry.pp
M modules/role/manifests/toollabs/docker/registry.pp
2 files changed, 42 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/56/318056/1

diff --git a/modules/docker/manifests/registry.pp 
b/modules/docker/manifests/registry.pp
index 3154e1a..da5dcd4 100644
--- a/modules/docker/manifests/registry.pp
+++ b/modules/docker/manifests/registry.pp
@@ -2,32 +2,57 @@
     $allow_push_from,
     $ssl_certificate_name,
     $ssl_settings,
-    $datapath = '/srv/registry',
+    $storage_backend='filebackend',
+    $datapath='/srv/registry',
+    $swift_user=undef,
+    $swift_password=undef,
+    $swift_url=undef,
+    $swift_contasiner=undef,
 ){
 
     require_package('docker-registry')
 
+    case $storage_backend {
+        'filebackend': {
+            $storage_config = {
+                'filesystem' => { 'rootdirectory' => $datapath },
+                'cache'      => { 'blobdescriptor' => 'inmemory' },
+            }
+            file { $datapath:
+                ensure => directory,
+                mode   => '0775',
+                owner  => 'docker-registry',
+                group  => 'docker-registry',
+            }
+        }
+        'swift': {
+            $username = hiera('profile::docker::registry::swift_username')
+            $password = hiera('profile::docker::registry::swift_password')
+            $auth_url = hiera('profile::docker::registry::swift_auth_url')
+            $container = hiera('profile::docker::registry::swift_container')
+            $storage_config = {
+                'swift'  => {
+                    'username'  => $username,
+                    'password'  => $password,
+                    'authurl'   => $auth_url,
+                    'container' => $container,
+                },
+                'cache' => {
+                    'blobdescriptor' => 'inmemory'
+                },
+            }
+        }
+        default: { fail("Unsupported storage backend ${storage_backend}") }
+    }
+
+
     $config = {
         'version' => '0.1',
-        'storage' => {
-            'filesystem' => {
-                'rootdirectory' => $datapath,
-            },
-            'cache' => {
-                'blobdescriptor' => 'inmemory',
-            },
-        },
+        'storage' => $storage_config,
         'http'     => {
             'addr' => '127.0.0.1:5000',
             'host' => $::fqdn,
         },
-    }
-
-    file { $datapath:
-        ensure => directory,
-        mode   => '0775',
-        owner  => 'docker-registry',
-        group  => 'docker-registry',
     }
 
     # This is by default 0700 for some reason - nothing sensitive inside
diff --git a/modules/role/manifests/toollabs/docker/registry.pp 
b/modules/role/manifests/toollabs/docker/registry.pp
index c6f5752..231a784 100644
--- a/modules/role/manifests/toollabs/docker/registry.pp
+++ b/modules/role/manifests/toollabs/docker/registry.pp
@@ -10,6 +10,7 @@
     $builder = ipresolve(hiera('docker::builder_host'), 4, $::nameservers[0])
 
     class { '::docker::registry':
+        backend              => 'filebackend',
         datapath             => '/srv/registry',
         allow_push_from      => $builder,
         ssl_certificate_name => 'star.tools.wmflabs.org',

-- 
To view, visit https://gerrit.wikimedia.org/r/318056
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4ae75e0893215c30df20a44f2921754c2475aad9
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to