<p>I have one configuration file which as following. This file is a configmap and will be mounted and read by my app. The problem here is that this configuration file has one property with my db password. And I don't want to it to be exposed. So is there anyway to inject kubernetes secret into such configuration file. Thanks</p>

<pre><code>&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&gt;
&lt;configuration&gt;
  &lt;property&gt;
    &lt;name&gt;javax.jdo.option.ConnectionUserName&lt;/name&gt;
    &lt;value&gt;hive&lt;/value&gt;
  &lt;/property&gt;
  &lt;property&gt;
    &lt;name&gt;javax.jdo.option.ConnectionPassword&lt;/name&gt;
    &lt;value&gt;my_db_password&lt;/value&gt;
  &lt;/property&gt;
</code></pre>

zjffdu
<p>You can use a combination of an init container an a shared volume for this, if you don't want to expose the secret to the application container directly.</p>

<p>The init container uses the secret to create the configuration file from a template (f.e. <code>sed</code> replacing a placeholder) and place the file in a shared volume. The application container uses the volume to retrieve the file. (Given that you can configure the path where the application expects the configuration file.)</p>

<p>The other option is to simply use the secret as an environment variable for your application and retrieve it separately from the general configuration.</p>
