Contributing to kitchen-vra
We'd love to hear from you if this driver doesn't work in your vRA environment. Bug reports, feature requests, and pull requests are all welcome.
Reporting issues
Report bugs and request features on the issue tracker. For bugs, please include:
- the version of kitchen-vra and Test Kitchen you are using
- your vRA version
- your
kitchen.ymlwith credentials and internal hostnames removed - the output of the failing command, ideally with
-l debug
Development setup
Clone the repository and install the dependencies:
git clone https://github.com/test-kitchen/kitchen-vra.git
cd kitchen-vra
bundle install
Running the tests
Run the unit tests and the style check together:
bundle exec rake
Run them individually:
bundle exec rake test # RSpec unit tests
bundle exec rake style # Cookstyle / RuboCop
To run a single spec file:
bundle exec rspec spec/kitchen/driver/vra_spec.rb
Many style offenses can be corrected automatically:
bundle exec cookstyle -a
The unit tests stub the vRA client, so they do not contact an appliance and do not require credentials.
Manual testing against vRA
Changes that touch the catalog request or the deployment lifecycle should also be exercised against a real appliance, since the stubbed tests cannot catch API-level regressions. You will need a catalog item that provisions exactly one VM, and permission to request and delete it.
Set VRA_USER_NAME and VRA_USER_PASSWORD rather than putting credentials in
kitchen.yml, and confirm in the vRA UI that kitchen destroy removed the
deployment — a run that fails partway through can leave one behind.
Submitting changes
- Fork the repository.
- Create a feature branch off
main. - Make your change, adding or updating tests to cover it.
- Make sure
bundle exec rakepasses. - Push the branch to your fork and open a pull request.
Please keep pull requests focused on a single change — it makes review much
faster. Update the documentation in README.md when you add or change a
configuration option.
Release process
Releases are handled by the maintainers.
- Update
lib/kitchen/driver/vra_version.rbwith the new version. - Update
CHANGELOG.md. - Merge to
main; the publish workflow builds the gem and pushes it to RubyGems.