Tool to create argo applications from a helmfile
Find a file
2026-05-05 22:51:49 +02:00
cmd Working but no recursion 2026-05-05 21:47:02 +02:00
internal/fileflag validating input files exist 2026-05-05 21:41:41 +02:00
testdata Adding some example files to test with from https://github.com/wmde/wbaas-deploy 2026-05-05 21:42:24 +02:00
.gitignore stop the binary being automatically checked in 2026-05-05 21:48:52 +02:00
go.mod Dependencies 2026-05-05 21:43:45 +02:00
go.sum Dependencies 2026-05-05 21:43:45 +02:00
LICENSE Update copyright and license 2026-05-05 21:45:05 +02:00
main.go Update copyright and license 2026-05-05 21:45:05 +02:00
README.md more context 2026-05-05 22:51:49 +02:00

Helmfile to argocd automated replacement

This is an extremely naiive implementation and might be not what you really want, but it's better than nothing.

The actual intent of this is to create a basic structure for you to refine, when you currently have helmfile and want to move to argoCD.

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.
  • The same as helmfile, sometimes. For example, it will only descend one level deep of helmfile references and values in the sub helmfiles might leak upwards.

Context

This was written on trains and in cafes in my personal time, don't expect too much from it, use it if it's useful to you.