Class: KubernetesTemplateRendering::ResourceSet
- Inherits:
-
Object
- Object
- KubernetesTemplateRendering::ResourceSet
- Defined in:
- lib/kubernetes_template_rendering/resource_set.rb
Instance Attribute Summary collapse
-
#colors ⇒ Object
readonly
Returns the value of attribute colors.
-
#definitions_path ⇒ Object
readonly
Returns the value of attribute definitions_path.
-
#deploy_group_config ⇒ Object
readonly
Returns the value of attribute deploy_group_config.
-
#kubernetes_cluster_type ⇒ Object
readonly
Returns the value of attribute kubernetes_cluster_type.
-
#omitted_resources ⇒ Object
readonly
Returns the value of attribute omitted_resources.
-
#output_directory ⇒ Object
readonly
Returns the value of attribute output_directory.
-
#regions ⇒ Object
readonly
Returns the value of attribute regions.
-
#source_repo ⇒ Object
readonly
Returns the value of attribute source_repo.
-
#target_output_directory ⇒ Object
readonly
Returns the value of attribute target_output_directory.
-
#template_directory ⇒ Object
readonly
Returns the value of attribute template_directory.
-
#variable_overrides ⇒ Object
readonly
Returns the value of attribute variable_overrides.
-
#variables ⇒ Object
readonly
Returns the value of attribute variables.
Instance Method Summary collapse
-
#initialize(config:, template_directory:, rendered_directory:, definitions_path:, kubernetes_cluster_type:, variable_overrides: {}, source_repo: nil) ⇒ ResourceSet
constructor
A new instance of ResourceSet.
- #normal_render(args) ⇒ Object
- #render(args) ⇒ Object
- #render_create_directory(args, output_directory) ⇒ Object
Constructor Details
#initialize(config:, template_directory:, rendered_directory:, definitions_path:, kubernetes_cluster_type:, variable_overrides: {}, source_repo: nil) ⇒ ResourceSet
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 18 def initialize(config:, template_directory:, rendered_directory:, definitions_path:, kubernetes_cluster_type:, variable_overrides: {}, source_repo: nil) @variables = config["variables"] || {} @deploy_group_config = config["deploy_groups"] @omitted_resources = config["omitted_resources"] @template_directory = template_directory @target_output_directory = config["directory"] or raise ArgumentError, "missing 'directory:' in #{config.inspect}" @regions = config["regions"] || [] @colors = config["colors"] || [] @rendered_directory = rendered_directory @definitions_path = definitions_path @kubernetes_cluster_type = kubernetes_cluster_type @variable_overrides = variable_overrides @source_repo = source_repo @resources = {} if @kubernetes_cluster_type != "kube-platform" @target_output_directory.include?("%{plain_region}") or raise "#{@template_directory}: target_output_directory #{@target_output_directory} needs %{plain_region}" end end |
Instance Attribute Details
#colors ⇒ Object (readonly)
Returns the value of attribute colors.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def colors @colors end |
#definitions_path ⇒ Object (readonly)
Returns the value of attribute definitions_path.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def definitions_path @definitions_path end |
#deploy_group_config ⇒ Object (readonly)
Returns the value of attribute deploy_group_config.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def deploy_group_config @deploy_group_config end |
#kubernetes_cluster_type ⇒ Object (readonly)
Returns the value of attribute kubernetes_cluster_type.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def kubernetes_cluster_type @kubernetes_cluster_type end |
#omitted_resources ⇒ Object (readonly)
Returns the value of attribute omitted_resources.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def omitted_resources @omitted_resources end |
#output_directory ⇒ Object (readonly)
Returns the value of attribute output_directory.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def output_directory @output_directory end |
#regions ⇒ Object (readonly)
Returns the value of attribute regions.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def regions @regions end |
#source_repo ⇒ Object (readonly)
Returns the value of attribute source_repo.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def source_repo @source_repo end |
#target_output_directory ⇒ Object (readonly)
Returns the value of attribute target_output_directory.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def target_output_directory @target_output_directory end |
#template_directory ⇒ Object (readonly)
Returns the value of attribute template_directory.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def template_directory @template_directory end |
#variable_overrides ⇒ Object (readonly)
Returns the value of attribute variable_overrides.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def variable_overrides @variable_overrides end |
#variables ⇒ Object (readonly)
Returns the value of attribute variables.
13 14 15 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 13 def variables @variables end |
Instance Method Details
#normal_render(args) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 38 def normal_render(args) dynamic_output_directory? and raise "Directory must not be dynamic: #{target_output_directory}" variables["kubernetes_cluster_type"] = @kubernetes_cluster_type if (plain_region = variables["plain_region"]) default_region_vars(plain_region) end output_directory = File.join(@rendered_directory, target_output_directory) render_create_directory(args, output_directory) end |
#render(args) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 51 def render(args) @regions.any? or raise "#{template_directory}: must have at least one region" @colors.any? or raise "#{template_directory}: must have at least one color" variables["kubernetes_cluster_type"] = @kubernetes_cluster_type @regions.each do |plain_region| default_region_vars(plain_region) @colors.each do |c| variables["color"] = c output_directory = File.join(@rendered_directory, format(@target_output_directory, plain_region: plain_region, color: c, type: @kubernetes_cluster_type)) render_create_directory(args, output_directory) end end end |
#render_create_directory(args, output_directory) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/kubernetes_template_rendering/resource_set.rb', line 68 def render_create_directory(args, output_directory) prune_directory(output_directory) if args.prune? create_directory(output_directory) puts "Rendering templates to: #{Color.magenta(output_directory)}" puts "Variable assignments:" variables.each { |k, v| puts "\t#{Color.magenta(k)}=#{Color.blue(v)}" } puts if omitted_resources puts "Omitted resources:" omitted_resources.each { |ot| puts "\t#{ot}" } end puts resources(output_directory).each do |resource| resource.render(args) end puts end |