SDK de VergeOS para Go (govergeos)
govergeos es una biblioteca cliente de Go para administrar la infraestructura de VergeOS a través de la API REST, que proporciona interfaces seguras en cuanto a tipos para automatizar VM, redes, almacenamiento, inquilinos y recuperación ante desastres.
Descripción general
govergeos es una biblioteca cliente de Go para gestionar la infraestructura de VergeOS a través de la API REST. Proporciona una interfaz de Go idiomática y con seguridad de tipos para automatizar el ciclo de vida de las VMs, redes, almacenamiento, operaciones multiinquilino y flujos de trabajo de recuperación ante desastres, lo que lo hace ideal para crear herramientas, operadores y automatización de infraestructura.
Características clave
Gestión de VM: Creación, configuración, control de energía, clonación e instantáneas
Redes avanzadas: Redes virtuales, reglas de firewall, DHCP, DNS, VPN IPSec y WireGuard
NAS y almacenamiento: Gestión de volúmenes, recursos compartidos CIFS/NFS, exploración asíncrona de volúmenes y sincronización
Multitenencia: Aprovisionamiento de inquilinos con aislamiento de recursos y gestión de nodos
Recuperación ante desastres: Instantáneas en la nube, sincronización de sitios y flujos de trabajo de recuperación
API con seguridad de tipos: Interfaces completas de Go para simulación, soporte de contexto y operaciones concurrentes seguras para hilos
Sin dependencias: Solo biblioteca estándar; sin dependencias externas
Multiplataforma: Compatibilidad con Windows, macOS y Linux
Requisitos
Go 1.21 o posterior
VergeOS 26.0 o posterior
Instalación
Usando go get
En go.mod
Autenticación
El SDK admite múltiples métodos de autenticación:
Nombre de usuario/contraseña
Clave API
Variables de entorno
VERGEOS_HOST
Sí
—
URL base (p. ej., https://vergeos.example.com)
VERGEOS_USERNAME
No*
—
Nombre de usuario para autenticación básica
VERGEOS_PASSWORD
No*
—
Contraseña para autenticación básica
VERGEOS_API_KEY
No*
—
Clave API para autenticación bearer
VERGEOS_VERIFY_SSL
No
true
Verificar certificados TLS
VERGEOS_TIMEOUT
No
30
Tiempo de espera de la solicitud en segundos
*Se requiere una de las opciones (USERNAME+PASSWORD) o API_KEY.
Recomendado para producción
Usar variables de entorno mantiene las credenciales fuera de su código fuente y facilita el uso de diferentes credenciales en distintos entornos.
Opciones del cliente
El cliente admite opciones de configuración adicionales:
Recursos disponibles
El SDK proporciona acceso a los siguientes recursos de VergeOS:
Máquinas virtuales
VMs, VMDrives, VMNICs, VMSnapshots, VMDevices
Redes
Networks, VNetRules, VNetAddresses, VNetHosts, VNetDNSViews/Zones/Records
VPN
VNetIPSecs, VNetIPSecPhase1s/Phase2s, VNetWireGuards, VNetWireGuardPeers
NAS/Almacenamiento
NASServices, Volumes, VolumeSnapshots, VolumeCIFSShares, VolumeNFSShares, VolumeSyncs
Inquilinos
Tenants, TenantNodes, TenantStorage, TenantSnapshots, TenantLayer2Networks
Usuarios y grupos
Users, Groups, Members, Permissions, UserAPIKeys
Sistema
Clusters, Nodes, Settings, System, Certificates
Monitorización
Alarms, Logs, Tasks, StorageTiers, ClusterTiers
Copia de seguridad y DR
SnapshotProfiles, CloudSnapshots, Sites, SiteSyncs
Automatización
Files, CloudInitFiles, WebhookURLs, Webhooks
Organization
Tags, TagCategories, TagMembers, ResourceGroups
Ejemplos de uso
Administración de máquinas virtuales
Creación y administración de redes
Recursos de filtrado
El SDK admite un filtrado flexible con opciones de lista:
Operaciones concurrentes
El SDK es seguro para hilos y admite operaciones concurrentes usando goroutines:
Cancelación de contexto
Todos los métodos aceptan un context.Context, lo que te permite establecer tiempos de espera y gestionar la cancelación de operaciones de larga duración.
Manejo de errores
El SDK proporciona tipos de error específicos para distintas condiciones de error:
APIError
—
Error base para todos los errores de API
AuthError
IsAuthError(err)
Credenciales no válidas o token expirado
NotFoundError
IsNotFoundError(err)
El recurso solicitado no existe
ValidationError
IsValidationError(err)
Valores de parámetros no válidos
UnsupportedVersionError
IsUnsupportedVersionError(err)
Versión de VergeOS no compatible
Casos de uso comunes
Automatización de infraestructura: Aprovisione VMs, redes y almacenamiento mediante programación
Operadores de Kubernetes: Crear controladores personalizados para recursos de VergeOS
Integración CI/CD: Cree y destruya entornos de prueba en los pipelines
Herramientas de monitoreo: Consultar el estado de los recursos y crear paneles personalizados
Automatización de copias de seguridad: Programe y administre instantáneas y copias de seguridad en la nube
Aprovisionamiento multitenencia: Automatice la creación de inquilinos y la asignación de recursos
Documentación y recursos
Para obtener la documentación completa, incluidos todos los métodos disponibles y ejemplos de uso detallados, visite el repositorio oficial:
Soporte
Si encuentra problemas o tiene solicitudes de funciones, abra un issue en el repositorio de GitHub:
Recursos adicionales
SDK de Python (pyvergeos) - Alternativa de Python
Proveedor de Terraform - infraestructura como código
Última actualización
¿Te fue útil?