Dealing with Fragmented Terraform Repositories Across Teams: Is It Common?

0
5
Asked By TechExplorer42 On

I'm currently managing all of my team's infrastructure using a single, well-organized repository. We've got everything neatly separated into modules, and our deployment pipeline for dev, test, and prod is solid, which has been great so far. However, the challenge I face is that at my company, there are multiple teams responsible for shared infrastructure components like Postgres, Dagster, and Kafka, and each of these components is stored in different repositories maintained by different teams. Whenever I need to make a configuration change in one of these shared components, it requires opening a PR and making changes in a separate repo, which feels cumbersome and disruptive to my workflow. I'm curious if this fragmented approach is common in organizations and if there are better solutions or strategies that others are using, like Internal Developer Portals, GitOps, or centralized module registries.

4 Answers

Answered By ResourceMaster2000 On

Having shared resources like you described is pretty common, and the key is to manage what your app requires efficiently. Ideally, keep all necessary resources for your application in one place—treat the shared resources as external dependencies but change them locally when feasible. However, be cautious about making changes that fall under the purview of the main infrastructure team's responsibilities.

Answered By CloudyWithAChanceOfTerraform On

Yep, dealing with different repos for shared resources is a normal headache in a growing organization. You've got a couple of options: either roll with the punches or implement a management layer, like a control plane or Internal Developer Portal, to streamline access and governance over the repos.

Answered By TerraformTinkerer On

In my experience, we handle shared modules in various ways—sometimes they have their own repo, and other times they're included in our main infrastructure repo. For example, we have a dedicated repo for ECR modules but keep our EKS stuff in the infrastructure repo. It helps to have a team that solely owns that infra, while we collaborate when necessary. Right now, we're using Terraform Cloud as our control plane but looking into alternatives. As for context switching, I've found using VS Code with a single workspace that pulls in all relevant repos to be super helpful!

Answered By CodeSlinger99 On

Consider using something like Artifactory for managing images related to your shared components. You could tag your Postgres and Kafka images so you can reference specific versions without the hassle of automatic updates every time a new release comes out.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.