|
|
@@ -72,6 +72,11 @@
|
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
|
<div data-md-component="skip">
|
|
|
|
|
|
+
|
|
|
+ <a href="#templating" class="md-skip">
|
|
|
+ Skip to content
|
|
|
+ </a>
|
|
|
+
|
|
|
</div>
|
|
|
<div data-md-component="announce">
|
|
|
|
|
|
@@ -631,10 +636,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
+ <label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
+ PushSecret
|
|
|
+ <span class="md-nav__icon md-icon"></span>
|
|
|
+ </label>
|
|
|
+
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
PushSecret
|
|
|
</a>
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <label class="md-nav__title" for="__toc">
|
|
|
+ <span class="md-nav__icon md-icon"></span>
|
|
|
+ Table of contents
|
|
|
+ </label>
|
|
|
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
+
|
|
|
+ <li class="md-nav__item">
|
|
|
+ <a href="#templating" class="md-nav__link">
|
|
|
+ Templating
|
|
|
+ </a>
|
|
|
+
|
|
|
+</li>
|
|
|
+
|
|
|
+ </ul>
|
|
|
+
|
|
|
+</nav>
|
|
|
+
|
|
|
</li>
|
|
|
|
|
|
|
|
|
@@ -2091,6 +2125,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
+ <label class="md-nav__title" for="__toc">
|
|
|
+ <span class="md-nav__icon md-icon"></span>
|
|
|
+ Table of contents
|
|
|
+ </label>
|
|
|
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
+
|
|
|
+ <li class="md-nav__item">
|
|
|
+ <a href="#templating" class="md-nav__link">
|
|
|
+ Templating
|
|
|
+ </a>
|
|
|
+
|
|
|
+</li>
|
|
|
+
|
|
|
+ </ul>
|
|
|
+
|
|
|
</nav>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -2113,7 +2162,8 @@
|
|
|
<p>The <code>PushSecret</code> is namespaced and it describes what data should be pushed to the secret provider.</p>
|
|
|
<ul>
|
|
|
<li>tells the operator what secrets should be pushed by using <code>spec.selector</code>.</li>
|
|
|
-<li>you can specify what secret keys should be pushed by using <code>spec.data</code></li>
|
|
|
+<li>you can specify what secret keys should be pushed by using <code>spec.data</code>.</li>
|
|
|
+<li>you can also template the resulting property values using <a href="#templating">templating</a>.</li>
|
|
|
</ul>
|
|
|
<div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1alpha1</span>
|
|
|
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">PushSecret</span>
|
|
|
@@ -2129,12 +2179,31 @@
|
|
|
<span class="w"> </span><span class="nt">selector</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="nt">secret</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pokedex-credentials</span><span class="w"> </span><span class="c1"># Source Kubernetes secret to be pushed</span>
|
|
|
+<span class="w"> </span><span class="nt">template</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="nt">metadata</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="nt">annotations</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">{</span><span class="w"> </span><span class="p p-Indicator">}</span>
|
|
|
+<span class="w"> </span><span class="nt">labels</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">{</span><span class="w"> </span><span class="p p-Indicator">}</span>
|
|
|
+<span class="w"> </span><span class="nt">data</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="nt">best-pokemon</span><span class="p">:</span><span class="w"> </span><span class="s">"{{</span><span class="nv"> </span><span class="s">.best-pokemon</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">toString</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">upper</span><span class="nv"> </span><span class="s">}}</span><span class="nv"> </span><span class="s">is</span><span class="nv"> </span><span class="s">the</span><span class="nv"> </span><span class="s">really</span><span class="nv"> </span><span class="s">best!"</span>
|
|
|
+<span class="w"> </span><span class="c1"># Uses an existing template from configmap</span>
|
|
|
+<span class="w"> </span><span class="c1"># Secret is fetched, merged and templated within the referenced configMap data</span>
|
|
|
+<span class="w"> </span><span class="c1"># It does not update the configmap, it creates a secret with: data["alertmanager.yml"] = ...result...</span>
|
|
|
+<span class="w"> </span><span class="nt">templateFrom</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">configMap</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">application-config-tmpl</span>
|
|
|
+<span class="w"> </span><span class="nt">items</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">config.yml</span>
|
|
|
<span class="w"> </span><span class="nt">data</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">match</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="nt">secretKey</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">best-pokemon</span><span class="w"> </span><span class="c1"># Source Kubernetes secret key to be pushed</span>
|
|
|
<span class="w"> </span><span class="nt">remoteRef</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="nt">remoteKey</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">my-first-parameter</span><span class="w"> </span><span class="c1"># Remote reference (where the secret is going to be pushed)</span>
|
|
|
</code></pre></div>
|
|
|
+<h2 id="templating">Templating</h2>
|
|
|
+<p>When the controller reconciles the <code>PushSecret</code> it will use the <code>spec.template</code> as a blueprint to construct a new property.
|
|
|
+You can use golang templates to define the blueprint and use template functions to transform the defined properties.
|
|
|
+You can also pull in <code>ConfigMaps</code> that contain golang-template data using <code>templateFrom</code>.
|
|
|
+See <a href="../../guides/templating/">advanced templating</a> for details.</p>
|
|
|
|
|
|
|
|
|
|