{"id":22529448,"url":"https://github.com/test-kitchen/kitchen-vcair","last_synced_at":"2025-08-03T23:33:13.345Z","repository":{"id":36432497,"uuid":"40737503","full_name":"test-kitchen/kitchen-vcair","owner":"test-kitchen","description":"A Test Kitchen driver for vCloud Air","archived":false,"fork":false,"pushed_at":"2023-12-15T02:51:29.000Z","size":39,"stargazers_count":1,"open_issues_count":3,"forks_count":5,"subscribers_count":21,"default_branch":"main","last_synced_at":"2024-04-14T05:31:18.665Z","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":"apache-2.0","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.txt","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":"2015-08-14T21:52:22.000Z","updated_at":"2022-04-04T09:15:42.000Z","dependencies_parsed_at":"2023-12-19T07:15:55.001Z","dependency_job_id":"8a165f77-b33b-4388-8f55-8075488143fa","html_url":"https://github.com/test-kitchen/kitchen-vcair","commit_stats":{"total_commits":12,"total_committers":3,"mean_commits":4.0,"dds":"0.41666666666666663","last_synced_commit":"f353939d2378d92359e715b5e95f209e921e1119"},"previous_names":["chef-partners/kitchen-vcair"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-vcair","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-vcair/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-vcair/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-vcair/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/test-kitchen","download_url":"https://codeload.github.com/test-kitchen/kitchen-vcair/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228054463,"owners_count":17862127,"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:45.640Z","updated_at":"2024-12-07T07:14:46.332Z","avatar_url":"https://github.com/test-kitchen.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kitchen-vcair\n\nA driver to allow Test Kitchen to consume vCloud Air resources to perform testing.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'kitchen-vcair'\n```\n\nAnd then execute:\n\n`bundle`\n\nOr install it yourself as:\n\n`gem install kitchen-vcair`\n\nOr even better, install it via ChefDK:\n\n`chef gem install kitchen-vcair`\n\n## Usage\n\nAfter installing the gem as described above, edit your .kitchen.yml file to set the driver to 'vcair' and supply your login credentials:\n\n```yaml\ndriver:\n  name: vcair\n  vcair_username: user@domain.com\n  vcair_password: MyS33kretPassword\n  vcair_api_host: some-host.vchs.vmware.com\n  vcair_org: M12345678-4321\n```\n\nAdditionally, the following parameters are required:\n\n * **vdc_id** or **vdc_name**: The ID or name of the vDC in which to create your vApp/VM.\n * **catalog_id** or **catalog_name**: The ID or name of the catalog that contains your image/template.\n * **image_id** or **image_name**: The ID or name of the image you wish to use to create your VM.\n * **network_id** or **network_name**: The ID or name of the network to which to attach to your VM.\n\nThere are a number of optional parameters you can configure as well:\n\n * **cpus**: The number of vCPUs to configure for your VM. Default: 1\n * **memory**: The amount of RAM, in MB, to configure for your VM. Default: 1024\n * **vcair_api_path**: The URI path for the compute API. This needs to be set when using vCloud Air OnDemand. Default: /api\n * **vm_password**: The password to set via VM customization for the root/administrator user.\n   * Be sure to set the same password in your `transport` section, too!\n   * NOTE: see the *known issues* section below regarding Windows and passwords.\n\nAll of the above settings can be set globally (in the top-level `driver` section), or can be set individually for each platform. For example, you may wish to set your vDC and network globally, but set your catalog and image for each individual platform, and increase the vCPUs/RAM assigned to your windows node:\n\n```yaml\ndriver:\n  name: vcair\n  vcair_username: user@domain.com\n  vcair_password: MyS33kretPassword\n  vcair_api_host: some-host.vchs.vmware.com\n  vcair_org: M12345678-4321\n  vdc_name: MyCompany VDC 1\n  network_name: vdc1-default-routed\n\nplatforms:\n  - name: centos\n    driver:\n      catalog_name: Public Catalog\n      image_name: CentOS64-64BIT\n  - name: windows\n    driver:\n      catalog_name: Public Catalog\n      image_name: W2K12-STD-R2-64BIT\n      cpus: 2\n      memory: 4096\n```\n\n### vCloud Air Subscription vs. OnDemand\n\nkitchen-vcair works as-is with vCloud Air Subscription. In vCloud Air OnDemand,\nthe API path is different. To use this plugin with vCloud Air OnDemand, you\nwill need to set the `vcair_api_path` configuration parameter to `/api/compute/api`:\n\n```yaml\ndriver:\n  vcair_api_path: /api/compute/api\n```\n\nAlso, in our testing, we found many of the VMware-provided images are missing\ncore configurations, such as properly-configured DNS resolvers. We strongly\nrecommend building your own images off the VMware-provided images with proper\nconfigurations.\n\n## Known Issues and Workarounds\n\n### SSH Authentication - passwords vs. public-key\n\nvCloud Air does not natively support deploying SSH keys to new VMs like other\ncloud providers. Therefore, many of the images in the vCloud Air public catalog\nonly support password authentication.\n\n#### Setting your own password\n\nThrough VM customization, vCloud Air allows you to specify a password that should\nbe set for the root account.  You can use the `vm_password` config parameter to\nspecify that password:\n\n```yaml\ndriver:\n  vm_password: mysupersecretpassword\n```\n\n... and then tell the transport to use that same password:\n\n```yaml\ntransport:\n  password: mysupersecretpassword\n```\n\n#### Using the pre-generated password by vCloud Air\n\n**This is not supported.** Unfortunately, a bug in Fog prevents us from\nretrieving that password, and a issue/PR will be logged to address this.\n\n### WinRM Authentication\n\n#### Setup\n\nMany of the images in the vCloud Air public catalog do not have WinRM enabled.\nYou will need to provide a customization script to enable WinRM.  An example\ncan be found in the `examples/` directory in this repo.  Note that multiple\nreboots are required for the VM to become ready for Test Kitchen to use, so\nthe time required for a Windows VM to be ready is fairly long.\n\nA potential workaround to this would be to create your own VM with WinRM enabled\nand configured properly and publish it in your own catalog.\n\n#### Setting your own password\n\nThe same customization function that works for Linux does not appear to work for\nWindows in vCloud Air. Additionally, Windows does not appear to honor the\ncustomization setting that disables the forced password change on first login.\n\nTherefore, a customization script will need to be used to set your Administrator\npassword. See the `examples/` directory for a sample customization script that\nenables WinRM and sets the Administrator password.\n\n### NAT and Public IP Support\n\nUnlike other cloud providers, vCloud Air does not treat public IPs as objects\nthat can be associated with VMs. Instead, those IPs are associated with network\nobjects called \"gateways\" which then require NAT and firewall rules to be\ncreated.  The Fog library does not support the creation of those objects.\n\nTherefore, only routed networks are supported, and it is required that Test\nKitchen be executed on a network within vCloud Air that has access to the\ndestination network on which your test VMs will be deployed.\n\n## License and Authors\n\nAuthor:: Chef Partner Engineering (\u003cpartnereng@chef.io\u003e)\n\nCopyright:: Copyright (c) 2015 Chef Software, Inc.\n\nLicense:: Apache License, Version 2.0\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the License at\n\n\u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing, software distributed under the\nLicense is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\neither express or implied. See the License for the specific language governing permissions\nand limitations under the License.\n\n## Contributing\n\nWe'd love to hear from you if this doesn't perform in the manner you expect. Please log a GitHub issue, or even better, submit a Pull Request with a fix!\n\n1. Fork it (\u003chttps://github.com/chef-partners/kitchen-vcair/fork\u003e)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-kitchen%2Fkitchen-vcair","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftest-kitchen%2Fkitchen-vcair","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-kitchen%2Fkitchen-vcair/lists"}