26
Enable preview environment group override
z
zach
Proposal
It would be really nice to have the following syntax available in
render.yaml
:envVars:
- fromGroup: my-production-env-group
- fromGroupPreviewOverride: my-preview-env-group
This problem has come up several times in the community and is one of the most important parts of a streamlined CI/CD workflow. I would love to see it on the roadmap :)
Problem statement
Currently, there are 3 options for overriding environment variables in preview environments:
Solution 1
Define them in plaintext within
render.yaml
:envVars:
- key: MY_ENV_VAR
value: production-value
previewValue: preview-value
This works for values that can be shared, but is not suitable for private secrets (which is a pretty common use-case)
Solution 2
Define them with
sync: false
and manually
fill them in on each PR.This works, but is extremely time consuming, especially if your env file has 10+ variables to fill in.
Solution 3 (workaround)
Omit environment groups from
render.yaml
altogether, but still reference them in your services. For example:envVars:
- fromGroup: my-production-env-group
- fromGroup: my-preview-env-group
From here, you must write additional logic into your application to choose the correct variable based on the environment.
let myVariable;
if (process.env.NODE_ENV === 'development') {
myVariable = process.env.LOCAL_VALUE
}
if (process.env.NODE_ENV === 'production') {
// https://render.com/docs/environment-variables#all-services
if (process.env.IS_PULL_REQUEST) {
myVariable = process.env.PREVIEW_VALUE
} else {
myVariable = process.env.PROD_VALUE
}
}
In my opinion, this 3rd solution is the best, but still isn't great because it requires you to expose production variables in your preview environment.
Log In
Activity
Newest
Oldest
k
kossy
This is the only thing blocking our switch from Heroku, so I think it should be table stakes not a nice to have
R
Richard Keil
This is a must have for preview environments.