Helm Charts and .net appsettings.json files with variable configuration

We are transitioning to Kubernetes from a traditional windows server environment.

There is A LOT of .net services, and today the services has variable configuration in appsettings.json.

In order to make the transition to kubernetes as effortless as possible, we have created a general template for helm deployment, but the individual configuration settings in appsettings.json is a problem.

Kubectl deployment step, has the option for enabling “Structured Configuration Variables”, but this is NOT available for Helm deployment. The idea is, that we would do the same Helm deployment, and then mount the transformed appsettings.json through values.yaml. Thus the service would be configured for the deployment environment.

Any other ways of doing the same, inside the helm deployment step template?

Hi @cskydt!

Thanks for reaching out, and for the great question.

Sadly, the Helm step does not currently support the “Structured Configuration Variables” feature. This has had a couple of requests recently, so I’ll add your voice to the discussion for this feature request!

One workaround that comes to mind is to abstract your configuration files into a separate package, then use a step that does support SCV to handle the transformation, then leave it in your final location for volume mounting (S3/Azure files, etc.) Off the top of my head, I know this is available for our “Run an Azure/AWS/Gcloud Script” steps, as well as things like our “Upload package to S3” step as well.

I hope this helps with ideas on how to get your deployment process working in a way that achieves your desired outcomes!