Puppet Class: docker::params

Inherited by:
docker
docker::compose
Defined in:
manifests/params.pp

Overview

Class: docker::params

Default parameter values for the docker module



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'manifests/params.pp', line 5

class docker::params {
  $version                           = undef
  $ensure                            = present
  $docker_cs                         = false
  $tcp_bind                          = undef
  $tls_enable                        = false
  $tls_verify                        = true
  $tls_cacert                        = '/etc/docker/tls/ca.pem'
  $tls_cert                          = '/etc/docker/tls/cert.pem'
  $tls_key                           = '/etc/docker/tls/key.pem'
  $ip_forward                        = true
  $iptables                          = true
  $icc                               = undef
  $ip_masq                           = true
  $bip                               = undef
  $mtu                               = undef
  $fixed_cidr                        = undef
  $bridge                            = undef
  $default_gateway                   = undef
  $socket_bind                       = 'unix:///var/run/docker.sock'
  $log_level                         = undef
  $log_driver                        = undef
  $log_opt                           = []
  $selinux_enabled                   = undef
  $socket_group                      = undef
  $labels                            = []
  $service_state                     = running
  $service_enable                    = true
  $manage_service                    = true
  $root_dir                          = undef
  $tmp_dir                           = '/tmp/'
  $dns                               = undef
  $dns_search                        = undef
  $proxy                             = undef
  $no_proxy                          = undef
  $execdriver                        = undef
  $storage_driver                    = undef
  $dm_basesize                       = undef
  $dm_fs                             = undef
  $dm_mkfsarg                        = undef
  $dm_mountopt                       = undef
  $dm_blocksize                      = undef
  $dm_loopdatasize                   = undef
  $dm_loopmetadatasize               = undef
  $dm_datadev                        = undef
  $dm_metadatadev                    = undef
  $dm_thinpooldev                    = undef
  $dm_use_deferred_removal           = undef
  $dm_use_deferred_deletion          = undef
  $dm_blkdiscard                     = undef
  $dm_override_udev_sync_check       = undef
  $manage_package                    = true
  $package_source                    = undef
  $manage_kernel                     = true
  $package_name_default              = 'docker-engine'
  $service_name_default              = 'docker'
  $docker_command_default            = 'docker'
  $docker_group_default              = 'docker'
  $daemon_subcommand                 = 'daemon'
  $storage_devs                      = undef
  $storage_vg                        = undef
  $storage_root_size                 = undef
  $storage_data_size                 = undef
  $storage_min_data_size             = undef
  $storage_chunk_size                = undef
  $storage_growpart                  = undef
  $storage_auto_extend_pool          = undef
  $storage_pool_autoextend_threshold = undef
  $storage_pool_autoextend_percent   = undef
  $storage_config_template           = 'docker/etc/sysconfig/docker-storage.erb'
  $compose_version                   = '1.9.0'
  $compose_install_path              = '/usr/local/bin'

