Hi, I have written a question in Slack but finally, we thought it would be good to have a broader discussion in the community forum.
The core of my question is “how-to/how you test plans locally, at best in n-tier setup, during the development”.
I have seen some attempts (even here in the forum) to address the question for plan CI. In general there are exmples available with:
- delmo (search/grep core habitat-plans or gh:starkandwayne/habitat-plans)
- kitchen (I am aware its used (@sns), but no examples found)
- concourse ci (pipelines available)
- terraform (feasible, close to prod deployment, no examples found)
However, there is more topic to discuss, like
- any framework/best practice on a roadmap
- options for local testing vs. hosted/public like Travis
- complex on-prem pipeline to test/build/push
- platform support (the ability to test on your final platform (not multiplatform testing))
- unit, integration testing
- dependencies/plans from multiple origins (let me know if non-sense)
- validation
- linting, test configuration in .toml (variable names) fit best practice
Let’s discuss here what are the features of tools mentioned above (or other tools), related to habitat. What tools are welcome and what rather deprecated. What is actually use-case for habitat plan testing vs. whether we are rather heading to more complex end-to-end/cicd scenario.
Regarding Kitchen test framework I have these additional questions:
-
Is there any kitchen ecosystem for habitat?
kitchen-habitat
(I haven’t found). How can kitchen be used for habitat? Cookbook under-hood of kitchen to install habitat sup and then the plans? Dedicated image wherehab sup
is entrypoint? Custom script as kitchen provisioner? -
Are we able to test multi-node setup, there were some attempts in the past to workaround a bit a kitchen that dont supports that ootb. (possibly similar way delmo does?)
-
Plans has frequently dependencies, what way do you deal with? Do you keep that job to hab to download them from “testing/stable” channel or fetch them on your own? Are you testing always whole repo with habitat-plans? Single plan?
-
I quite belive it should be possible to use as small base image as possible, like alpine. Btw, are there any images with pre-baked
hab sup
? -
Kitchen has suites, so I may use user.toml per suite to test different configurations, am I right that use/upload this file is the correct way to test different setups?