Here’s an example. It’s a weird one, I know, but I’m not making any of this up.
Using createOSXinstallPkg, I made a 10.10.5 installer and imported it into Munki. With a modified version of Hannes Juutilainen’s admin provided condition,
https://github.com/hjuutilainen/adminscripts/blob/master/check-yosemite-compatibility.py
we’ve limited Yosemite upgrades to OS X 10.7 and above, even though Apple supports upgrading from OS X 10.6 and above (this decision was reached after much back-and-forth with other IT groups on campus). The thinking is that machines running 10.6 should be reimaged or retired, not upgraded. It’s in one of our widely-used manifests as an optional_install with the condition of yosemite_supported = true (our version of Hannes’s script checks for 10.7+, RAM amount, etc.).
However, as the admin, I appreciate having the option of being able to put the 10.10.5 upgrade installer in any manifest as a managed_install and upgrading the machine, if necessary. It’s happened a couple of times. Thus, the pkginfo keys are set to 10.6.8 as the minimum_os_version, and 10.9.99 as the maximum_os_version.
If I had used the pkginfo keys to limit the OS X installer to 10.7 and above, it would not install on 10.6.8 machines even when explicitly putting it in the machine’s manifest. If I had relied solely on the conditional_items, I’d run the risk of a 10.5.0 machine running the Yosemite upgrade installer and failing horribly (yes, unfortunately there are 10.5.0 machines on campus) if it were put directly in a computer’s manifest that didn’t meet the system requirements.
Also, if the installer had to be temporarily removed from a manifest for some reason (this goes for anything in Munki!), I’d have to remember the OS requirements when putting it back in a manifest, so I could set the conditional_item correctly. We have several manifests used by different groups of computers on campus - I’d prefer to set something as important as the minimum OS version for a pkg in a single place.
To be clear, I like conditional_items! I combined a bunch of separate manifests tonight that were initially separated for things like laptops/desktops, now that I understand I can utilize conditional_items instead. But in our environment, it’s not possible to be completely free of warnings.
It’d be nice if the minimum_os_version and maximum_os_version warnings could be considered something else, like “informational”, so I could take the “warnings” header in MunkiReport as seriously as I do the "errors" header. Or, if it were hidden behind a certain level of verbosity.