Add Docker Registry profile
authorMartin André <m.andre@redhat.com>
Fri, 6 Jan 2017 16:14:22 +0000 (17:14 +0100)
committerMartin André <m.andre@redhat.com>
Mon, 9 Jan 2017 14:16:50 +0000 (15:16 +0100)
The profile was moved out of instack-undercloud puppet manifest and
changed to install a v2 Docker registry rather than the old, deprecated
v1 registry.

Change-Id: Iecf7a4c7e86349e6ecaa0a8ee6d37223e3af7862

manifests/profile/base/docker_registry.pp [new file with mode: 0644]
templates/docker_distribution/registry_config.yml.erb [new file with mode: 0644]

diff --git a/manifests/profile/base/docker_registry.pp b/manifests/profile/base/docker_registry.pp
new file mode 100644 (file)
index 0000000..05a516d
--- /dev/null
@@ -0,0 +1,73 @@
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::docker_registry
+#
+# Docker Registry profile for tripleo
+#
+# === Parameters:
+#
+# [*registry_host*]
+#  (String) IP address on which the Docker registry is listening on
+#  Defaults to hiera('controller_host')
+#
+# [*registry_port*]
+#  (Integer) The port on which the Docker registry is listening on
+#  Defaults to 8787
+#
+# [*controller_admin_vip*]
+#  (String) VIP of the host
+#  Defaults to hiera('controller_admin_vip')
+#
+class tripleo::profile::base::docker_registry (
+  $registry_host        = hiera('controller_host'),
+  $registry_port        = 8787,
+  $controller_admin_vip = hiera('controller_admin_vip'),
+) {
+  # We want a v2 registry
+  package{'docker-registry':
+    ensure => absent,
+  }
+  package{'docker-distribution': }
+  package{'docker': }
+  file { '/etc/docker-distribution/registry/config.yml' :
+    ensure  => file,
+    content => template('tripleo/docker_distribution/registry_config.yml.erb'),
+    owner   => 'root',
+    group   => 'root',
+    mode    => '0644',
+    require => Package['docker-distribution'],
+    notify  => Service['docker-distribution'],
+  }
+  file_line { 'docker insecure registry':
+    path    => '/etc/sysconfig/docker',
+    line    => join ([
+      'INSECURE_REGISTRY="',
+      '--insecure-registry ', $registry_host, ':', $registry_port, ' ',
+      '--insecure-registry ', $controller_admin_vip, ':', $registry_port, '"']),
+    match   => 'INSECURE_REGISTRY=',
+    require => Package['docker'],
+    notify  => Service['docker'],
+  }
+  service { 'docker-distribution':
+    ensure  => running,
+    enable  => true,
+    require => Package['docker-distribution'],
+  }
+  service { 'docker':
+    ensure  => running,
+    enable  => true,
+    require => Package['docker'],
+  }
+}
diff --git a/templates/docker_distribution/registry_config.yml.erb b/templates/docker_distribution/registry_config.yml.erb
new file mode 100644 (file)
index 0000000..d5228fb
--- /dev/null
@@ -0,0 +1,11 @@
+version: 0.1
+log:
+  fields:
+    service: registry
+storage:
+    cache:
+        layerinfo: inmemory
+    filesystem:
+        rootdirectory: /var/lib/registry
+http:
+    addr: <%= @registry_host %>:<%= @registry_port %>