-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need the ability to set up and test complex networks #72
Comments
Thanks @trevor-vaughan for this input. and its something that we are actively thinking about.
previously beaker flattened all of this into a single host.yaml file. which allowed some flexibility but was not perfect. |
@tphoney Back in Beaker-land, we worked around this by adding ERB support to the At that point we literally had infinite composability for users that needed it and everyone else had a pretty good, easy to read and understand, format. |
Hi @trevor-vaughan i have taken a run up to provisioning, #78. Please note it does not install puppet or do anything else complex. This is the first step towards different deployment scenarios. |
@tphoney Left some comments. Provisioning Puppet should definitely be a separate step since you often want to do different things before adding Puppet to the system and/or start with an image that already has Puppet installed. |
Additional features:
|
If we understand configure the hardware as 'provisionning several network devices' i am fine with closing #60 |
HI everyone, i have a POC you may be interested in. It lives in puppetlabs/provision#58 and https://github.com/puppetlabs/provision/wiki#experimental-features It was an alternative to using litmus directly( which is focused around a specific test scenario). Using bolt plans and tasks, this can i spin up an arbitrary number of systems, assign them roles / names. And run tasks against those machines or run code on a puppet server. It uses plans for running checks, and does not use serverspec at all. This would allow you to write tests in whatever language you want. It is much more flexible. Any feedback is welcome. Adding in @florindragos and @michaeltlombardi and @ThoughtCrhyme for visibility. |
Took a look at the PoC and it makes sense from the point of view of flexibility. How would you get the usual Honestly, this is sort of what I figured would be auto-generated as a replacement for the Beaker guts based on the nodesets that are provided. Not sure if it will be faster though and will be difficult to extend via plugins if I'm reading it correctly. |
Hi. @tphoney i had a look to the PoC, but i didn't found any possibility in provisioning a SUT with several network interface as we talked in #60. Am i missing something ? Perhaps we should modify :
by
|
@trevor-vaughan litmus is designed for being wholly parallel, and is suited to testing a module on singular machines. These machines do not affect each other. In terms of auto-generating, i would say that we need templates, and we can feed variables into plans. From speaking to different users, their needs are quite drastically different, which means that breaking up 1 magic process that was inflexible. This will give you smaller more composable parts. EG Rather than 1 F1 car with everything set (Beaker), this new POC allows for lots of different cars, but we need more information on what you want the car to do. |
@Dan33l by using plans and tasks, this should allow you to script the network changes you desire, and target it whatever SUT you want. Obviously there is networking magic that you already script, bolt will allow you to enact that on whatever you want. |
@tphoney I agree with the idea of the new approach but it seems to be veering toward just writing complex plans for disparate environments. This absolutely works, but I'm not sure why it is better than the approach that Beaker takes. I do believe that you are incorrect regarding the language of For example, the following produces very understandable output and stops when something is incorrect with sufficient output.
I'm still falling back on what's preventing me from looking at |
Can i suggest you have a look at this https://github.com/puppetlabs/provision/wiki/An-example-run-through-of-complex-provisioning This will allow you to provision machines and assign them roles. These roles are stored in the inventory.yaml file. so it can be used to differentiate between SUT. Does that help ? |
As one step towards this goal, watch this demo of the bolt/terraform integration as a driver for provisioning infrastructure for testing: https://www.youtube.com/watch?v=8BMo9DcZ4-Q |
Currently, we do this using
beaker
with one of our most complex multi-node test scenarios being represented at https://github.com/simp/pupmod-simp-rsyslog/tree/master/spec/acceptance/suites.The main driver of the SIMP project using Beaker over Test Kitchen was the ability to easily do multi-node testing.
If
litmus
cannot do this and requires the use of PDK (which is a lot of work on existing large frameworks) then we may be unable to migrate.The text was updated successfully, but these errors were encountered: