{"id":22529465,"url":"https://github.com/test-kitchen/kitchen-opennebula","last_synced_at":"2025-07-16T02:34:25.660Z","repository":{"id":22305982,"uuid":"25641002","full_name":"test-kitchen/kitchen-opennebula","owner":"test-kitchen","description":"OpenNebula driver for Test Kitchen","archived":false,"fork":false,"pushed_at":"2023-12-08T20:51:13.000Z","size":54,"stargazers_count":5,"open_issues_count":2,"forks_count":12,"subscribers_count":14,"default_branch":"main","last_synced_at":"2024-04-14T00:58:33.164Z","etag":null,"topics":["hacktoberfest","managed-by-terraform","ruby","ruby-gem","test-kitchen","testing"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/test-kitchen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2014-10-23T14:23:59.000Z","updated_at":"2023-11-28T15:48:43.000Z","dependencies_parsed_at":"2023-12-12T23:45:51.393Z","dependency_job_id":null,"html_url":"https://github.com/test-kitchen/kitchen-opennebula","commit_stats":{"total_commits":37,"total_committers":14,"mean_commits":2.642857142857143,"dds":0.6756756756756757,"last_synced_commit":"2d3cd758fe3fdf2cf3eda02f8309673617b3cd03"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-opennebula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-opennebula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-opennebula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-opennebula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/test-kitchen","download_url":"https://codeload.github.com/test-kitchen/kitchen-opennebula/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228571841,"owners_count":17938773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","managed-by-terraform","ruby","ruby-gem","test-kitchen","testing"],"created_at":"2024-12-07T07:14:49.571Z","updated_at":"2024-12-07T07:14:50.322Z","avatar_url":"https://github.com/test-kitchen.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003ca name=\"title\"\u003e\u003c/a\u003e Kitchen::Opennebula\n\nA Test Kitchen Driver for Opennebula.\n\n## \u003ca name=\"requirements\"\u003e\u003c/a\u003e Requirements\n\nThis driver depends on [fog](https://github.com/fog/fog). Please note possibility that unreleased changes on master \nbranch may depend on patches that can be found at https://github.com/blackberry/fog until they are merged to upstream.\n\n## \u003ca name=\"installation\"\u003e\u003c/a\u003e Installation and Setup\n\n1. Download and install latest [ChefDK](https://downloads.chef.io/chef-dk/).\n2. Please add bin locations to your PATH:\n  * C:\\opscode\\chefdk\\bin;C:\\opscode\\chefdk\\embedded\\bin\\ (windows)\n  * /opt/chefdk/bin/:/opt/chefdk/embedded/bin (unix)\n3. Reopen console or reload your env PATH\n4. Run following command:\n    gem install kitchen-opennebula --no-user-install --no-ri --no-rdoc\n\nPlease read the [config_yml_kitchen](https://docs.chef.io/config_yml_kitchen.html) page for more details.\n\n## Virtual Machine Requirements\n\nThis driver requires an OpenNebula OS image that conforms to a number of requirements\n\n* The VM puts the ssh key defined in the SSH\\_PUBLIC\\_KEY context variable into `$HOME/.ssh/authorized_keys`\n* The VM ensures the user has passwordless sudo access\n\n## \u003ca name=\"config\"\u003e\u003c/a\u003e Configuration\n\n### \u003ca name=\"opennebula_endpoint\"\u003e\u003c/a\u003e opennebula\\_endpoint\n\nURL where the OpenNebula daemon is listening. The default value is taken from the ONE\\_XMLRPC environment variable, \nor `http://127.0.0.1:2633/RPC2` if unset.\n\n### \u003ca name=\"oneauth_file\"\u003e\u003c/a\u003e oneauth\\_file\n\nPath to the file containing OpenNebula authentication information.  It should contain a single line stating \n\"username:password\". The default value is taken from the ONE\\_AUTH environment variable, or `$HOME/.one/one_auth` if \nunset.\n\n### \u003ca name=\"template_name\"\u003e\u003c/a\u003e template\\_name\n\nName of the VM definition file (OpenNebula template) registered with OpenNebula.  Can be used with `template_uname` or \n`template_uid` to further restrict which template to use if multiple users have the same template name. Only one of \n`template_name` or `template_id` must be specified in the .kitchen.yml file. The default value is unset, or `nil`.\n\n### \u003ca name=\"template_id\"\u003e\u003c/a\u003e template\\_id\n\nID of the VM definition file (OpenNebula template) registered with OpenNebula.  Only one of `template_name` or \n`template_id` must be specified in the .kitchen.yml file. The default value is unset, or `nil`.\n\n### \u003ca name=\"template_uname\"\u003e\u003c/a\u003e template\\_uname\n\nUsername who owns the VM definition file (OpenNebula template).  Can be used with `template_name` to address naming \nconflicts where multiple users have the same template name. The default value is unset, or `nil`.\n\n### \u003ca name=\"template_uid\"\u003e\u003c/a\u003e template\\_uid\n\nUID of the user who owns the VM definition file (OpenNebula template).  Can be used with `template_name` to address \nnaming conflicts where multiple users have the same template name. The default value is unset, or `nil`.\n\n### \u003ca name=\"vm_hostname\"\u003e\u003c/a\u003e vm\\_hostname\n\nHostname to set for the newly created VM. The default value is `driver.instance.name`\n\n### \u003ca name=\"public_key_path\"\u003e\u003c/a\u003e public\\_key\\_path\n\nPath to SSH public key to pass to the VM, to use to authenticate with `username` when logging in or converging a node. \nThe default value is `~/.ssh/id_rsa.pub`, `~/.ssh/id_dsa.pub`, `~/.ssh/identity.pub`, or `~/.ssh/id_ecdsa.pub`, \nwhichever is present on the filesystem.\n\n### \u003ca name=\"username\"\u003e\u003c/a\u003e username\n\nThis is the username used for SSH authentication to the new VM. The default value is `local`.\n\n### \u003ca name=\"memory\"\u003e\u003c/a\u003e memory\n\nThe amount of memory to provision for the new VM.  This parameter will override the memory settings provided in the \nVM template. The default value is 512MB.\n\n### \u003ca name=\"user_variables\"\u003e\u003c/a\u003e user\\_variables\n\nA hash of variables to pass into the \"user template\" section of the VM, to customize the virtual machine. The default \nvalue is `{}`.\n\n### \u003ca name=\"context_variables\"\u003e\u003c/a\u003e context\\_variables\n\nA hash of variables to pass into the \"CONTEXT\" section of the VM, to further customize the virtual machine. These \nvariables override any existing context variables that are provided as part of the specified VM template. The default \nvalue is `{}`.\n\n### \u003ca name=\"config-require-chef-omnibus\"\u003e\u003c/a\u003e require\\_chef\\_omnibus\n\nDetermines whether or not a Chef [Omnibus package][chef_omnibus_dl] will be\ninstalled. There are several different behaviors available:\n\n* `true` - the latest release will be installed. Subsequent converges will skip re-installing if chef is present.\n* `latest` - the latest release will be installed. Subsequent converges will always re-install even if chef is present.\n* `\u003cVERSION_STRING\u003e` (ex: `10.24.0`) - the desired version string will be passed the the install.sh script. \nSubsequent converges will skip if the installed version and the desired version match.\n* `false` or `nil` - no chef is installed.\n\nThe default value is unset, or `nil`.\n\n### \u003ca name=\"wait_for\"\u003e\u003c/a\u003e wait_for\n\nThis variable is used to override timeout for Fog's common `wait_for` method which states that it \"takes a block and \nwaits for either the block to return true for the object or for a timeout (defaults to 10 minutes)\".\n\n### \u003ca name=\"no_ssh_tcp_check\"\u003e\u003c/a\u003e no\\_ssh\\_tcp\\_check\n\nTo avoid test-kitchen's ssh tcp check in the create phase you can set `no_ssh_tcp_check` to `true` and do single sleep \ninstead. Sleep period is configured by `no_ssh_tcp_check_sleep`. The default for `no_ssh_tcp_check` is set to `false`.\n\n### \u003ca name=\"no_ssh_tcp_check_sleep\"\u003e\u003c/a\u003e no\\_ssh\\_tcp\\_check\\_sleep\n\nThis variable configures a single sleep used when `no_ssh_tcp_check` is set to `true`. The default for `no_ssh_tcp_check` \nis 2 minutes.\n\n### \u003ca name=\"no_passwordless_sudo_check\"\u003e\u003c/a\u003e no\\_passwordless\\_sudo\\_check\n\nTo avoid test-kitchen's passwordless sudo check in the create phase you can set `no_passwordless_sudo_check` to `true` \nand do single sleep instead. Sleep period is configured by `no_passwordless_sudo_sleep`. The default for \n`no_passwordless_sudo_check` is set to `false`.\n\n### \u003ca name=\"no_passwordless_sudo_sleep\"\u003e\u003c/a\u003e no\\_passwordless\\_sudo\\_sleep\n\nThis variable configures a single sleep used when `no_passwordless_sudo_check` is set to `true`. The default for \n`no_passwordless_sudo_sleep` is 2 minutes.\n\n### \u003ca name=\"passwordless_sudo_timeout\"\u003e\u003c/a\u003e passwordless\\_sudo\\_timeout\n\nThis variable configures the max timeout will wait in the create phase for passwordless sudo to be setup. The variable \nis used when `no_passwordless_sudo_check` is set to `false`. The default for `passwordless_sudo_timeout` is 5 minutes.\n\n### \u003ca name=\"passwordless_sudo_retry_interval\"\u003e\u003c/a\u003e passwordless\\_sudo\\_retry\\_interval\n\nThis variable configures retry interval in the create phase to periodically check that passwordless sudo is setup. It \ndoes this until max timeout (set by `passwordless_sudo_timeout`) is reached. The variable is used when \n`no_passwordless_sudo_check` is set to `false`. The default for `passwordless_sudo_retry_interval` is 10 seconds.\n\n### \u003ca name=\"cloud_init_timeout\"\u003e\u003c/a\u003e cloud\\_init\\_timeout\n\nThis variable configures the max timeout Test-Kitchen will wait in the create phase for cloud-init to complete. The \ndefault for `cloud_init_timeout` is 10 minutes.\n\n### \u003ca name=\"cloud_init_retry_interval\"\u003e\u003c/a\u003e cloud\\_init\\_retry\\_interval\n\nThis variable configures retry interval in the create phase to periodically check that cloud-init fas finished \nsuccessfully. It does this until max timeout (set by `cloud_init_timeout`) is reached. The variable is used when \n`no_cloud_init_check` is set to `false`. The default for `cloud_init_retry_interval` is 10 seconds.\n\n### \u003ca name=\"no_cloud_init_check\"\u003e\u003c/a\u003e no\\_cloud\\_init\\_check\n\nTo avoid test-kitchen to check for cloud-init completion in the create phase, you can set `no_cloud_init_check` to `true` \nand cloud-init completion check will be ignored. If cloud-init is not used the check is skipped automatically. You could \nuse this to disable the cloud-init completion check when cloud-init is in use. The default for `no_cloud_init_check` \nis set to `false`.\n\n## \u003ca name=\"development\"\u003e\u003c/a\u003e Development\n\n* Source hosted at [GitHub][repo]\n* Report issues/questions/feature requests on [GitHub Issues][issues]\n\nPull requests are very welcome! Make sure your patches are well tested.\nIdeally create a topic branch for every separate change you make. For example:\n\n1. Fork the repo\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Added some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\n## \u003ca name=\"license\"\u003e\u003c/a\u003e License\n\nApache 2.0 (see [LICENSE][license])\n\n\n[author]:           https://github.com/blackberry/kitchen-opennebula\n[maintainer]:       https://github.com/blackberry/kitchen-opennebula\n[issues]:           https://github.com/test-kitchen/kitchen-opennebula/issues\n[license]:          https://github.com/test-kitchen/kitchen-opennebula/blob/master/LICENSE\n[repo]:             https://github.com/test-kitchen/kitchen-opennebula\n[driver_usage]:     http://docs.kitchen-ci.org/drivers/usage\n[chef_omnibus_dl]:  http://www.getchef.com/chef/install/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-kitchen%2Fkitchen-opennebula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftest-kitchen%2Fkitchen-opennebula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-kitchen%2Fkitchen-opennebula/lists"}