Puppet Function: docker_service_flags

Defined in:
lib/puppet/parser/functions/docker_service_flags.rb
Function type:
Ruby 3.x API

Overview

docker_service_flags()Any

Transforms a hash into a string of docker swarm init flags

Returns:

  • (Any)


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
# File 'lib/puppet/parser/functions/docker_service_flags.rb', line 9

newfunction(:docker_service_flags, type: :rvalue) do |args|
  opts = args[0] || {}
  flags = []

  flags << "'#{opts['service_name']}'" if opts['service_name'] && opts['service_name'].to_s != 'undef'

  flags << '--detach' if opts['detach'].to_s != 'false'

  if opts['env'].is_a? Array
    opts['env'].each do |env|
      flags << "--env '#{env}'"
    end
  end

  if opts['label'].is_a? Array
    opts['label'].each do |label|
      flags << "--label #{label}"
    end
  end

  if opts['mounts'].is_a? Array
    opts['mounts'].each do |mount|
      flags << "--mount #{mount}"
    end
  end

  if opts['networks'].is_a? Array
    opts['networks'].each do |network|
      flags << "--network #{network}"
    end
  end

  if opts['publish'].is_a? Array
    opts['publish'].each do |port|
      flags << "--publish #{port}"
    end
  elsif opts['publish'] && opts['publish'].to_s != 'undef'
    flags << "--publish '#{opts['publish']}'"
  end

  flags << "--replicas '#{opts['replicas']}'" if opts['replicas'] && opts['replicas'].to_s != 'undef'

  flags << '--tty' if opts['tty'].to_s != 'false'

  flags << "--user '#{opts['user']}'" if opts['user'] && opts['user'].to_s != 'undef'

  flags << "--workdir '#{opts['workdir']}'" if opts['workdir'] && opts['workdir'].to_s != 'undef'

  if opts['extra_params'].is_a? Array
    opts['extra_params'].each do |param|
      flags << param
    end
  end

  flags << "-H '#{opts['host_socket']}'" if opts['host_socket'] && opts['host_socket'].to_s != 'undef'

  if opts['registry_mirror'].is_a? Array
    opts['registry_mirror'].each do |param|
      flags << "--registry-mirror='#{param}'"
    end
  elsif opts['registry_mirror'] && opts['registry_mirror'].to_s != 'undef'
    flags << "--registry-mirror='#{opts['registry_mirror']}'"
  end

  flags << "'#{opts['image']}'" if opts['image'] && opts['image'].to_s != 'undef'

  if opts['command'].is_a? Array
    flags << opts['command'].join(' ')
  elsif opts['command'] && opts['command'].to_s != 'undef'
    flags << opts['command'].to_s
  end

  flags.flatten.join(' ')
end