{"id":22529467,"url":"https://github.com/test-kitchen/kitchen-cloudstack","last_synced_at":"2025-08-03T23:33:15.461Z","repository":{"id":670621,"uuid":"9705487","full_name":"test-kitchen/kitchen-cloudstack","owner":"test-kitchen","description":"CloudStack driver for Test Kitchen","archived":false,"fork":false,"pushed_at":"2023-12-15T02:32:41.000Z","size":88,"stargazers_count":11,"open_issues_count":5,"forks_count":16,"subscribers_count":19,"default_branch":"main","last_synced_at":"2024-04-14T00:57:06.405Z","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":"2013-04-26T22:28:21.000Z","updated_at":"2022-10-04T14:50:47.000Z","dependencies_parsed_at":"2023-12-19T07:16:00.082Z","dependency_job_id":"708fb1f2-f431-4192-a7c2-3b0842a44eed","html_url":"https://github.com/test-kitchen/kitchen-cloudstack","commit_stats":{"total_commits":67,"total_committers":20,"mean_commits":3.35,"dds":0.5970149253731343,"last_synced_commit":"271d2784dc329055a0c4497ff21684c8bc836954"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-cloudstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-cloudstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-cloudstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-kitchen%2Fkitchen-cloudstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/test-kitchen","download_url":"https://codeload.github.com/test-kitchen/kitchen-cloudstack/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.933Z","updated_at":"2024-12-07T07:14:50.493Z","avatar_url":"https://github.com/test-kitchen.png","language":"Ruby","readme":"# \u003ca name=\"title\"\u003e\u003c/a\u003e Kitchen::CloudStack\n\nA Test Kitchen Driver for Apache CloudStack / Citrix CloudPlatform.\n\n## \u003ca name=\"requirements\"\u003e\u003c/a\u003e Requirements\n\nThis Gem only requires FOG of a version greater than 1.3.1. However, as most of your knife plugins will be using newer\nversions of FOG, that shouldn't be an issue.\n\n## \u003ca name=\"installation\"\u003e\u003c/a\u003e Installation and Setup\n\nPlease read the [Driver usage][driver_usage] page for more details.\n\n## \u003ca name=\"config\"\u003e\u003c/a\u003e Configuration\n\nProvide, at a minimum, the required driver options in your `.kitchen.yml` file:\n\n    driver_plugin: cloudstack\n    driver_config:\n      cloudstack_api_key: [YOUR CLOUDSTACK API KEY]\n      cloudstack_secret_key: [YOUR CLOUDSTACK SECRET KEY]\n      cloudstack_api_url: [YOUR CLOUDSTACK API URL]\n      require_chef_omnibus: latest (if you'll be using Chef)\n    OPTIONAL\n      cloudstack_expunge: [TRUE/FALSE] # Whether or not you want the instance to be expunged, default false.\n      cloudstack_sync_time: [NUMBER OF SECONDS TO WAIT FOR CLOUD-SET-GUEST-PASSWORD/SSHKEY]\n      keypair_search_directory: [PATH TO DIRECTORY (other than ~, ., and ~/.ssh) WITH KEYPAIR PEM FILE]\n      cloudstack_project_id: [PROJECT_ID] # To deploy VMs into project.\n      cloudstack_vm_public_ip: [PUBLIC_IP] # In case you use advanced networking and do static NAT manually.\n      associate_public_ip: [TRUE/FALSE] # If you want kitchen to automatically associate a public IP, default false.\n      cloudstack_create_firewall_rule: [TRUE/FALSE] # If you want Kitchen to automatically create firewall rule for public IP to reach SSH (port 22)\n      cloudstack_userdata: \"#cloud-config\\npackages:\\n - htop\\n\" # double quote required.\n\nThen to specify different OS templates,\n\n    platforms:\n      cloudstack_template_id: [INSTANCE TEMPLATE ID]\n      cloudstack_serviceoffering_id: [INSTANCE SERVICE OFFERING ID]\n      cloudstack_zone_id: [INSTANCE ZONE ID]\n    OPTIONAL\n      cloudstack_network_id: [NETWORK ID FOR ISOLATED OR VPC NETWORKS]\n      cloudstack_security_group_id: [SECURITY GROUP ID FOR SHARED NETWORKS]\n      cloudstack_affinity_group_id: [AFFINITY GROUP ID FOR DEDICATED CLUSTER]\n      cloudstack_serviceoffering_cpu: [THE NUMBER OF CPU FOR A SERVICE OFFERING THAT DOES NOT SPECIFY CPU]\n      cloudstack_serviceoffering_cpuspeed: [THE SPEED OF EACH CPU FOR A SERVICE OFFERING THAT DOES NOT SPECIFY CPU]\n      cloudstack_serviceoffering_memory: [THE AMOUNT OF MEMORY IN MB FOR A SERVICE OFFERING THAT DOES NOT SPECIFY MEMORY]\n      cloudstack_diskoffering_id: [INSTANCE DISK OFFERING ID]\n      cloudstack_diskoffering_size: [INSTANCE DISK OFFERING SIZE IN GB]\n      cloudstack_ssh_keypair_name: [SSH KEY NAME]\n      cloudstack_sync_time: [NUMBER OF SECONDS TO WAIT FOR CLOUD-SET-GUEST-PASSWORD/SSHKEY]\nTo use the CloudStack public key provider, you need to have the .PEM file located in the same directory as\nyour .kitchen.yml file, your home directory (\\~), your .ssh directory (\\~/.ssh/), or specify a directory (without any\ntrailing slahses) as your \"keypair_search_directory\" and the file be named the same as the Keypair on CloudStack\nsuffixed with .pem (e.g. the Keypair named \"TestKey\" should be located in one of the searched directories and named\n\"TestKey.pem\"). \nThis PEM file should be the PRIVATE key, not the PUBLIC key.\n\nBy default, a unique server name will be generated and the randomly generated password will be used, though that\nbehavior can be overridden with additional options (e.g., to specify a SSH private key):\n\n    name: [A UNIQUE SERVER NAME]\n    public_key_path: [PATH TO YOUR SSH PUBLIC KEY]\n    username: [SSH USER]\n    port: [SSH PORT]\n\nhost_name setting is  useful if you are facing ENAMETOOLONG exceptions in the \nchef run caused by long generated hostnames)\n\n    host_name: [A UNIQUE HOST NAME]\n\nOnly disable SSL cert validation if you absolutely know what you are doing,\nbut are stuck with an CloudStack deployment without valid SSL certs.\n\n    disable_ssl_validation: true\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\n  will skip re-installing if chef is present.\n* `latest` - the latest release will be installed. Subsequent converges\n  will always re-install even if chef is present.\n* `\u003cVERSION_STRING\u003e` (ex: `10.24.0`) - the desired version string will\n  be passed the the install.sh script. Subsequent converges will skip if\n  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=\"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\nexample:\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=\"authors\"\u003e\u003c/a\u003e Authors\n\nCreated and maintained by [Jeff Moody][author] (\u003cfifthecho@gmail.com\u003e)\n\n## \u003ca name=\"license\"\u003e\u003c/a\u003e License\n\nApache 2.0 (see [LICENSE][license])\n\n\n[author]:           https://github.com/fifthecho\n[issues]:           https://github.com/test-kitchen/kitchen-cloudstack/issues\n[license]:          https://github.com/test-kitchen/kitchen-cloudstack/blob/master/LICENSE\n[repo]:             https://github.com/test-kitchen/kitchen-cloudstack\n[driver_usage]:     http://docs.kitchen-ci.org/drivers/usage\n[chef_omnibus_dl]:  http://getchef.com/chef/install/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-kitchen%2Fkitchen-cloudstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftest-kitchen%2Fkitchen-cloudstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-kitchen%2Fkitchen-cloudstack/lists"}