Multi service architecture with a monorepo

I’ve been evaluating the feasibility of migrating our kubernetes based application to the render platform.

One thing I’m struggling with is as far as I can tell blueprints as defined by yaml files are limited to one per repo. Which would be fine if each of our services were one repo. But we have a mono repo. In addition to that we depend on about 7 other open source projects each requiring one or more services to work.

The render file is starting to spiral out of control to define our applications blueprint. In kubernetes we use kustomize to group manifests by app which helps with the complexity. I don’t see any good solutions to break up the render file.

Another place I’ve looked is the terraform provider. Which seems like a logical tool for us to use. But as far as I can tell there’s no way to deploy a blueprint via terraform so I have to choose between these two concepts. If I choose terraform it means I cant have preview environments. But i gain the ability to break down our services into apps.

I’ve thought about doing some sort of yaml composition like kustomize does. I’ll have to commit the generated file but that might be the most viable path.

How are other teams solving this?

My plan on handling this right now is to map the render.yaml blueprint concepts to code. Like this.

Update1 I can’t seem to link to the gist where I put the mapping. Let me try image

Update2 lol I can’t embed media either. Just use your imagination with bindings for all the blueprint parts in go code

Once it’s code I can make whatever abstraction I want to organize our deployment, generate and commit the render.yaml.

I can’t actually link to the repo because im a new user. But I vibe coded up and published as MIT a library that does what I was describing. look up Clause-Logic/render-compose on GitHub