Authoring template for eve plugins — copy this repo to start a new provider and/or package.
providers/example-provider/ # example provider plugin (template stub)
eve-plugin.yaml # manifest: access, bring-up commands, supports
commands/ # stub exec scripts for every provider command
packages/example-package/ # example package plugin (template stub)
eve-plugin.yaml # manifest: install/status/down, supports
commands/ # stub exec scripts for every package command
.github/workflows/ # CI running `eve plugin test` conformance checks
- Copy the directory for the kind you need (
providers/orpackages/). - Rename it to your plugin id (must match
[a-z][a-z0-9-]*). - Edit
eve-plugin.yaml: changeid,display_name, and adapt the fields. - Replace the stub scripts in
commands/with real implementations. - Run
eve plugin test <your-plugin-dir>to verify conformance.
For a provider, you must declare all bring-up commands (resolve, init,
plan, up, down, start, stop, status, ip, ssh, validate) and
access rules (bootstrap/provision/human users).
For a package, you declare only post-SSH commands (install, status,
down). Packages must not declare access, catalog.inits, provider
capabilities, or bring-up commands — they assume an already-reachable host.
.github/workflows/conformance.yml runs
eve's plugin-test conformance harness against both example plugins on every
push and pull request. It validates each manifest against the plugin contract
schema and enforces the SSH-readiness boundary (provider owns bring-up + access;
package is post-SSH only).
MIT licensed.