# Kustomizing Kustomize: Releasing Our Tools

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.