From 97a7bbe29f38ae094955b33f32662aa7371ec95d Mon Sep 17 00:00:00 2001 From: Martyn Ranyard Date: Tue, 5 May 2026 21:41:03 +0200 Subject: [PATCH] initial README.md --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..bc7054e --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Helmfile to argocd automated replacement + +| :exclamation: | This is an extremely naiive implementation and might be not what you really want, but it's better than nothing. | +|----------------|:------------------------| + +## How it works + +- It strips **ALL** templating from the yaml file. Naiively, with a regex. +- It removes the multidoc separator that helmfile weirdly uses for the environment stuff. Naiively, with a regex. +- It then parses the yaml in golang against some stripped-down specs (I would _like_ to use the argocd source and the helmfile source, but they aren't really designed to be reused) +- It outputs a project with the contents of the helmfile `repositories` section whitelisted +- Then it outputs individual application objects. + +## Things it won't do + +- "Magic". For example, it won't replace hardcoded https://path.to/some/tarball-helm-chart.tgz with something that is argo-compatible. Point to a real helm repo, an oci repo or a git repo, argo can deal with those. +- Multiple environments. There's not an opinionated "this is how you do it in argo" for that, so you need to work out what to do there. You can pass the environment you want to use in, and if you're using "environment" values, they'll be included in the application object for you.