After struggling a lot to get Foreman/Katello dev environment on my mac. I went and built this tool called foreman-builder that will handle everything needed to get a container based dev environment working. I wanted things to feel as fast as possible and easy to get started.
It takes one command and about 20 minutes of waiting to install/build everything necessary to have a smooth dev experience.
I am looking for feedback or comments on how the tool works and if anyone else is using a mac how they current get the dev environment working.
First of all, I think it’s crucial that as a new developer you can get started quickly. When Vagrant was developed to solve this problem (back before containers were a thing) I think there was a rule of thumb of aiming for less than 30 or 60 minutes. IMHO that’s still true, even if the tooling changes. So please keep in mind that I very much support these efforts.
When we talked about containerizing Foreman & friends that also came up. Today foremanctl’s development uses Vagrant, even if it isn’t quite state of the art anymore. Mostly because we were familiar with it.
With this you’d bring development and production closer together. Ideally speaking you’d just swap out the production container for a development version when you want.
Sadly I never had time to look into this but I still firmly believe the advantages are great that I’d welcome people to experiment with this.
That was the reason I built this I spent way too much time trying to get things working on my mac and I had to give up and use broker+vagrant. Broker is a cool tool but it got very annoying using it as a dev environment.
I can add an option to use podman. I could probably have an update out sometime next week. I think podman is a bit slower so I will need to do some benchmarking to see how much time this takes. It would look something like this to use podman instead of orbstack like this, foreman-builder create --podman
Update I have spent the last 2 days attempting to get podman working with this project. There are a few issues we have with podman.
orbstack runs a x86 VM using Rosetta 2 which allows hardware level emulation
podman uses QEMU emulation, this works for many things but fails during foreman-installer steps due to systemd crashes.
There is a ton of more in depth details about the differences of QEMU vs Rosetta, so I won’t go into too much details here.
What I am working on instead is using lima. As @aruzicka mentioned orbstack is not free for business & commercial use, but lima is free and open source. I have not worked with lima but this seems promising.
While this doesn’t bring development and production like @ekohl is looking for I still believe this is better than what is currently available for mac. Lima would remove that barrier of people needing to pay to use orbstack.