Goal
You will understand how to package and validate an extension release.
Build the archive
Prefer GitHub release archives for public extensions. The archive root must contain the manifest instead of wrapping the package in another directory:
kongctl-extension.yamlbin/kongctl-ext-fooREADME.md
Script extensions can publish one universal archive. Compiled extensions should publish a separate archive for each supported operating system and architecture, for example:
kongctl-ext-foo-linux-amd64.tar.gzkongctl-ext-foo-darwin-arm64.tar.gzkongctl-ext-foo-windows-amd64.zip
Verify the release
Before publishing:
- Run the executable directly.
- Link it and exercise every contributed command.
- Install it from a local path.
- Publish a tagged GitHub release archive.
- Install that exact tag.
- Upgrade from an older tag.
- Verify structured output remains clean with
--output json.
Prefer safe examples
Public examples should begin with read-only behavior, such as displaying the
runtime context, calling kongctl get me, or summarizing APIs, portals, and
control planes.