There's a page here on the 9 different changes that can occur in Japanese when words or syllables are joined.
The insertion of a つ is 促音化 sokuonka (gemination in English).
The general rules are relatively straightforward for most two on-yomi compounds.
- First character reading ends in tsu followed by k, s or t -> tsu changes to
sokuon (発射 hatsu+sha = hassha)
- First character reading ends in ku followed by k -> ku changes to sokuon (国歌 koku + ka = kokka)
- First character reading ends in tsu followed by h -> tsu changes to sokuon, h changes to p (出版 shutsu + han = shuppan)
- First character reading ends in n followed by h -> h changes to p (新品 shin+hin= shinpin)
In words of three or more characters, the gemination can be optional for the third character. It is more likely if the three characters are thought of as one word, rather than as word+suffix.
E.g. sentaku (washing) + ki (machine) -> both sentakki and sentakuki are allowed
Rendaku, which is specifically the voicing of consonants in compounds, is not common for on-yomic compounds, but can happen. E.g. 融通 is yuuzuu, which has rendaku changing the reading of 通 tsuu to zuu.
Kun-yomi, numbers and some other compounds can be less regular, although there are general rules. And there are, as always, exceptions to the above.