class Seira::Util::ResourceRenderer

Constants

DEFAULT_JOB_PARALELLISM

Public Class Methods

new(template:, context:, locals:) click to toggle source
# File lib/seira/util/resource_renderer.rb, line 8
def initialize(template:, context:, locals:)
  @template = template
  @context = context
  @locals = locals
  @summary = {}
end

Public Instance Methods

current_replica_count(deployment) click to toggle source

BEGIN ERB templating methods and variables

# File lib/seira/util/resource_renderer.rb, line 30
def current_replica_count(deployment)
  count = Seira::Helpers.get_current_replicas(deployment: deployment, context: @context)
  @summary["#{deployment}-replicas"] = count

  # Validate a sane count so that we don't accidentally deploy 0 replicas
  unless count && count.is_a?(Integer)
    fail "Received invalid value for replica count for Deployment #{deployment} '#{count}'"
  end

  count
end
get_secret(secret_name) click to toggle source
# File lib/seira/util/resource_renderer.rb, line 42
def get_secret(secret_name)
  secret_value = Seira::Helpers.get_secret(key: secret_name, context: @context)
  @summary[secret_name] = 'fetched'

  # Validate we actually get something back
  fail "Missing value for secret #{secret_name}" unless secret_value

  secret_value
end
job_parallelism(parallelism) click to toggle source
# File lib/seira/util/resource_renderer.rb, line 52
def job_parallelism(parallelism)
  rv = parallelism || DEFAULT_JOB_PARALELLISM
  @summary['parallelism'] = rv
  rv
end
render() click to toggle source

“binding” is a special method every ruby object has to expose its instance variables ruby-doc.org/core-2.2.0/Binding.html

# File lib/seira/util/resource_renderer.rb, line 18
def render
  result = ERB.new(@template).result(binding)

  puts "Rendered with following ERB variables:"
  @summary.each do |key, value|
    puts "#{key}: #{value}"
  end

  result
end
restarted_at_value() click to toggle source
# File lib/seira/util/resource_renderer.rb, line 64
def restarted_at_value
  rv = @locals['RESTARTED_AT_VALUE']
  @summary["restarted_at_value"] = rv
  rv
end
target_revision() click to toggle source
# File lib/seira/util/resource_renderer.rb, line 58
def target_revision
  rv = @locals['REVISION']
  @summary["revision"] = rv
  rv
end