201 lines
9.1 KiB
HTML
201 lines
9.1 KiB
HTML
<!-- omit in toc -->
|
||
<h1 id="awesome-kustomize-awesome-prs-welcome">Awesome Kustomize <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://raw.githubusercontent.com/sindresorhus/awesome/main/media/badge.svg"
|
||
alt="Awesome" /></a> <a
|
||
href="https://github.com/aabouzaid/awesome-kustomize/compare"><img
|
||
src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"
|
||
alt="PRs Welcome" /></a></h1>
|
||
<p align="center">
|
||
<a href="https://kustomize.io">
|
||
<img src="img/awesome-kustomize.svg" width="90%"> </a>
|
||
</p>
|
||
<blockquote>
|
||
<p>A curated and collaborative list of awesome Kustomize resources.</p>
|
||
</blockquote>
|
||
<p><a href="https://kustomize.io">Kustomize</a> introduces a
|
||
template-free way to customize Kubernetes manifests. It’s extensible and
|
||
uses a purely declarative approach to configuration customization, which
|
||
will help you efficiently manage your Infrastructure as a code
|
||
(IaC).</p>
|
||
<p>Contributions are welcome, add links through <a
|
||
href="https://github.com/aabouzaid/awesome-kustomize/pulls">pull
|
||
requests</a> or create an issue to start a discussion.</p>
|
||
<p>Push it forward and add the project badge in your repo to support the
|
||
community! ⭐</p>
|
||
<p>Markdown:</p>
|
||
<pre class="text"><code>[](https://github.com/DevOpsHiveHQ/awesome-kustomize)</code></pre>
|
||
<p>Preview:</p>
|
||
<p><a href="https://github.com/DevOpsHiveHQ/awesome-kustomize"><img
|
||
src="https://raw.githubusercontent.com/DevOpsHiveHQ/awesome-kustomize/main/img/awesome-kustomize-badge.svg"
|
||
alt="Awesome Kustomize" /></a></p>
|
||
<!-- omit in toc -->
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#overview">Overview</a></li>
|
||
<li><a href="#plugins">Plugins</a>
|
||
<ul>
|
||
<li><a href="#generators">Generators</a></li>
|
||
<li><a href="#transformers">Transformers</a></li>
|
||
<li><a href="#validators">Validators</a></li>
|
||
</ul></li>
|
||
<li><a href="#guides">Guides</a>
|
||
<ul>
|
||
<li><a href="#novice">Novice</a></li>
|
||
<li><a href="#intermediate">Intermediate</a></li>
|
||
<li><a href="#advanced">Advanced</a></li>
|
||
<li><a href="#tips--tricks">Tips & Tricks</a></li>
|
||
</ul></li>
|
||
<li><a href="#misc">Misc</a></li>
|
||
<li><a href="#related-lists">Related lists</a></li>
|
||
</ul>
|
||
<h2 id="overview">Overview</h2>
|
||
<p>Kustomize works as a standalone binary; also, it’s built into
|
||
<code>kubectl</code> (since v1.14). It can be used with off-the-shelf
|
||
applications like <strong>Helm charts</strong>. Also, it has a deep
|
||
integration with different <strong>GitOps</strong> tools like ArgoCD,
|
||
Flux, and many others.</p>
|
||
<h2 id="plugins">Plugins</h2>
|
||
<p>Kustomize has 3 types of plugins <code>generator</code>,
|
||
<code>transformer</code>, and <code>validator</code>.</p>
|
||
<blockquote>
|
||
<p>Note</p>
|
||
<p>If you are a plugin developer, it’s highly recommended to support the
|
||
new plugins standard <a
|
||
href="https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md">KRM
|
||
function</a>.</p>
|
||
</blockquote>
|
||
<h3 id="generators">Generators</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/bbl/secretize">Secretize</a> -
|
||
Generating Kubernetes Secret from various sources. It’s like a swiss
|
||
army knife, but for Kubernetes secrets (Exec).</li>
|
||
<li><a
|
||
href="https://github.com/goabout/kustomize-sopssecretgenerator/">SopsSecretGenerator</a>
|
||
- Generating Secrets from sops-encrypted files (Exec, Exec KRM).</li>
|
||
<li><a href="https://github.com/viaduct-ai/kustomize-sops">KSops</a> -
|
||
Generating Secrets from sops-encrypted files (Exec).</li>
|
||
<li><a
|
||
href="https://github.com/open-cluster-management-io/policy-generator-plugin">PolicyGenerator</a>
|
||
- Generating Open Cluster Management policies (Exec).</li>
|
||
<li><a href="https://github.com/kaweezle/krmfnbuiltin">KRMFfnBuiltin</a>
|
||
- Running builtin generators transformers (Exec).</li>
|
||
<li><a
|
||
href="https://github.com/aabouzaid/kustomize-plugin-merger">Merger</a> -
|
||
Generating manifests seamlessly by extending Kustomize merge strategies
|
||
using schemaless StrategicMerge (Containerized KRM, Exec KRM).</li>
|
||
</ul>
|
||
<h3 id="transformers">Transformers</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/openinfradev/kustomize-helm-transformer">HelmValuesTransformer</a>
|
||
- Transforming values in HelmRelease CustomResource. It helps to manage
|
||
a lot of HelmRelease’s value in single transformer file (Exec).</li>
|
||
<li><a
|
||
href="https://github.com/joshdk/template-transformer">TemplateTransformer</a>
|
||
- Providing a set of KRM Functions to run builtin transformers in place
|
||
(Containerized KRM, Exec KRM).</li>
|
||
</ul>
|
||
<h3 id="validators">Validators</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/aabouzaid/kustomize-kubeconformvalidator">KubeconformValidator</a>
|
||
- Validating Kubernetes manifests using embedded Kubeconform
|
||
(Containerized KRM, Exec KRM).</li>
|
||
</ul>
|
||
<h2 id="guides">Guides</h2>
|
||
<p>Kustomize guides based on their level or type like 📰 Article, 📺
|
||
Video, 🧪 Lab.</p>
|
||
<h3 id="novice">Novice</h3>
|
||
<ul>
|
||
<li>📰 <a
|
||
href="https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/">Declarative
|
||
Management of Kubernetes Objects Using Kustomize</a> - The official
|
||
Kubernetes documentation task for Kustomize.</li>
|
||
<li>📰 <a
|
||
href="https://cloud.google.com/anthos-config-management/docs/concepts/kustomize">Configure
|
||
Kubernetes with Kustomize</a> - A guide helps to get started with
|
||
Kustomize, understand its intended use cases, and find resources for
|
||
using it with other Google Cloud tools.</li>
|
||
<li>📺 <a href="https://www.youtube.com/watch?v=1fCAwFGX38U">Organizing
|
||
the YAML mess with Kustomize</a> - A talk shows how Kustomize could help
|
||
to manage Kubernetes YAML files with a growing number of services and
|
||
environments.</li>
|
||
<li>📺 <a href="https://www.youtube.com/watch?v=ahMIBxufNR0">Kustomize:
|
||
Deploy Your App with Template Free YAML</a> - A talk introduces
|
||
Kustomize, a declarative application management system, that allows
|
||
deployments to be described as template free YAML.</li>
|
||
</ul>
|
||
<h3 id="intermediate">Intermediate</h3>
|
||
<ul>
|
||
<li>🧪 <a
|
||
href="https://redhat-scholars.github.io/argocd-tutorial/argocd-tutorial/03-kustomize.html">ArgoCD
|
||
GitOps Tutorial - Working with Kustomize</a> - A hands-on lab covers
|
||
using Kustomize in GitOps and it goes through the Kustomize syntax and
|
||
deploying a Kustomized application.</li>
|
||
<li>📰 <a
|
||
href="https://tech.aabouzaid.com/2020/09/3-ways-to-customize-off-the-shelf-helm-charts-with-kustomize-kubernetes.html">3
|
||
ways to customize off-the-shelf Helm charts with Kustomize</a> - A guide
|
||
covers 3 different ways to use Kustomize and Helm together.</li>
|
||
<li>📰 <a
|
||
href="https://blog.scottlowe.org/2021/11/01/using-kustomize-components-with-cluster-api/">Using
|
||
Kustomize Components with Cluster API</a> - A clear use case of using
|
||
Kustomize Components.</li>
|
||
</ul>
|
||
<h3 id="advanced">Advanced</h3>
|
||
<ul>
|
||
<li>📰 <a
|
||
href="https://www.innoq.com/en/blog/advanced-kustomize-features/">Advanced
|
||
Kustomize features</a> - A guide covers more than 5 advanced Kustomize
|
||
capabilities.</li>
|
||
<li>📰 <a
|
||
href="https://tech.aabouzaid.com/2022/11/set-openapi-patch-strategy-for-kubernetes-custom-resources-kustomize.html">Set
|
||
OpenAPI patch strategy for Kubernetes Custom Resources</a> - A guide
|
||
shows how to provide schema to control the patch strategy of the
|
||
CRDs.</li>
|
||
<li>📺 <a href="https://www.youtube.com/watch?v=YlFUv4F5PYc">Customizing
|
||
Kustomize with Client-Side Custom Resources</a> - A talk covers
|
||
extending Kustomize via plugins to address common yet idiosyncratic
|
||
application needs.</li>
|
||
<li>📺 <a href="https://www.youtube.com/watch?v=Xoh_OpLoVtI">Own your
|
||
YAML: extending Kustomize via Plugins</a> - A talk shows how to create
|
||
custom resources using Kustomize external plugins.</li>
|
||
<li>📰 <a
|
||
href="https://www.innoq.com/en/blog/kustomize-enhancement-with-krm-functions/">Kustomize
|
||
Enhancement with KRM Functions</a> - A detailed guide covers KRM concept
|
||
and how to use it in Kustomize plugins.</li>
|
||
</ul>
|
||
<h3 id="tips-tricks">Tips & Tricks</h3>
|
||
<ul>
|
||
<li>📰 <a
|
||
href="https://tech.aabouzaid.com/2021/05/delete-a-manifest-from-kustomize-base.html">Delete
|
||
a manifest from a Kustomize base</a> - A handy way to delete named
|
||
manifest using Kustomize patch.</li>
|
||
<li>📰 <a
|
||
href="https://tech.aabouzaid.com/2022/04/apply-kustomize-builtin-transformers-on-a-single-resource.html">Apply
|
||
Kustomize builtin transformers on a single resource</a> - A way to use
|
||
internal transformers on specific resources.</li>
|
||
<li>📰 <a
|
||
href="https://tech.aabouzaid.com/2022/12/pass-extra-data-to-the-containerized-krm-function.html">Pass
|
||
extra data to the Containerized KRM function</a> - Different cases of
|
||
share data with Containerized KRM function.</li>
|
||
</ul>
|
||
<h2 id="misc">Misc</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Banno/asdf-kustomize">Asdf-kustomize</a>
|
||
- Kustomize plugin for asdf version manager.</li>
|
||
</ul>
|
||
<h2 id="related-lists">Related lists</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ramitsurana/awesome-kubernetes">Awesome
|
||
Kubernetes</a> - A curated list of awesome Kubernetes resources.</li>
|
||
<li><a
|
||
href="https://github.com/ishantanu/awesome-kubectl-plugins">Awesome
|
||
Kubectl plugins</a> - A curated list of awesome Kubectl plugins.</li>
|
||
<li><a href="https://github.com/cdwv/awesome-helm">Awesome Helm</a> - A
|
||
curated list of awesome Helm charts and resources.</li>
|
||
</ul>
|
||
<p><a
|
||
href="https://github.com/DevOpsHiveHQ/awesome-kustomize">kustomize.md
|
||
Github</a></p>
|