# Kustomizing Kustomize: Releasing Our Tools

- Link: https://www.agilicus.com/kustomize-plugin-examples/
- Published: 2019-07-04T14:06:48+00:00
- Author: Don Bowman

Declarative. It becomes a way of life. We have [chosen](https://www.agilicus.com/i-declare-make-it-so/)
[kustomize](https://github.com/kubernetes-sigs/kustomize) to [safely](https://www.agilicus.com/safely-secure-secrets-a-sops-plugin-for-kustomize/)
build our inventory of YAML, including Istio and Cert-Manager. But, it has [proven](https://www.agilicus.com/when-you-throw-in-the-towel-on-declarative/)
incredibly non-[DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself). After
some refactoring etc, I made a few Generators and Transformers to cover some of 
the most common cases.

And, today, for the low low price of $0, you can snoop around and use them, via 
our [Github page](https://github.com/Agilicus/kustomize-plugins).

It turned out that (as you might expect) the main driver was errors. One particularly
complex thing was running Istio as (sole) Ingress(gateway) with Cert-Manager. We
want TLS for all endpoints. We like Let’s Encrypt. We want to use solely Istio. 
But Cert-Manager was a bit picky about this. The solution needed to have calibrated
YAML created for a Gateway, a VirtualService, and a Certificate. But, we kept making
typos and then spending time debugging. The [IstioGenerator](https://github.com/Agilicus/kustomize-plugins/tree/master/agilicus/v1/istioingressgenerator)
solved that, reducing from ~100 lines of YAML to ~10 with no loss in fidelity.

Each of these Generators and Transformers had a different driver. Security, Simplicity,
Accuracy, Effort. All were implicated and involved.

I hope you get some value from the collection. It will grow over time, and as always,
Pull Requests are most welcome.
