Class: Kustomize::Transform::PurgeInternalAnnotationsTransform

Inherits:
Kustomize::Transform show all
Includes:
Accessory, Singleton
Defined in:
lib/kustomize/transform/purge_internal_annotations_transform.rb

Constant Summary collapse

LENSES =
[
  Lens['metadata', 'annotations'],
  Lens['spec', 'template', 'metadata', 'annotations'],
  Lens['spec', 'jobTemplate', 'spec', 'template', 'metadata', 'annotations']
]
INTERNAL_ANNOT_PATTERNS =
[
  /^config\.kubernetes\.io\//,
  /^kustomizer\.covalenthq\.com\//
]

Instance Method Summary collapse

Methods inherited from Kustomize::Transform

create, #inspect, #rewrite_all

Instance Method Details

#rewrite(rc_doc) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/kustomize/transform/purge_internal_annotations_transform.rb', line 22

def rewrite(rc_doc)
  LENSES.inject(rc_doc) do |doc, lens|
    lens.update_in(rc_doc) do |orig_annots|
      next(:keep) unless orig_annots and orig_annots.length.nonzero?

      new_annots =
        orig_annots.reject{ |k, v| INTERNAL_ANNOT_PATTERNS.any?{ |pat| pat.match?(k) } }

      if new_annots.length == orig_annots.length
        :keep
      elsif new_annots.empty?
        :pop
      else
        [:set, new_annots]
      end
    end
  end
end