I have three environments - QA, Staging, Production. Each one has its own credentials.properties file
Right now I just have one secret and it's referenced and mounted in my yaml file as follows
- name: identity-service-secret-here-credentials-volume
mountPath: "/root/.secrets"
.
.
.
- name: identity-service-secret-here-credentials-volume
secret:
secretName: identity-service-secret-here-credentialsI want it to do the equivalent of
if(env = QA)
secretName = secret-qa
if(env = Staging)
secretName = secret-staging
if(env = Prod)
secretName = secret-prodIt is bad design (also from a security perspective) to have helm control structures directives to manage deployments across dev, stage and prod in one YAML file.
It best to manage distinct k8s objects for respective deployments required in a distinct environment.
It may be necessary to maintain a distinct Secret in each stage of the pipeline or to make modifications to it as it traverses through the pipeline. Also, take care that if you are storing the Secret as JSON or YAML in an SCM, there is some form of encryption to protect the sensitive information may be warranted.