add-provider

Generate Afterburn cloud provider modules, tests, and documentation.

231|130|Updated Jul 22, 2015
One-click install
npx skills add https://github.com/coreos/afterburn --skill add-provider-coreos
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: add-provider
Source: https://github.com/coreos/afterburn/tree/main/.opencode/skills/add-provider
Command: npx skills add https://github.com/coreos/afterburn --skill add-provider-coreos

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Adding a new cloud/platform provider to Afterburn is repetitive and error-prone because it requires creating Rust modules, mock tests, wiring into dispatch tables, and updating multiple docs and service files manually. This Skill automates the repetitive scaffolding work, ensures consistent project structure, and reduces integration mistakes.

Core Features & Use Cases

  • Interactive Input & Validation: Collects provider ID, struct name, metadata type (imds or configdrive), base URLs/auth, supported features, and attributes, and validates there are no naming conflicts.
  • Code & Tests Generation: Creates a provider Rust module and mock tests following existing provider patterns, and wires the provider into src/providers/mod.rs and src/metadata.rs.
  • Documentation & Service Updates: Updates docs/platforms.md, docs/usage/attributes.md, docs/release-notes.md, and conditionally edits systemd/dracut service files based on supported features, then verifies formatting, build, tests, and linting.
  • Use Case: Quickly add a new IMDS or configdrive provider during contribution development to accelerate PR readiness and reduce manual errors.

Quick Start

Run the add-provider workflow and answer the interactive prompts to scaffold a new provider module and accompanying tests and documentation.

Frequently Asked Questions about add-provider

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new cloud provider to Afterburn?

Scaffolding a new Afterburn cloud provider involves interactively entering the provider ID, struct name, and metadata type. The workflow then generates Rust modules, mock tests, dispatch wiring, and documentation, finishing with cargo fmt, build, test, and clippy verification.

What files need updating when adding an IMDS or configdrive platform to Afterburn?

When adding an IMDS or configdrive platform, you must update src/providers/mod.rs, src/metadata.rs, docs/platforms.md, docs/usage/attributes.md, and docs/release-notes.md. The scaffolding workflow also conditionally modifies systemd and dracut service files based on supported features.

Does the Afterburn provider scaffolding process run tests and linting automatically?

Yes, the scaffolding workflow runs cargo fmt, build, test, and clippy automatically after generating provider modules and wiring. This verifies that the new boilerplate compiles correctly and meets project linting standards before submitting a contribution.

Can I use this scaffolding tool for both IMDS and configdrive metadata types?

Yes, the scaffolding workflow supports both IMDS and configdrive metadata types. During the interactive prompts, you specify the metadata type, base URLs, and supported features, which dictates how the provider Rust module and dispatch wiring are generated.

How do I avoid naming conflicts when creating a new Afterburn provider module?

To avoid naming conflicts when creating an Afterburn provider module, the scaffolding workflow validates the provider ID and struct name against existing entries during interactive input. This prevents duplicate module generation and dispatch errors before any files are created.