mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-18 02:01:29 +00:00
update docs site
This commit is contained in:
@@ -305,236 +305,6 @@
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Command Line Options</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmd">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/build/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">build</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdbuild">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/cfg/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">cfg</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdcfg">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/create/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">create</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdcreate">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/edit/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">edit</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdedit">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/fn/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">fn</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdfn">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/help/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">help</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdhelp">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/install-completion/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">install-completion</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdinstall-completion">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/live/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">live</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdlive">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/cmd/version/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">version</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li class="collapse " id="kustomizeguidescmdversion">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="td-sidebar-nav__section pr-md-3">
|
||||
<li class="td-sidebar-nav__section-title">
|
||||
<a href="/kustomize/guides/components/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Kustomize Components</a>
|
||||
@@ -624,340 +394,8 @@
|
||||
<h1>Kustomize Components</h1>
|
||||
<div class="lead">Kustomize components guide</div>
|
||||
<meta http-equiv="refresh" content="0; url=https://kubectl.docs.kubernetes.io/guides/config_management/components/" />
|
||||
<p>As of <code>v3.7.0</code> Kustomize supports a special type of kustomization that allows
|
||||
one to define reusable pieces of configuration logic that can be included from
|
||||
multiple overlays.</p>
|
||||
<p>Components come in handy when dealing with applications that support multiple
|
||||
optional features and you wish to enable only a subset of them in different
|
||||
overlays, i.e., different features for different environments or audiences.</p>
|
||||
<p>For more details regarding this feature you can read the
|
||||
<a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/1802-kustomize-components.md">Kustomize Components KEP</a>.</p>
|
||||
<h2 id="use-case">Use case</h2>
|
||||
<p>Suppose you’ve written a very simple Web application:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml"><span style="color:#204a87;font-weight:bold">apiVersion</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">apps/v1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">kind</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">Deployment</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">metadata</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">example</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">spec</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">template</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">spec</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">containers</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">example</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">example:1.0</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span></code></pre></div><p>You want to deploy a <strong>community</strong> edition of this application as SaaS, so you
|
||||
add support for persistence (e.g. an external database), and bot detection
|
||||
(e.g. Google reCAPTCHA).</p>
|
||||
<p>You’ve now attracted <strong>enterprise</strong> customers who want to deploy it
|
||||
on-premises, so you add LDAP support, and disable Google reCAPTCHA. At the same
|
||||
time, the <strong>devs</strong> need to be able to test parts of the application, so they
|
||||
want to deploy it with some features enabled and others not.</p>
|
||||
<p>Here’s a matrix with the deployments of this application and the features
|
||||
enabled for each one:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th style="text-align:center">External DB</th>
|
||||
<th style="text-align:center">LDAP</th>
|
||||
<th style="text-align:center">reCAPTCHA</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Community</td>
|
||||
<td style="text-align:center">✔️</td>
|
||||
<td style="text-align:center"></td>
|
||||
<td style="text-align:center">✔️</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Enterprise</td>
|
||||
<td style="text-align:center">✔️</td>
|
||||
<td style="text-align:center">✔️</td>
|
||||
<td style="text-align:center"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dev</td>
|
||||
<td style="text-align:center">✅</td>
|
||||
<td style="text-align:center">✅</td>
|
||||
<td style="text-align:center">✅</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>(✔️ enabled, ✅: optional)</p>
|
||||
<p>So, you want to make it easy to deploy your application in any of the above
|
||||
three environments. Here’s how you can do this with Kustomize components: each
|
||||
opt-in feature gets packaged as a component, so that it can be referred to from
|
||||
multiple higher-level overlays.</p>
|
||||
<p>First, define a place to work:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">DEMO_HOME</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87;font-weight:bold">$(</span>mktemp -d<span style="color:#204a87;font-weight:bold">)</span>
|
||||
</code></pre></div><p>Define a common <strong>base</strong> that has a <code>Deployment</code> and a simple <code>ConfigMap</code>, that
|
||||
is mounted on the application’s container.</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">BASE</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/base
|
||||
mkdir <span style="color:#000">$BASE</span>
|
||||
<p>Moved to <a href="https://github.com/kubernetes-sigs/cli-experimental">https://github.com/kubernetes-sigs/cli-experimental</a></p>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$BASE/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">resources:
|
||||
</span><span style="color:#4e9a06">- deployment.yaml
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">configMapGenerator:
|
||||
</span><span style="color:#4e9a06">- name: conf
|
||||
</span><span style="color:#4e9a06"> literals:
|
||||
</span><span style="color:#4e9a06"> - main.conf=|
|
||||
</span><span style="color:#4e9a06"> color=cornflower_blue
|
||||
</span><span style="color:#4e9a06"> log_level=info
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$BASE/deployment.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: apps/v1
|
||||
</span><span style="color:#4e9a06">kind: Deployment
|
||||
</span><span style="color:#4e9a06">metadata:
|
||||
</span><span style="color:#4e9a06"> name: example
|
||||
</span><span style="color:#4e9a06">spec:
|
||||
</span><span style="color:#4e9a06"> template:
|
||||
</span><span style="color:#4e9a06"> spec:
|
||||
</span><span style="color:#4e9a06"> containers:
|
||||
</span><span style="color:#4e9a06"> - name: example
|
||||
</span><span style="color:#4e9a06"> image: example:1.0
|
||||
</span><span style="color:#4e9a06"> volumeMounts:
|
||||
</span><span style="color:#4e9a06"> - name: conf
|
||||
</span><span style="color:#4e9a06"> mountPath: /etc/config
|
||||
</span><span style="color:#4e9a06"> volumes:
|
||||
</span><span style="color:#4e9a06"> - name: conf
|
||||
</span><span style="color:#4e9a06"> configMap:
|
||||
</span><span style="color:#4e9a06"> name: conf
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Define an <code>external_db</code> component, using <code>kind: Component</code>, that creates a
|
||||
<code>Secret</code> for the DB password and a new entry in the <code>ConfigMap</code>:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">EXT_DB</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/components/external_db
|
||||
mkdir -p <span style="color:#000">$EXT_DB</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$EXT_DB/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation
|
||||
</span><span style="color:#4e9a06">kind: Component
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">secretGenerator:
|
||||
</span><span style="color:#4e9a06">- name: dbpass
|
||||
</span><span style="color:#4e9a06"> files:
|
||||
</span><span style="color:#4e9a06"> - dbpass.txt
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">patchesStrategicMerge:
|
||||
</span><span style="color:#4e9a06"> - configmap.yaml
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">patchesJson6902:
|
||||
</span><span style="color:#4e9a06">- target:
|
||||
</span><span style="color:#4e9a06"> group: apps
|
||||
</span><span style="color:#4e9a06"> version: v1
|
||||
</span><span style="color:#4e9a06"> kind: Deployment
|
||||
</span><span style="color:#4e9a06"> name: example
|
||||
</span><span style="color:#4e9a06"> path: deployment.yaml
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$EXT_DB/deployment.yaml
|
||||
</span><span style="color:#4e9a06">- op: add
|
||||
</span><span style="color:#4e9a06"> path: /spec/template/spec/volumes/0
|
||||
</span><span style="color:#4e9a06"> value:
|
||||
</span><span style="color:#4e9a06"> name: dbpass
|
||||
</span><span style="color:#4e9a06"> secret:
|
||||
</span><span style="color:#4e9a06"> secretName: dbpass
|
||||
</span><span style="color:#4e9a06">- op: add
|
||||
</span><span style="color:#4e9a06"> path: /spec/template/spec/containers/0/volumeMounts/0
|
||||
</span><span style="color:#4e9a06"> value:
|
||||
</span><span style="color:#4e9a06"> mountPath: /var/run/secrets/db/
|
||||
</span><span style="color:#4e9a06"> name: dbpass
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$EXT_DB/configmap.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: v1
|
||||
</span><span style="color:#4e9a06">kind: ConfigMap
|
||||
</span><span style="color:#4e9a06">metadata:
|
||||
</span><span style="color:#4e9a06"> name: conf
|
||||
</span><span style="color:#4e9a06">data:
|
||||
</span><span style="color:#4e9a06"> db.conf: |
|
||||
</span><span style="color:#4e9a06"> endpoint=127.0.0.1:1234
|
||||
</span><span style="color:#4e9a06"> name=app
|
||||
</span><span style="color:#4e9a06"> user=admin
|
||||
</span><span style="color:#4e9a06"> pass=/var/run/secrets/db/dbpass.txt
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Define an <code>ldap</code> component, that creates a <code>Secret</code> for the LDAP password
|
||||
and a new entry in the <code>ConfigMap</code>:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">LDAP</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/components/ldap
|
||||
mkdir -p <span style="color:#000">$LDAP</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$LDAP/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: kustomize.config.k8s.io/v1alpha1
|
||||
</span><span style="color:#4e9a06">kind: Component
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">secretGenerator:
|
||||
</span><span style="color:#4e9a06">- name: ldappass
|
||||
</span><span style="color:#4e9a06"> files:
|
||||
</span><span style="color:#4e9a06"> - ldappass.txt
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">patchesStrategicMerge:
|
||||
</span><span style="color:#4e9a06"> - configmap.yaml
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">patchesJson6902:
|
||||
</span><span style="color:#4e9a06">- target:
|
||||
</span><span style="color:#4e9a06"> group: apps
|
||||
</span><span style="color:#4e9a06"> version: v1
|
||||
</span><span style="color:#4e9a06"> kind: Deployment
|
||||
</span><span style="color:#4e9a06"> name: example
|
||||
</span><span style="color:#4e9a06"> path: deployment.yaml
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$LDAP/deployment.yaml
|
||||
</span><span style="color:#4e9a06">- op: add
|
||||
</span><span style="color:#4e9a06"> path: /spec/template/spec/volumes/0
|
||||
</span><span style="color:#4e9a06"> value:
|
||||
</span><span style="color:#4e9a06"> name: ldappass
|
||||
</span><span style="color:#4e9a06"> secret:
|
||||
</span><span style="color:#4e9a06"> secretName: ldappass
|
||||
</span><span style="color:#4e9a06">- op: add
|
||||
</span><span style="color:#4e9a06"> path: /spec/template/spec/containers/0/volumeMounts/0
|
||||
</span><span style="color:#4e9a06"> value:
|
||||
</span><span style="color:#4e9a06"> mountPath: /var/run/secrets/ldap/
|
||||
</span><span style="color:#4e9a06"> name: ldappass
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$LDAP/configmap.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: v1
|
||||
</span><span style="color:#4e9a06">kind: ConfigMap
|
||||
</span><span style="color:#4e9a06">metadata:
|
||||
</span><span style="color:#4e9a06"> name: conf
|
||||
</span><span style="color:#4e9a06">data:
|
||||
</span><span style="color:#4e9a06"> ldap.conf: |
|
||||
</span><span style="color:#4e9a06"> endpoint=ldap://ldap.example.com
|
||||
</span><span style="color:#4e9a06"> bindDN=cn=admin,dc=example,dc=com
|
||||
</span><span style="color:#4e9a06"> pass=/var/run/secrets/ldap/ldappass.txt
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Define a <code>recaptcha</code> component, that creates a <code>Secret</code> for the reCAPTCHA
|
||||
site/secret keys and a new entry in the <code>ConfigMap</code>:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">RECAPTCHA</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/components/recaptcha
|
||||
mkdir -p <span style="color:#000">$RECAPTCHA</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$RECAPTCHA/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: kustomize.config.k8s.io/v1alpha1
|
||||
</span><span style="color:#4e9a06">kind: Component
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">secretGenerator:
|
||||
</span><span style="color:#4e9a06">- name: recaptcha
|
||||
</span><span style="color:#4e9a06"> files:
|
||||
</span><span style="color:#4e9a06"> - site_key.txt
|
||||
</span><span style="color:#4e9a06"> - secret_key.txt
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06"># Updating the ConfigMap works with generators as well.
|
||||
</span><span style="color:#4e9a06">configMapGenerator:
|
||||
</span><span style="color:#4e9a06">- name: conf
|
||||
</span><span style="color:#4e9a06"> behavior: merge
|
||||
</span><span style="color:#4e9a06"> literals:
|
||||
</span><span style="color:#4e9a06"> - recaptcha.conf=|
|
||||
</span><span style="color:#4e9a06"> enabled=true
|
||||
</span><span style="color:#4e9a06"> site_key=/var/run/secrets/recaptcha/site_key.txt
|
||||
</span><span style="color:#4e9a06"> secret_key=/var/run/secrets/recaptcha/secret_key.txt
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">patchesJson6902:
|
||||
</span><span style="color:#4e9a06">- target:
|
||||
</span><span style="color:#4e9a06"> group: apps
|
||||
</span><span style="color:#4e9a06"> version: v1
|
||||
</span><span style="color:#4e9a06"> kind: Deployment
|
||||
</span><span style="color:#4e9a06"> name: example
|
||||
</span><span style="color:#4e9a06"> path: deployment.yaml
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$RECAPTCHA/deployment.yaml
|
||||
</span><span style="color:#4e9a06">- op: add
|
||||
</span><span style="color:#4e9a06"> path: /spec/template/spec/volumes/0
|
||||
</span><span style="color:#4e9a06"> value:
|
||||
</span><span style="color:#4e9a06"> name: recaptcha
|
||||
</span><span style="color:#4e9a06"> secret:
|
||||
</span><span style="color:#4e9a06"> secretName: recaptcha
|
||||
</span><span style="color:#4e9a06">- op: add
|
||||
</span><span style="color:#4e9a06"> path: /spec/template/spec/containers/0/volumeMounts/0
|
||||
</span><span style="color:#4e9a06"> value:
|
||||
</span><span style="color:#4e9a06"> mountPath: /var/run/secrets/recaptcha/
|
||||
</span><span style="color:#4e9a06"> name: recaptcha
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Define a <code>community</code> variant, that bundles the external DB and reCAPTCHA
|
||||
components:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">COMMUNITY</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/overlays/community
|
||||
mkdir -p <span style="color:#000">$COMMUNITY</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$COMMUNITY/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
</span><span style="color:#4e9a06">kind: Kustomization
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">resources:
|
||||
</span><span style="color:#4e9a06"> - ../../base
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">components:
|
||||
</span><span style="color:#4e9a06"> - ../../components/external_db
|
||||
</span><span style="color:#4e9a06"> - ../../components/recaptcha
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Define an <code>enterprise</code> overlay, that bundles the external DB and LDAP
|
||||
components:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">ENTERPRISE</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/overlays/enterprise
|
||||
mkdir -p <span style="color:#000">$ENTERPRISE</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$ENTERPRISE/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
</span><span style="color:#4e9a06">kind: Kustomization
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">resources:
|
||||
</span><span style="color:#4e9a06"> - ../../base
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">components:
|
||||
</span><span style="color:#4e9a06"> - ../../components/external_db
|
||||
</span><span style="color:#4e9a06"> - ../../components/ldap
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Define a <code>dev</code> overlay, that points to all the components and has LDAP
|
||||
disabled:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell"><span style="color:#000">DEV</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$DEMO_HOME</span>/overlays/dev
|
||||
mkdir -p <span style="color:#000">$DEV</span>
|
||||
|
||||
cat <span style="color:#4e9a06"><<EOF >$DEV/kustomization.yaml
|
||||
</span><span style="color:#4e9a06">apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
</span><span style="color:#4e9a06">kind: Kustomization
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">resources:
|
||||
</span><span style="color:#4e9a06"> - ../../base
|
||||
</span><span style="color:#4e9a06">
|
||||
</span><span style="color:#4e9a06">components:
|
||||
</span><span style="color:#4e9a06"> - ../../components/external_db
|
||||
</span><span style="color:#4e9a06"> #- ../../components/ldap
|
||||
</span><span style="color:#4e9a06"> - ../../components/recaptcha
|
||||
</span><span style="color:#4e9a06">EOF</span>
|
||||
</code></pre></div><p>Now, the workspace has the following directories:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">├── base
|
||||
│ ├── deployment.yaml
|
||||
│ └── kustomization.yaml
|
||||
├── components
|
||||
│ ├── external_db
|
||||
│ │ ├── configmap.yaml
|
||||
│ │ ├── dbpass.txt
|
||||
│ │ ├── deployment.yaml
|
||||
│ │ └── kustomization.yaml
|
||||
│ ├── ldap
|
||||
│ │ ├── configmap.yaml
|
||||
│ │ ├── deployment.yaml
|
||||
│ │ ├── kustomization.yaml
|
||||
│ │ └── ldappass.txt
|
||||
│ └── recaptcha
|
||||
│ ├── deployment.yaml
|
||||
│ ├── kustomization.yaml
|
||||
│ ├── secret_key.txt
|
||||
│ └── site_key.txt
|
||||
└── overlays
|
||||
├── community
|
||||
│ └── kustomization.yaml
|
||||
├── dev
|
||||
│ └── kustomization.yaml
|
||||
└── enterprise
|
||||
└── kustomization.yaml
|
||||
</code></pre></div><p>With this structure, you can generate the YAML manifests for each deployment
|
||||
using <code>kustomize build</code>:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">kustomize build overlays/community
|
||||
kustomize build overlays/enterprise
|
||||
kustomize build overlays/dev
|
||||
</code></pre></div>
|
||||
<div class="section-index">
|
||||
|
||||
|
||||
@@ -983,32 +421,12 @@ kustomize build overlays/dev
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="text-muted mt-5 pt-3 border-top">Last modified November 4, 2020: <a href="https://github.com/kubernetes-sigs/kustomize/commit/0834e152b203ffeccfbbf1ddd3c1f49debdac341">Redirect kustomize docs to the new unified site. (0834e152)</a>
|
||||
<div class="text-muted mt-5 pt-3 border-top">Last modified November 11, 2020: <a href="https://github.com/kubernetes-sigs/kustomize/commit/71b763888cad614abb44b3086e291fe72d601080">Remove duplicate kustomize docs content (71b76388)</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user