I find YAML support in Munki interesting, but I have to admit that my immediate reaction is why is this a client change, and not server side tooling? This is likely colored by me spending the past winter migrating from a traditional Linux VM setup to a
CI/CD pipeline and a cloud hosted repo.
It only converts manifests and pkgsinfo, as I don't see why catalogs would need to use YAML — as Greg notes they aren't edited by humans. Catalogs are also used by AutoPkg, and it seems like a good idea to decouple them and not require changes.
Right out of the gate it's clear to me that manifests and pkginfo files are a nicer to read and write in YAML, but also that the usual Norway style footguns will be a support burden — notably most version numbers will often need to be quoted. Input validation
can quite easily catch these, which is one reason why I would prefer to do the YAML → plist conversion on the server side, e.g. during makecatalogs.
The other reason is that parsing structured data is a notoriously bug prone area, and the Munki client runs with elevated privileges. Since Apple doesn't ship a YAML parser this means adding a third party dependency with all that that entails. If I was
the maintainer I would be very cautious here.
So, if YAML support is added to makecatalogs, makepkginfo, munkiimport, and manifestutil we get the benefit of nicer manifests and pkginfo files, but with no changes to the client code and no changes needed to AutoPkg (though you still might want to make
it output YAML to not get mixed filetypes in the repo).
--
Per Olofsson, IT-service, University of Gothenburg