Class: KubernetesTemplateRendering::TemplateDirectoryRenderer
- Inherits:
-
Object
- Object
- KubernetesTemplateRendering::TemplateDirectoryRenderer
- Defined in:
- lib/kubernetes_template_rendering/template_directory_renderer.rb
Constant Summary collapse
- DEFINITIONS_FILENAME =
"definitions.yaml"
Instance Attribute Summary collapse
-
#cluster_type ⇒ Object
readonly
Returns the value of attribute cluster_type.
-
#color ⇒ Object
readonly
Returns the value of attribute color.
-
#directories ⇒ Object
readonly
Returns the value of attribute directories.
-
#omitted_names ⇒ Object
readonly
Returns the value of attribute omitted_names.
-
#region ⇒ Object
readonly
Returns the value of attribute region.
-
#rendered_directory ⇒ Object
readonly
Returns the value of attribute rendered_directory.
-
#source_repo ⇒ Object
readonly
Returns the value of attribute source_repo.
-
#variable_overrides ⇒ Object
readonly
Returns the value of attribute variable_overrides.
Instance Method Summary collapse
-
#initialize(directories:, rendered_directory:, omitted_names: [], cluster_type: nil, region: nil, color: nil, variable_overrides: nil, source_repo: nil) ⇒ TemplateDirectoryRenderer
constructor
A new instance of TemplateDirectoryRenderer.
- #render(args) ⇒ Object
Constructor Details
#initialize(directories:, rendered_directory:, omitted_names: [], cluster_type: nil, region: nil, color: nil, variable_overrides: nil, source_repo: nil) ⇒ TemplateDirectoryRenderer
Returns a new instance of TemplateDirectoryRenderer.
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 18 def initialize(directories:, rendered_directory:, omitted_names: [], cluster_type: nil, region: nil, color: nil, variable_overrides: nil, source_repo: nil) @directories = directories_with_definitions(Array(directories)) @omitted_names = Array(omitted_names) @rendered_directory = rendered_directory @cluster_type = cluster_type @region = region @color = color @variable_overrides = variable_overrides || {} @source_repo = source_repo end |
Instance Attribute Details
#cluster_type ⇒ Object (readonly)
Returns the value of attribute cluster_type.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def cluster_type @cluster_type end |
#color ⇒ Object (readonly)
Returns the value of attribute color.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def color @color end |
#directories ⇒ Object (readonly)
Returns the value of attribute directories.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def directories @directories end |
#omitted_names ⇒ Object (readonly)
Returns the value of attribute omitted_names.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def omitted_names @omitted_names end |
#region ⇒ Object (readonly)
Returns the value of attribute region.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def region @region end |
#rendered_directory ⇒ Object (readonly)
Returns the value of attribute rendered_directory.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def rendered_directory @rendered_directory end |
#source_repo ⇒ Object (readonly)
Returns the value of attribute source_repo.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def source_repo @source_repo end |
#variable_overrides ⇒ Object (readonly)
Returns the value of attribute variable_overrides.
16 17 18 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 16 def variable_overrides @variable_overrides end |
Instance Method Details
#render(args) ⇒ Object
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 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 29 def render(args) child_pids = [] failed_processes = [] # [[pid, status]] resource_sets.each do |name, resource_sets| puts "Rendering templates for definition #{Color.red(name)}..." resource_sets.each do |resource_set| if args.fork? if (pid = Process.fork) # this is the parent child_pids << pid wait_if_max_forked(child_pids, failed_processes) else # this is the child render_set(args, resource_set) Kernel.exit!(0) # skip at_exit handlers since parent will run those end else render_set(args, resource_set) end end end if args.fork? Process.waitall.each do |pid, status| status.success? or failed_processes << [pid, status] end if failed_processes.any? raise "Child process completed with non-zero status: #{failed_processes.inspect}" end end end |