<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>5. Tools on ArgoCD Techlab</title><link>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/</link><description>Recent content in 5. Tools on ArgoCD Techlab</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/index.xml" rel="self" type="application/rss+xml"/><item><title>5.1 Helm</title><link>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/helm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/helm/</guid><description>&lt;p>This lab explains how to use &lt;a href="https://helm.sh/" target="_blank" rel="noopener">Helm&lt;/a>
 as manifest format together with Argo CD.&lt;/p>
&lt;h2 id="helm-introduction">Helm Introduction&lt;/h2>
&lt;p>&lt;a href="https://github.com/helm/helm" target="_blank" rel="noopener">Helm&lt;/a>
 is a &lt;a href="https://www.cncf.io/" target="_blank" rel="noopener">Cloud Native Foundation&lt;/a>
 project to define, install and manage applications in Kubernetes.&lt;/p>
&lt;p>It can be used to package multiple Kubernetes resources into a single logical deployment unit.&lt;/p>
&lt;p>Helm Charts are configured using &lt;code>values.yaml&lt;/code> files. (e.g. images, image tags, hostnames, &amp;hellip;).&lt;/p>
&lt;p>When using &lt;code>helm&lt;/code> charts together with Argo CD we can specify the &lt;code>values.yaml&lt;/code> like this:&lt;/p></description></item><item><title>5.2 Kustomize</title><link>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/kustomize/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/kustomize/</guid><description>&lt;p>This lab explains how to use &lt;a href="https://kustomize.io/" target="_blank" rel="noopener">kustomize&lt;/a>
 as manifest format together with Argo CD.&lt;/p>
&lt;h2 id="kustomize-introduction">Kustomize Introduction&lt;/h2>
&lt;p>&lt;a href="https://kustomize.io/" target="_blank" rel="noopener">Kustomize&lt;/a>
 introduces a template-free way to customize application configuration that simplifies the use of off-the-shelf applications. It is built into &lt;code>kubectl&lt;/code> and &lt;code>oc&lt;/code> with the command &lt;code>kubectl apply -k&lt;/code> or &lt;code>oc apply -k&lt;/code>.&lt;/p>
&lt;p>It uses a concept called overlays, which allows to reduce redundant configuration for multiple stages (e.g. dev, prod, test) without a use of a template language.&lt;/p></description></item><item><title>5.3 Jsonnet (Optional)</title><link>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/jsonnet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-349--argocd-basics-techlab.netlify.app/docs/05/jsonnet/</guid><description>&lt;p>This lab explains how to use &lt;a href="https://jsonnet.org/" target="_blank" rel="noopener">jsonnet&lt;/a>
 as manifest format together with Argo CD.&lt;/p>
&lt;h2 id="jsonnet">Jsonnet&lt;/h2>
&lt;p>&lt;a href="https://jsonnet.org/" target="_blank" rel="noopener">Jsonnet&lt;/a>
 is a templating language which adds the possibility to programmatically work with the underlying data. It basically is a simple extension of &lt;a href="https://json.org" target="_blank" rel="noopener">JSON&lt;/a>
.&lt;/p>
&lt;p>Let&amp;rsquo;s have a look at an example first. The following jsonnet file&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a40000">application1:&lt;/span> &lt;span style="color:#a40000">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a40000">name:&lt;/span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;jsonnet-application1&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a40000">basepath:&lt;/span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;/application/test&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a40000">path:&lt;/span> &lt;span style="color:#a40000">self.basepath&lt;/span> &lt;span style="color:#a40000">+&lt;/span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;/&amp;#34;&lt;/span> &lt;span style="color:#a40000">+&lt;/span> &lt;span style="color:#a40000">self.name&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">}&lt;/span>&lt;span style="color:#a40000">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a40000">application&lt;/span>&lt;span style="color:#0000cf;font-weight:bold">2&lt;/span>&lt;span style="color:#a40000">:&lt;/span> &lt;span style="color:#a40000">self.application&lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1&lt;/span> &lt;span style="color:#000;font-weight:bold">{&lt;/span> &lt;span style="color:#a40000">name:&lt;/span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;jsonnet-application2&amp;#34;&lt;/span> &lt;span style="color:#000;font-weight:bold">}&lt;/span>&lt;span style="color:#a40000">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a40000">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>will render into:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;application1&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;basepath&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;/application/test&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;name&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;jsonnet-application1&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;path&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;/application/test/jsonnet-application1&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">},&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;application2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;basepath&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;/application/test&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;name&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;jsonnet-application2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;path&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;/application/test/jsonnet-application2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Among many other features, Jsonnet can help to reduce duplications.&lt;/p></description></item></channel></rss>