Class: Seira::Util::ResourceRenderer

Inherits:
Object
  • Object
show all
Includes:
ERB::Util
Defined in:
lib/seira/util/resource_renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(template:, context:, locals:) ⇒ ResourceRenderer

Returns a new instance of ResourceRenderer.



6
7
8
9
10
11
# File 'lib/seira/util/resource_renderer.rb', line 6

def initialize(template:, context:, locals:)
  @template = template
  @context = context
  @locals = locals
  @summary = {}
end

Instance Method Details

#current_replica_count(deployment) ⇒ Object

BEGIN ERB templating methods and variables



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/seira/util/resource_renderer.rb', line 28

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) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/seira/util/resource_renderer.rb', line 40

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

#renderObject

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



16
17
18
19
20
21
22
23
24
25
# File 'lib/seira/util/resource_renderer.rb', line 16

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_valueObject



56
57
58
59
60
# File 'lib/seira/util/resource_renderer.rb', line 56

def restarted_at_value
  rv = @locals['RESTARTED_AT_VALUE']
  @summary["restarted_at_value"] = rv
  rv
end

#target_revisionObject



50
51
52
53
54
# File 'lib/seira/util/resource_renderer.rb', line 50

def target_revision
  rv = @locals['REVISION']
  @summary["revision"] = rv
  rv
end