La Atlas CLI admite plugins que permiten ampliar su funcionalidad con comandos personalizados. Puedes desarrollar plugins en cualquier lenguaje de programación que se compile en un binario autónomo.
Este tutorial te guía a través de la creación de tu primer complemento de Atlas CLI usando Go y la librería Cobra.
Para aprender sobre cómo instalar y administrar complementos existentes, consulte atlas plugin.
Cómo funcionan los complementos
Cada plugin de Atlas CLI consta de dos componentes:
A
manifest.ymlarchivo que describe el complemento y sus comandosUn binario ejecutable que Atlas CLI invoca cuando un usuario ejecuta un comando de plugin
Cuando ejecutas un comando de plugin, Atlas CLI lee el archivo manifiesto, identifica el binario correcto y lo ejecuta con los argumentos adecuados. El binario del plugin maneja toda la lógica de comandos de forma independiente.
Requisitos previos
Antes de comenzar, asegúrese de tener instalado lo siguiente:
Ir. 1 21 o posterior
La interfaz de línea de comandos(CLI) de Atlas. Consulte Instalar o actualizar la CLI de Atlas.
Crea tu primer plugin
Revise el archivo de manifiesto.
Abra manifest.template.yml para ver la configuración del complemento:
name: atlas-cli-plugin-example description: this is an example plugin version: $VERSION github: owner: $GITHUB_REPOSITORY_OWNER name: $GITHUB_REPOSITORY_NAME binary: $BINARY commands: example: description: Root command of the atlas cli plugin example aliases: - example-alias-1 - example-alias-2
manifest.template.yml Define el archivo de manifiesto para el complemento. El manifiesto le indica a la CLI de Atlas qué comandos proporciona el complemento y qué binario ejecutar.
Revisa el código del plugin.
Abre cmd/plugin/main.go para ver la implementación del plugin:
package main import ( "fmt" "os" "github.com/spf13/cobra" ) func main() { rootCmd := &cobra.Command{ Use: "example", Short: "An example Atlas CLI plugin", Run: func(cmd *cobra.Command, args []string) { fmt.Println("Hello from the Atlas CLI plugin!") }, } if err := rootCmd.Execute(); err != nil { os.Exit(1) } }
El plugin utiliza Cobra para definir comandos. Cuando la Atlas CLI ejecuta el plugin, pasa el nombre del comando y los argumentos al binario.
Compila e instala el plugin.
Desde la raíz del repositorio, compila el binario del plugin y genera el archivo manifiesto:
go build -o bin/binary ./cmd/plugin BINARY=binary VERSION=1.0.0 \ GITHUB_REPOSITORY_OWNER=$(git remote get-url origin | sed 's/.*[:/]\(.*\)\/.*/\1/') \ GITHUB_REPOSITORY_NAME=$(basename -s .git $(git remote get-url origin)) \ envsubst < manifest.template.yml > manifest.yml
Crea el directorio del plugin y copia los archivos. El directorio predeterminado del plugin depende de tu sistema operativo:
PLUGIN_DIR=~/Library/Application\ Support/atlascli/plugins/atlas-cli-plugin-example mkdir -p "$PLUGIN_DIR" cp manifest.yml bin/binary "$PLUGIN_DIR/"
PLUGIN_DIR=~/.config/atlascli/plugins/atlas-cli-plugin-example mkdir -p "$PLUGIN_DIR" cp manifest.yml bin/binary "$PLUGIN_DIR/"
Personaliza tu plugin
Para crear tu propio plugin, modifica el ejemplo o empieza desde cero:
Actualiza
manifest.template.ymlcon el nombre, la descripción y los comandos de tu plugin.Implementa tu lógica de comando en Go (o en cualquier lenguaje que compile a un binario autónomo).
Asegúrate de que tu nombre de binario coincide con el campo
binaryenmanifest.template.yml.
Importante
Los nombres de comandos en tu archivo manifest no deben generar conflictos con los comandos existentes de Atlas CLI ni con los comandos de otros plugins instalados.
Distribuye tu plugin
Para distribuir tu plugin de manera que otras personas puedan instalarlo con el comando atlas plugin install, sigue estos pasos:
Haga el hosting de su plugin en un repositorio de GitHub.
Utiliza GoReleaser o una herramienta similar para crear lanzamientos en GitHub con binarios compilados para múltiples plataformas. El repositorio de ejemplo incluye una configuración de
.goreleaser.yamly un flujo de trabajo de GitHub Actions para lanzamientos automatizados.Cree una etiqueta de lanzamiento siguiendo el versionado semántico (por ejemplo,
v1.0.0).
Después de crear una versión de GitHub, los usuarios pueden instalar tu plugin:
atlas plugin install <github-owner>/<repository-name>
Usa un lenguaje de programación diferente
Si bien recomendamos Go con Cobra, puedes escribir plugins en cualquier lenguaje que compile a un binario ejecutable autónomo. Para un ejemplo de un plugin escrito en otro lenguaje, consulta el plugin de Rust de ejemplo repositorio en Github.
Tu plugin debe cumplir con los siguientes requisitos:
Su binario debe aceptar el nombre del comando como el primer argumento.
Su binario debe ser un ejecutable autónomo (sin dependencias de tiempo de ejecución externas).
El campo
binaryenmanifest.ymldebe coincidir con el nombre del archivo binario.
Obtén más información
atlas plugin - Manage Atlas CLI plugins.
atlas plugin install - Install a plugin.
atlas plugin update - Update a plugin.
atlas plugin uninstall - Uninstall a plugin.