class Kustomize::Transform::RefFixupTransform

Constants

CRONJOB_TEMPLATE_LENSES
FINGERPRINT_LENS
KEY_REF_LENSES_BY_KIND
NAME_LENS
POD_TEMPLATE_LENSES
SUFFIX_JOINER

Public Instance Methods

rewrite_all(rcs) click to toggle source
# File lib/kustomize/transform/ref_fixup_transform.rb, line 39
def rewrite_all(rcs)
  ref_fixups =
    rcs.flat_map do |rc|
      fingerprint = FINGERPRINT_LENS.get_in(rc)
      next([]) unless fingerprint

      suffixed_name = NAME_LENS.get_in(rc)
      base_name = suffixed_name.gsub(/-#{fingerprint}$/, '')
      [[base_name, suffixed_name]]
    end.to_h

  rcs.map do |rc|
    key_ref_lenses = KEY_REF_LENSES_BY_KIND[rc['kind']]
    next(rc) unless key_ref_lenses

    key_ref_lenses.inject(rc) do |doc, lens|
      lens.update_in(doc) do |base_name|
        if suffixed_name = ref_fixups[base_name]
          [:set, suffixed_name]
        else
          :keep
        end
      end
    end
  end
end