{"id":14965391,"url":"https://github.com/ssplatt/kitchen-linode","last_synced_at":"2025-10-25T11:31:44.098Z","repository":{"id":48130291,"uuid":"45569291","full_name":"ssplatt/kitchen-linode","owner":"ssplatt","description":"a Linode driver for Test Kitchen","archived":false,"fork":false,"pushed_at":"2024-04-12T22:41:07.000Z","size":159,"stargazers_count":4,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-31T07:04:45.948Z","etag":null,"topics":["ansible","chef","ci","ci-cd","devops","devops-tools","driver","kitchen","linode","linode-driver","saltstack","test-kitchen"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/kitchen-linode","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/ssplatt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-04T21:40:40.000Z","updated_at":"2022-08-01T16:28:46.000Z","dependencies_parsed_at":"2024-09-02T17:41:37.293Z","dependency_job_id":null,"html_url":"https://github.com/ssplatt/kitchen-linode","commit_stats":{"total_commits":86,"total_committers":6,"mean_commits":"14.333333333333334","dds":0.4651162790697675,"last_synced_commit":"54b4da2823c62d82fd7edeb5a5a5cd3c057b6aca"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssplatt%2Fkitchen-linode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssplatt%2Fkitchen-linode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssplatt%2Fkitchen-linode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssplatt%2Fkitchen-linode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssplatt","download_url":"https://codeload.github.com/ssplatt/kitchen-linode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238128566,"owners_count":19421054,"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":["ansible","chef","ci","ci-cd","devops","devops-tools","driver","kitchen","linode","linode-driver","saltstack","test-kitchen"],"created_at":"2024-09-24T13:34:40.783Z","updated_at":"2025-10-25T11:31:38.790Z","avatar_url":"https://github.com/ssplatt.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kitchen::Linode\n[![Gem](https://img.shields.io/gem/v/kitchen-linode.svg)](https://rubygems.org/gems/kitchen-linode)\n[![Gem](https://img.shields.io/gem/dt/kitchen-linode.svg)](https://rubygems.org/gems/kitchen-linode)\n[![Gem](https://img.shields.io/gem/dtv/kitchen-linode.svg)](https://rubygems.org/gems/kitchen-linode)\n[![Code Climate](https://codeclimate.com/github/ssplatt/kitchen-linode/badges/gpa.svg)](https://codeclimate.com/github/ssplatt/kitchen-linode)\n[![Test Coverage](https://codeclimate.com/github/ssplatt/kitchen-linode/badges/coverage.svg)](https://codeclimate.com/github/ssplatt/kitchen-linode/coverage)\n[![CI](https://github.com/ssplatt/kitchen-linode/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/ssplatt/kitchen-linode/actions/workflows/ci.yml)\n\nA Test Kitchen Driver for [Linode](http://www.linode.com).\n\n[![asciicast](https://asciinema.org/a/44348.png)](https://asciinema.org/a/44348)\n\n## Requirements\n\nRequires [Test Kitchen](https://kitchen.ci/) and a [Linode](http://www.linode.com) account.\n\n```sh\ngem install test-kitchen\n```\n\n## Installation and Setup\n\nThe gem file is hosted at [RubyGems](https://rubygems.org/gems/kitchen-linode). To install the gem file, run:\n\n```sh\ngem install kitchen-linode\n```\n\nOr, install with bundler if you have a Gemfile.\n\nPlease read the [Driver usage][driver_usage] page for more details.\n\n## Configuration\n\nFor many of these, you can specify an ID number, a full name, or a partial name that will try to match something in the list but may not match exactly what you want.\n\n| Option | Env Var | Default | Description |\n|-|-|-|-|\n| `linode_token` | `LINODE_TOKEN` | none | Linode API token. Required. |\n| `password` | `LINODE_PASSWORD` | Random UUID | Password for root. |\n| `label` | none | Auto generated | Label for the server. |\n| `tags` | none | `[\"kitchen\"]` | List of tags to set on the server. |\n| `hostname` | none | Label if provided, else kitchen instance name | The hostname of the server. |\n| `image` | none | Kitchen platform name | Linode image. |\n| `region` | `LINODE_REGION` | `us-east` | Linode region. |\n| `type` | none | `g6-nanode-1` | Linode type. |\n| `stackscript_id` | none | none | StackScript ID to provision the server with. |\n| `stackscript_data` | none | none | StackScript data for user defined fields. |\n| `swap_size` | none | none | Swap size in MB. |\n| `private_ip` | none | `false` | Set to true to add a private IP to the server. |\n| `authorized_users` | `LINODE_AUTH_USERS` | `[]` | List of authorized Linode users for seeding SSH keys. Environment variable should be a comma separated list of usernames. |\n| `private_key_path` | `LINODE_PRIVATE_KEY` | `~/.ssh/id_rsa`, `~/.ssh/id_dsa`, `~/.ssh/identity`, or `~/.ssh/id_ecdsa`, whichever first exists. | Path to SSH private key that should be used to connect to the server. |\n| `public_key_path` | none | Auto inferred based on the `private_key_path` | Path to SSH public key that should be installed on the server. |\n| `disable_ssh_password` | none | `true` | When set to `true` and SSH keys are provided password auth for SSH is disabled. |\n| `api_retries` | none | `5` | How many times to retry API calls on timeouts or rate limits. |\n\n## Usage\n\nFirst, set your Linode API token in an environment variable:\n\n```sh\nexport LINODE_TOKEN='myrandomtoken123123213h123bh12'\n```\n\nThen, create a .kitchen.yml file:\n\n```yaml\n---\ndriver:\n  name: linode\n\nprovisioner:\n  name: salt_solo\n  formula: vim\n  state_top:\n    base:\n      \"*\":\n        - vim\n\nplatforms:\n  - name: linode/debian10\n\nsuites:\n  - name: default\n```\n\nthen you're ready to run `kitchen test` or `kitchen converge`\n\n```sh\nkitchen test\n```\n\nIf you want to use Vagrant for local tests and Linode for CI tests then you can add the following to your `.kitchen.yml` to automatically switch the driver if the `LINODE_TOKEN` environment variable is set:\n\n```yaml\ndriver:\n  name: \u003c%= ENV['LINODE_TOKEN'] ? 'linode' : 'vagrant' %\u003e\n\nplatforms:\n  - name: debian-10\n    driver:\n      box: bento/debian-10\n      image: linode/debian10\n\nsuites:\n  - name: default\n```\n\nNote that both the `image` (linode) and the `box` (vagrant) options are supplied in the platform driver configuration.\n\nIf you want to change any of the default settings, you can do so in the 'platforms' area:\n\n```yaml\n# ...\u003csnip\u003e...\nplatforms:\n  - name: ubuntu_lts\n    driver:\n      type: g6-standard-2\n      region: eu-central\n      image: linode/ubuntu20.04\n# ...\u003csnip\u003e...\n```\n\n## 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## Authors\n\nCreated and maintained by [Brett Taylor][author] (\u003cbtaylor@linode.com\u003e)\n\n## License\n\nApache 2.0 (see [LICENSE][license])\n\n\n[author]:           \u003chttps://github.com/ssplatt\u003e\n[issues]:           \u003chttps://github.com/ssplatt/kitchen-linode/issues\u003e\n[license]:          \u003chttps://github.com/ssplatt/kitchen-linode/blob/master/LICENSE\u003e\n[repo]:             \u003chttps://github.com/ssplatt/kitchen-linode\u003e\n[driver_usage]:     \u003chttps://kitchen.ci/docs/reference/configuration/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssplatt%2Fkitchen-linode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssplatt%2Fkitchen-linode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssplatt%2Fkitchen-linode/lists"}