Puppet Function: k8s::format_arguments

Defined in:
lib/puppet/functions/k8s/format_arguments.rb
Function type:
Ruby 4.x API

Overview

k8s::format_arguments(Hash[String,Data] $arguments)Array[String]

Formats a hash of arguments into something that can be passed to a kubernetes application

Parameters:

  • arguments (Hash[String,Data])

    A hash of arguments to format

Returns:

  • (Array[String])

    An array of formatted kubernetes arguments



4
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
# File 'lib/puppet/functions/k8s/format_arguments.rb', line 4

Puppet::Functions.create_function(:'k8s::format_arguments') do
  # @param arguments A hash of arguments to format
  #
  # @return [Array[String]] An array of formatted kubernetes arguments
  dispatch :k8s_format_arguments do
    param 'Hash[String,Data]', :arguments
    return_type 'Array[String]'
  end

  def k8s_format_value(value)
    case value
    when String, Numeric, TrueClass, FalseClass
      value
    when Array
      value.map { |data| k8s_format_value(data) }.join(',')
    when Hash
      value.map { |key, data| "#{key.tr('_', '-')}=#{k8s_format_value(data)}" }.join(',')
    else
      raise ArgumentError, "Unable to format #{value.inspect} (#{value.class})"
    end
  end

  def k8s_format_arguments(arguments)
    formatted = arguments.map do |argument, value|
      next if value.nil?

      "--#{argument.tr('_', '-')}=#{k8s_format_value(value)}"
    end
    formatted.compact
  end
end