0

We are currently migrating our Services to a Kubernetes environment.

My question is if the configuration yaml file for each application

  • should be in the repository where the application source itself is stored,
  • or if there should be a centralized repository just for all the configuration files.

Currently I'm drifting more towards a centralized repository holding all configs, as dependencies on different versions of applications / services can be managed there. Another thing is that a change in the configuration should not trigger a rebuild of the application itself and this is also easier if the configuration and the application repositories are not the same.

1

If you're just migrating I'd also recommend using helm.

When using helm create the chart definition within the source code repository of the application, https://helm.sh/docs/helm/helm_create/.

With an increasing number of services it can become harder and harder to manage so people have started to embrace a "monorepo" that contains a definition of the all the helm charts they currently have deployed and their respective versions. This way you can easily track when a version of service A was bumped and when a version of service B was bumped. https://www.infracloud.io/blogs/monorepo-ci-cd-helm-kubernetes/

0

I don't think there is a right answer here, because there are pros and cons to both options.

A centralized approach is potentially DRYer and easier to manage but isn't connected to the apps themselves, so a change in the Kubernetes repository could make an app fail and the developer would be none the wiser.

A distributed or per repository approach allows you to delegate part of the work responsibility/powers to the developers of that repository but has the fragmentation problem (i.e. if your organization changes the way a commonly used Nginx deployment is done, it has to be updated in all repositories).

I'm sure there are more reasons and opinions, but in my view, these are the biggest points (besides what you already described). I hope this helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.