|
|
@@ -3916,7 +3916,16 @@
|
|
|
If there is a conflict with an existing resource the controller will error out.</p>
|
|
|
<h2 id="example">Example</h2>
|
|
|
<p>Below is an example of the <code>ClusterPushSecret</code> in use.</p>
|
|
|
-<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>
|
|
|
+<div class="highlight"><pre><span></span><code><span class="nn">---</span>
|
|
|
+<span class="c1"># The source secret that will be pushed to the destination secret by ClusterPushSecret.</span>
|
|
|
+<span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1</span>
|
|
|
+<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Secret</span>
|
|
|
+<span class="nt">metadata</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">source-secret</span>
|
|
|
+<span class="nt">stringData</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="nt">best-pokemon-src</span><span class="p">:</span><span class="w"> </span><span class="s">"Pikachu"</span>
|
|
|
+<span class="nn">---</span>
|
|
|
+<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">ClusterPushSecret</span>
|
|
|
<span class="nt">metadata</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"hello-world"</span>
|
|
|
@@ -3947,7 +3956,7 @@ If there is a conflict with an existing resource the controller will error out.<
|
|
|
<span class="w"> </span><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretStore</span>
|
|
|
<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">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">source-secret</span><span class="w"> </span><span class="c1"># Source Kubernetes secret to be pushed</span>
|
|
|
<span class="w"> </span><span class="c1"># Alternatively, you can point to a generator that produces values to be pushed</span>
|
|
|
<span class="w"> </span><span class="nt">generatorRef</span><span class="p">:</span>
|
|
|
<span class="w"> </span><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>
|
|
|
@@ -3958,10 +3967,12 @@ If there is a conflict with an existing resource the controller will error out.<
|
|
|
<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="c1"># If the key source secret key has dashes, then it cannot be accessed directly,</span>
|
|
|
+<span class="w"> </span><span class="c1"># and the "index" function should be used.</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">index</span><span class="nv"> </span><span class="s">.</span><span class="nv"> </span><span class="s">\"best-pokemon-src\"</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"># Also, it's possible to use an existing template from configmap where Secret is fetched, </span>
|
|
|
+<span class="w"> </span><span class="c1"># 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["config.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>
|
|
|
@@ -3970,10 +3981,11 @@ If there is a conflict with an existing resource the controller will error out.<
|
|
|
<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">conversionStrategy</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">None</span><span class="w"> </span><span class="c1"># Also supports the ReverseUnicode strategy</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="c1"># The secretKey is used within ClusterPushSecret (it should match key under spec.pushSecretSpec.template.data)</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="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>
|
|
|
-
|
|
|
+<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">destination-secret</span><span class="w"> </span><span class="c1"># The destination secret object name (where the secret is going to be pushed)</span>
|
|
|
+<span class="w"> </span><span class="nt">property</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">best-pokemon-dst</span><span class="w"> </span><span class="c1"># The key within the destination secret object.</span>
|
|
|
<span class="nt">status</span><span class="p">:</span>
|
|
|
<span class="w"> </span><span class="c1"># This will list any namespaces where the creation of the ExternalSecret failed</span>
|
|
|
<span class="w"> </span><span class="c1"># This will not list any issues with the ExternalSecrets, you will have to check the</span>
|
|
|
@@ -3996,6 +4008,15 @@ If there is a conflict with an existing resource the controller will error out.<
|
|
|
<span class="w"> </span><span class="nt">status</span><span class="p">:</span><span class="w"> </span><span class="s">"True"</span>
|
|
|
<span class="w"> </span><span class="nt">lastTransitionTime</span><span class="p">:</span><span class="w"> </span><span class="s">"2022-01-12T12:33:02Z"</span>
|
|
|
</code></pre></div>
|
|
|
+<p>The result of the created Secret object will look like:</p>
|
|
|
+<div class="highlight"><pre><span></span><code><span class="c1"># The destination secret that will be templated and pushed by ClusterPushSecret.</span>
|
|
|
+<span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1</span>
|
|
|
+<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Secret</span>
|
|
|
+<span class="nt">metadata</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">destination-secret</span>
|
|
|
+<span class="nt">stringData</span><span class="p">:</span>
|
|
|
+<span class="w"> </span><span class="nt">best-pokemon-dst</span><span class="p">:</span><span class="w"> </span><span class="s">"PIKACHU</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>
|
|
|
+</code></pre></div>
|
|
|
|
|
|
|
|
|
|