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"- SPP_FENCE_DIRNAME =
"spp"
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.
-
#only ⇒ Object
readonly
Returns the value of attribute only.
-
#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.
-
#spps ⇒ Object
readonly
Returns the value of attribute spps.
-
#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, spps: [], only: []) ⇒ 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, spps: [], only: []) ⇒ TemplateDirectoryRenderer
Returns a new instance of TemplateDirectoryRenderer.
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 22 def initialize(directories:, rendered_directory:, omitted_names: [], cluster_type: nil, region: nil, color: nil, variable_overrides: nil, source_repo: nil, spps: [], only: []) @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 @spps = Array(spps) @only = Array(only) end |
Instance Attribute Details
#cluster_type ⇒ Object (readonly)
Returns the value of attribute cluster_type.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def cluster_type @cluster_type end |
#color ⇒ Object (readonly)
Returns the value of attribute color.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def color @color end |
#directories ⇒ Object (readonly)
Returns the value of attribute directories.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def directories @directories end |
#omitted_names ⇒ Object (readonly)
Returns the value of attribute omitted_names.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def omitted_names @omitted_names end |
#only ⇒ Object (readonly)
Returns the value of attribute only.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def only @only end |
#region ⇒ Object (readonly)
Returns the value of attribute region.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def region @region end |
#rendered_directory ⇒ Object (readonly)
Returns the value of attribute rendered_directory.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def rendered_directory @rendered_directory end |
#source_repo ⇒ Object (readonly)
Returns the value of attribute source_repo.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def source_repo @source_repo end |
#spps ⇒ Object (readonly)
Returns the value of attribute spps.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def spps @spps end |
#variable_overrides ⇒ Object (readonly)
Returns the value of attribute variable_overrides.
19 20 21 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 19 def variable_overrides @variable_overrides end |
Instance Method Details
#render(args) ⇒ Object
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/kubernetes_template_rendering/template_directory_renderer.rb', line 36 def render(args) if args.reconcile? sweep_scopes = collect_reconcile_scopes # validates out-of-prefix before any writes reconciler = Reconciler.new(@rendered_directory) # marker captured before rendering/forking end 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 reconcile_sweep(reconciler, sweep_scopes) if args.reconcile? end |