  case $::osfamily {
    'Debian' : {
      case $::operatingsystem {
        'Ubuntu' : {
          $package_release = "ubuntu-${::lsbdistcodename}"
          if (versioncmp($::operatingsystemrelease, '15.04') >= 0) {
            $service_provider        = 'systemd'
            $storage_config          = '/etc/default/docker-storage'
            $service_config_template = 'docker/etc/sysconfig/docker.systemd.erb'
            $service_overrides_template = 'docker/etc/systemd/system/docker.service.d/service-overrides-debian.conf.erb'
            $service_hasstatus       = true
            $service_hasrestart      = true
            include docker::systemd_reload
          } else {
            $service_config_template = 'docker/etc/default/docker.erb'
            $service_overrides_template = undef
            $service_provider        = 'upstart'
            $service_hasstatus       = true
            $service_hasrestart      = false
            $storage_config          = undef
          }
        }
        default: {
          $package_release = "debian-${::lsbdistcodename}"
          if (versioncmp($::operatingsystemmajrelease, '8') >= 0) {
            $service_provider           = 'systemd'
            $storage_config             = '/etc/default/docker-storage'
            $service_config_template    = 'docker/etc/sysconfig/docker.systemd.erb'
            $service_overrides_template = 'docker/etc/systemd/system/docker.service.d/service-overrides-debian.conf.erb'
            $service_hasstatus          = true
            $service_hasrestart         = true
            include docker::systemd_reload
          } else {
            $service_provider           = undef
            $storage_config             = undef
            $service_config_template    = 'docker/etc/default/docker.erb'
            $service_overrides_template = undef
            $service_hasstatus          = undef
            $service_hasrestart         = undef
          }
        }
      }

      $manage_epel = false
      $package_name = $package_name_default
      $service_name = $service_name_default
      $docker_command = $docker_command_default
      $docker_group = $docker_group_default
      $package_repos = 'main'
      $use_upstream_package_source = true
      $pin_upstream_package_source = true
      $apt_source_pin_level = 10
      $repo_opt = undef
      $nowarn_kernel = false
      $service_config = undef
      $storage_setup_file = undef

      $package_cs_source_location = 'http://packages.docker.com/1.9/apt/repo'
      $package_cs_key_source = 'https://packages.docker.com/1.9/apt/gpg'
      $package_cs_key = '0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e'
      $package_source_location = 'http://apt.dockerproject.org/repo'
      $package_key_source = 'https://apt.dockerproject.org/gpg'
      $package_key = '58118E89F3A912897C070ADBF76221572C52609D'

      if ($::operatingsystem == 'Debian' and versioncmp($::operatingsystemmajrelease, '8') >= 0) or
        ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '15.04') >= 0) {
        $detach_service_in_init = false
      } else {
        $detach_service_in_init = true
      }

    }
    'RedHat' : {
      $service_config = '/etc/sysconfig/docker'
      $storage_config = '/etc/sysconfig/docker-storage'
      $storage_setup_file = '/etc/sysconfig/docker-storage-setup'
      $service_hasstatus  = true
      $service_hasrestart = true

      if ($::operatingsystem == 'Fedora') or (versioncmp($::operatingsystemrelease, '7.0') >= 0) and $::operatingsystem != 'Amazon' {
        $service_provider           = 'systemd'
        $service_config_template    = 'docker/etc/sysconfig/docker.systemd.erb'
        $service_overrides_template = 'docker/etc/systemd/system/docker.service.d/service-overrides-rhel.conf.erb'
      } else {
        $service_config_template    = 'docker/etc/sysconfig/docker.erb'
        $service_provider           = undef
        $service_overrides_template = undef
      }

      if (versioncmp($::operatingsystemrelease, '7.0') < 0) and $::operatingsystem != 'Amazon' {
        $package_name = 'docker-io'
        $use_upstream_package_source = false
        $manage_epel = true
      } elsif $::operatingsystem == 'Amazon' {
        $package_name = 'docker'
        $use_upstream_package_source = false
        $manage_epel = false
      } else {
        $package_name = $package_name_default
        $use_upstream_package_source = true
        $manage_epel = false
      }
      $package_key_source = 'https://yum.dockerproject.org/gpg'
      if $::operatingsystem == 'Fedora' {
        $package_source_location = "https://yum.dockerproject.org/repo/main/fedora/${::operatingsystemmajrelease}"
      } else {
        $package_source_location = "https://yum.dockerproject.org/repo/main/centos/${::operatingsystemmajrelease}"
      }
      $package_cs_source_location = "https://packages.docker.com/1.9/yum/repo/main/centos/${::operatingsystemmajrelease}"
      $package_cs_key_source = 'https://packages.docker.com/1.9/yum/gpg'
      $package_key = undef
      $package_cs_ke = undef
      $package_repos = undef
      $package_release = undef
      $pin_upstream_package_source = undef
      $apt_source_pin_level = undef
      $service_name = $service_name_default
      $docker_command = $docker_command_default
      if (versioncmp($::operatingsystemrelease, '7.0') < 0) or ($::operatingsystem == 'Amazon') {
        $detach_service_in_init = true
        if $::operatingsystem == 'OracleLinux' {
          $docker_group = 'dockerroot'
        } else {
          $docker_group = $docker_group_default
        }
      } else {
        $detach_service_in_init = false
        if $use_upstream_package_source {
          $docker_group = $docker_group_default
        } else {
          $docker_group = 'dockerroot'
        }
        include docker::systemd_reload
      }

      # repo_opt to specify install_options for docker package
      if (versioncmp($::operatingsystemmajrelease, '7') == 0) {
        if $::operatingsystem == 'RedHat' {
          $repo_opt = '--enablerepo=rhel7-extras'
        } elsif $::operatingsystem == 'CentOS' {
          $repo_opt = '--enablerepo=extras'
        } elsif $::operatingsystem == 'OracleLinux' {
          $repo_opt = '--enablerepo=ol7_addons'
        } elsif $::operatingsystem == 'Scientific' {
          $repo_opt = ''
        } else {
          $repo_opt = undef
        }
      } elsif (versioncmp($::operatingsystemrelease, '7.0') < 0 and $::operatingsystem == 'OracleLinux') {
          # FIXME is 'public_ol6_addons' available on all OL6 installs?
          $repo_opt = '--enablerepo=public_ol6_addons,public_ol6_latest'
      } else {
        $repo_opt = undef
      }
      if $::kernelversion == '2.6.32' {
        $nowarn_kernel = true
      } else {
        $nowarn_kernel = false
      }
    }
    'Archlinux' : {
      include docker::systemd_reload

      $manage_epel = false
      $docker_group = $docker_group_default
      $package_key_source = undef
      $package_source_location = undef
      $package_key = undef
      $package_repos = undef
      $package_release = undef
      $use_upstream_package_source = false
      $package_cs_source_location = undef
      $package_cs_key_source = undef
      $package_name = 'docker'
      $service_name = $service_name_default
      $docker_command = $docker_command_default
      $detach_service_in_init = false
      $repo_opt = undef
      $nowarn_kernel = false
      $service_provider   = 'systemd'
      $service_overrides_template = 'docker/etc/systemd/system/docker.service.d/service-overrides-archlinux.conf.erb'
      $service_hasstatus  = true
      $service_hasrestart = true
      $service_config = '/etc/conf.d/docker'
      $service_config_template = 'docker/etc/conf.d/docker.erb'
      $storage_config = undef
      $storage_setup_file = undef
      $pin_upstream_package_source = undef
      $apt_source_pin_level = undef
    }
    'Gentoo' : {
      $manage_epel = false
      $docker_group = $docker_group_default
      $package_key_source = undef
      $package_source_location = undef
      $package_key = undef
      $package_repos = undef
      $package_release = undef
      $use_upstream_package_source = false
      $package_cs_source_location = undef
      $package_cs_key_source = undef
      $package_name = 'app-emulation/docker'
      $service_name = $service_name_default
      $docker_command = $docker_command_default
      $detach_service_in_init = true
      $repo_opt = undef
      $nowarn_kernel = false
      $service_provider   = 'openrc'
      $service_overrides_template = 'docker/etc/systemd/system/docker.service.d/service-overrides-archlinux.conf.erb'
      $service_hasstatus  = true
      $service_hasrestart = true
      $service_config = '/etc/conf.d/docker'
      $service_config_template = 'docker/etc/conf.d/docker.gentoo.erb'
      $storage_config = undef
      $storage_setup_file = undef
      $pin_upstream_package_source = undef
      $apt_source_pin_level = undef
    }
    default: {
      $manage_epel = false
      $docker_group = $docker_group_default
      $package_key_source = undef
      $package_source_location = undef
      $package_key = undef
      $package_cs_source_location = undef
      $package_cs_key_source = undef
      $package_repos = undef
      $package_release = undef
      $use_upstream_package_source = true
      $service_overrides_template = undef
      $service_hasstatus  = undef
      $service_hasrestart = undef
      $service_provider = undef
      $package_name = $package_name_default
      $service_name = $service_name_default
      $docker_command = $docker_command_default
      $detach_service_in_init = true
      $repo_opt = undef
      $nowarn_kernel = false
      $service_config = undef
      $storage_config = undef
      $storage_setup_file = undef
      $service_config_template = undef
      $pin_upstream_package_source = undef
      $apt_source_pin_level = undef
    }
  }

  # Special extra packages are required on some OSes.
  # Specifically apparmor is needed for Ubuntu:
  # https://github.com/docker/docker/issues/4734
  $prerequired_packages = $::osfamily ? {
    'Debian' => $::operatingsystem ? {
      'Debian' => ['cgroupfs-mount'],
      'Ubuntu' => ['cgroup-lite', 'apparmor'],
      default  => [],
    },
    'RedHat' => ['device-mapper'],
    default  => [],
  }

}