I have a series of .NET kubernetes services that all need to retrieve dynamically a series of configurations from a database, since the deployment of this infrastructure is going to be on-prem for multiple clients each with a different configuration.

This means that configuration-as-code and all the cloud-based solutions are out of question.

I initially developed a ConfigurationProvider that given a database connection retrieves and joins a series of jsonb from PostreSQL by a "topic" key: this works ok because the query is done only at startup and there is a single instance of each service (and also allows subscription to the key updated event postgre generates, enabling hot-reloading)

An hard requirement i have is that the configuration must be stored in a database. I would love to know about more optimal solutions, but the operations team only knows how to deal in SQL because they have been using only that for the past 20 years.

Ideally the configuration database is unique and common for each service, that should have a different dedicated database for data.

I was wondering if this solution could actually work long term and scale, or if someone has already had experience with something similar and has suggestions.

Would a single "configuration provider" service work better than a "eveyone queries their own"? And if so... are there any ready-to-use solutions (open source or at a price) that work well with being virtualized in a on-prem kubernetes cluster? Maybe even offering an UI for the Operations people?

  • Kubernetes itself uses etcd for this purpose, a distributed key–value store. It's not clear to my why an on-prem scenario would make it impossible to use the standard Kubernetes APIs.
    – amon
    Dec 3, 2023 at 19:14
  • @amon How do you load the config into etcd? In a multiple on-premise scenario, you are going to be doing cold deploys to a clean cluster on a regular basis. Dec 3, 2023 at 20:46
  • 1
    Another problem i have is that the Operations team at my company is made of... people not wise in the ways of the terminal, to put it kindly. I need to store configurations in a database as a requirement for the ops to do their job, unfortunately.
    – Jiulia
    Dec 4, 2023 at 2:55


Browse other questions tagged or ask your own question.