In the last couple of years we've made a lot of progress in the SUSE Manager team when it comes to being able to do fully automated testing. We started with a Vagrant-based setup ("Suminator") and are currently using Silvio Moioli's "Sumaform" (https://github.com/moio/sumaform), which is based on Terraform.
But the current setup only brings up a "virgin" SUSE Manager with a number of clients and optionally runs the test suite.
My hack week project is to investigate how we can take things to the next level:
- Once SUSE Manager is set up, populate it with channels, users, organizations, system groups, activation keys, formulas assigned to the system groups.
- Bring up large numbers of real (VM) or partially fake (minionswarm) clients, depending on the use case. If I just want to demonstrate the UI, it's no problem that the "minions" may actually be just faked. But if I want to set up real workloads (e.g. web servers) on the minions, they have to be VMs or at least containers.
- Use orchestration scripts to deploy SUSE Enterprise Storage, SUSE Container as a Service Platform, and ultimately SUSE OpenStack Cloud into the cluster.
Goals are to
- identify the best way to bootstrap everything from scratch, requiring just a GIT repo and either a pre-configured libvirt environment or public cloud account
- investigate whether Sumaform should be extended by more Salt or we could use a Salt-only solution with salt-cloud
- come up with a solution that is fast enough to be used even if the expensive hardware needed for a larger setup is only available for a few hours and torn down later
The total scope of this endeavor is too big for one Hack Week, and some of the components needed, like the Salt states for setting up Kubernetes, are in an early stage. So I'll focus on identifying "quick wins".
If successful, this project could help many stakeholders:
- Developers could use it to develop and test integration features, UI features that require a realistic amount of registered systems etc.
- QA could use it for integration testing between Manager and the other SUSE products
- Support engineers could tweak the setup scripts to re-create a scaled down version of their customers' environment
- Sales engineers could use it to demo our product portfolio
- Product Managers could use it to learn about the rest of the product portfolio and investigate new features based on near-real-life user experience
- Ultimately, customers could use the same technology for their proofs of concept and ultimately even their production deployments
I've blocked some really powerful systems in our machine pool for the week, so hardware limitations should stop me. ;-)
This project is one of its kind!