@farcaller Can you please provide a summary of pros/cons between kasane vs. kustomize?
Sorry, your comment went past me.
kasane and kustomize appeared at roughly the same time and solve similar problems. As opposed to kustomize, kasane stribes to be a swiss knife of managing pre-existing app configurations, e.g. kasane allows you to pull a remote yaml and track its versions within your local scope, so you can refer to e.g. kube-dashboard or nginx ingress official yamls and then extend them.
Further on, kasane uses jsonnet to do the patches, which allows to maintain a slim syntax while allowing greater flexibility in patch contents. Kasane doesn't use any templating engines, it only reasons about a "stack of yaml layers" and transformations of thereof, thus having a very simple to grasp architecture.
Finally (and that didn't fully land in the repo yet), kasane allows for simple shortcuts to mundane tasks, e.g. providing a random password or a new pki key in its environment, allowing users to do common k8s setup quickly and without shelling out.
I should be easy to support Kasane but that would require to bundle Kasane binary and all dependencies into Argo CD docker image.
After some discussions, we decided it make sense to allow using any templating tool through a convention instead of adding support for each one.
We would have to add custom_template_path field to applicationSource and honor that field during resources generation. The binary does not have to be packaged into argocd image since user can use technique described here https://github.com/argoproj/argo-cd/blob/master/docs/custom_tools.md#custom-tooling . Each templating tool has different input/output format, so we need to come up with convention and implement adapter for each template engine.
I'm going to work on adapter for kasane as a POC.
There is one more way to use it: binary which run helm template and apply kustomize customizations on top of it :)
Fixed.
@farcaller Kasane is now supported by ArgoCD! https://github.com/alexmt/argocd-example-apps/tree/helm-kustomize/plugins/kasane
Most helpful comment
I should be easy to support Kasane but that would require to bundle Kasane binary and all dependencies into Argo CD docker image.
After some discussions, we decided it make sense to allow using any templating tool through a convention instead of adding support for each one.
We would have to add
custom_template_pathfield to applicationSource and honor that field during resources generation. The binary does not have to be packaged into argocd image since user can use technique described here https://github.com/argoproj/argo-cd/blob/master/docs/custom_tools.md#custom-tooling . Each templating tool has different input/output format, so we need to come up with convention and implement adapter for each template engine.I'm going to work on adapter for
kasaneas a POC.There is one more way to use it: binary which run
helm templateand applykustomizecustomizations on top of it :)