I have just merged a PR (*) which changes naming conventions for TFTP (kernel/init ram disk) files and creates an API so plugins can easily hook and provide their own conventions. Katello, for example, will take advantage of that and will name the files after product name and kickstart id.
The default Foreman core example is
Installation-Media-Name-base64_hash-vmlinuz. The hash is a SHA of installation media URL after variables are interpolated. Example:
# old: boot/Redhat-6.1-x86_64-vmlinuz boot/Redhat-6.1-x86_64-initrd.img # new: boot/CentOS_mirror-aBsbsZ_lDn-vmlinuz boot/CentOS_mirror-aBsbsZ_lDn-initrd.img
Katello PR is still opened, but so far it looks like (assuming repository ID of 221):
This will allow kickstart flavours to co-exist (Worstation vs Server) and also changing Installation media for hosts/hostgroups will not lead to re-downloading and over-writing same files over and over again.
Big thanks to @Shimon_Shtein who did all the coding and all others involved in the review.