Class: Kustomize::Emitter::DocumentEmitter::KustomizationDocumentEmitter

Inherits:
Kustomize::Emitter::DocumentEmitter show all
Defined in:
lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb

Instance Method Summary collapse

Methods inherited from Kustomize::Emitter::DocumentEmitter

#initialize, load

Methods inherited from Kustomize::Emitter

#input_resources, #inspect, #to_yaml_stream

Constructor Details

This class inherits a constructor from Kustomize::Emitter::DocumentEmitter

Instance Method Details

#common_annotations_transformsObject



106
107
108
109
110
111
112
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 106

def common_annotations_transforms
  if new_annots = @doc['commonAnnotations']
    [Kustomize::Transform::CommonAnnotationsTransform.create(new_annots)]
  else
    []
  end
end

#common_labels_transformsObject



114
115
116
117
118
119
120
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 114

def common_labels_transforms
  if new_labels = @doc['commonLabels']
    [Kustomize::Transform::CommonLabelsTransform.create(new_labels)]
  else
    []
  end
end

#emitObject



135
136
137
138
139
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 135

def emit
  self.transforms.inject(self.input_resources) do |rcs, xform|
    xform.rewrite_all(rcs)
  end
end

#image_transformsObject



74
75
76
77
78
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 74

def image_transforms
  (@doc['images'] || []).map do |op_spec|
    Kustomize::Transform::ImageTransform.create(op_spec)
  end
end

#input_emittersObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 21

def input_emitters
  return @input_emitters if @input_emitters

  rc_pathspecs =
    (@doc['bases'] || []) +
    (@doc['resources'] || [])

  gen_plugin_pathspecs =
    (@doc['generators'] || [])

  input_emitters = rc_pathspecs.map do |rel_path|
    build_input_emitter(rel_path)
  end

  gen_plugin_rc_emitters = gen_plugin_pathspecs.map do |rel_path|
    build_input_emitter(rel_path)
  end

  unless gen_plugin_rc_emitters.empty?
    gen_plugins_emitter = Kustomize::Emitter::GeneratorPluginsEmitter.new(
      gen_plugin_rc_emitters,
      session: @session
    )

    input_emitters.push(gen_plugins_emitter)
  end

  @input_emitters = input_emitters
end

#json_6902_patch_transformsObject



68
69
70
71
72
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 68

def json_6902_patch_transforms
  ((@doc['patches'] || []) + (@doc['patchesJson6902'] || [])).map do |op_spec|
    Kustomize::Transform::Json6902PatchTransform.create(self, op_spec)
  end
end

#namespace_transformsObject



98
99
100
101
102
103
104
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 98

def namespace_transforms
  if new_ns = @doc['namespace']
    [Kustomize::Transform::NamespaceTransform.create(new_ns)]
  else
    []
  end
end

#source_directoryObject



17
18
19
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 17

def source_directory
  @source[:path].parent
end

#transformer_plugin_transformsObject



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 80

def transformer_plugin_transforms
  xformer_plugin_rc_emitters =
    (@doc['transformers'] || []).map do |rel_path|
      build_input_emitter(rel_path)
    end

  if xformer_plugin_rc_emitters.length > 0
    xform = Kustomize::Transform::TransformerPluginsTransform.create(
      xformer_plugin_rc_emitters,
      session: @session
    )

    [xform]
  else
    []
  end
end

#transformsObject



122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/kustomize/emitter/document_emitter/kustomization_document_emitter.rb', line 122

def transforms
  return @transforms if @transforms

  @transforms = [
    self.namespace_transforms,
    self.image_transforms,
    self.common_annotations_transforms,
    self.common_labels_transforms,
    self.json_6902_patch_transforms,
    self.transformer_plugin_transforms
  ].flatten
end