Во-первых, зачем вы плодите кучу темплейтов, если на выходе у вас везде обычный json? Вынесите всю структуру в нужные вам переменные и в итоге достаточно одного теплейта.
Делаете переменную, которой присваиваете разные значения в виде словарей, списков и т.п. Условно kube_config. И в темплейте просто делаете: kube_config | to_nice_json
генерацию сертификатов с последующим копированием лучше вынести в отдельные плеи для разных групп, если там отличаются способы генерации. Для той группы, где все одинаково, делается отдельный плей вида:
И в плее делается последовательность из тасок генерации сертификатов (нужной командой) с delegate_to: localhost, а потом обычная таска copy без всяких делегейтов и лупов. Она скопирует заданный в src сертификат на все хосты группы
В принципе, можно и одним плеем обойтись, наверное на ту же группу all. Но тогда нужно поработать с групповыми переменными, вынеся все различия в командах в соответствующие групповые переменные.