Class: KubernetesDeploy::RenderTask

Inherits:
Object
  • Object
show all
Defined in:
lib/kubernetes-deploy/render_task.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger: nil, current_sha:, template_dir:, bindings:) ⇒ RenderTask

Returns a new instance of RenderTask.



9
10
11
12
13
14
15
16
17
18
# File 'lib/kubernetes-deploy/render_task.rb', line 9

def initialize(logger: nil, current_sha:, template_dir:, bindings:)
  @logger = logger || KubernetesDeploy::FormattedLogger.build
  @template_dir = template_dir
  @renderer = KubernetesDeploy::Renderer.new(
    current_sha: current_sha,
    bindings: bindings,
    template_dir: @template_dir,
    logger: @logger,
  )
end

Instance Method Details

#run(*args) ⇒ Object



20
21
22
23
24
25
# File 'lib/kubernetes-deploy/render_task.rb', line 20

def run(*args)
  run!(*args)
  true
rescue KubernetesDeploy::FatalDeploymentError
  false
end

#run!(stream, only_filenames = []) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/kubernetes-deploy/render_task.rb', line 27

def run!(stream, only_filenames = [])
  @logger.reset
  @logger.phase_heading("Initializing render task")

  filenames = if only_filenames.empty?
    Dir.foreach(@template_dir).select { |filename| filename.end_with?(".yml.erb", ".yml", ".yaml", ".yaml.erb") }
  else
    only_filenames
  end

  validate_configuration(filenames)
  render_filenames(stream, filenames)

  @logger.summary.add_action("Successfully rendered #{filenames.size} template(s)")
  @logger.print_summary(:success)
rescue KubernetesDeploy::FatalDeploymentError
  @logger.print_summary(:failure)
  raise
end