I would first separate app code and infra code in different repos. For example ‘order-service’ and ‘order-service-infra’
The ‘-infra’ code should ideally be simple usage of some reusable terraform (for example) module (oss or built in-house).
I think this could work but only if you have team which is little bit more mature with cloud tech. You can kind of have internal oss and you share a bit responsibility between platform and app teams.
In case you do not have mature teams, I would completely separate app code and infra. App code owners are the app teams and infra code owners is the platform team. I talked to a lot of app developers, presented both options but they simply don’t want to hear about terraform, they just want connection string (it was DB in my case).