Agentbaker es una colección de componentes utilizados para provocar nodos Kubernetes en Azure.
AgentBaker tiene algunas piezas
El principal consumidor de AgentBaker es el servicio Azure Kubernetes (AKS).
AKS utiliza AgentBaker para provisar los nodos de Linux y Windows Kubernetes.
El desarrollo de AgentBaker requiere algunos requisitos básicos:
Ejecute make -C hack/tools install para instalar todas las herramientas de desarrollo.
Si cambia el código o los artefactos utilizados para generar datos personalizados o cargas útiles de extensión de script personalizada, debe ejecutar make .
Este código vuelve a ejecutar los archivos estáticos en el código GO, que es lo que realmente se usará en tiempo de ejecución.
Esto también ejecuta pruebas unitarias (equivalente a go test ./... ) y regenera Snapshot TestData.
Usamos Golangci-Lint para hacer cumplir el estilo.
Ejecute make -C hack/tools install para instalar el enlace.
Ejecutar ./hack/tools/bin/golangci-lint run para ejecutar el enlace.
Actualmente tenemos muchas fallas que esperamos eliminar.
Tenemos trabajo para ejecutar Golangci-Lint en solicitudes de extracción.
Este trabajo utiliza la característica de "No-New-Issues".
Mientras los PR no introduzcan nuevos problemas netos, deberían aprobarse.
También tenemos un trabajo de pelusa para hacer cumplir el estilo de mensaje de confirmación.
Nos adhirimos a los compromisos convencionales.
Prefiere solicitudes de extracción con comodidades individuales.
Para limpiar las confirmaciones en progreso, puede usar git rebase -i para fijar los compromisos.
Vea la documentación de Git para obtener más detalles.
La mayoría de los códigos se pueden probar con pruebas unitarias de Vanilla GO.
Visite el enlace oficial de GitHub para obtener más detalles. A continuación se muestra un breve caso de uso.
Shellspec se usa como marco para la prueba unitaria. Hay 2 opciones para instalarlo.
Shellspec ya está incluido en el makfile. Puede instalarlo simplemente ejecutando make tools-install o make generate en Root (/AgentBaker) Directorio.
NOTA: make generate instalará y ejecutará las pruebas de shellspec.
Si desea instalarlo en su máquina local, ejecute curl -fsSL https://git.io/shellspec | sh
Por defecto, debe instalarse en ~/.local/lib/shellspec . Agríquelo a la ruta $ para su conveniencia. Ejemplo de comando export PATH=$PATH:~/.local/lib/shellspec .
Deberá escribir el archivo xxx_spec.sh para la prueba.
Por ejemplo, AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh es un archivo de prueba para AgentBaker/parts/linux/cloud-init/artifacts/cse_install.sh
Para ejecutar todas las pruebas, en la carpeta AgentBaker, simplemente ejecute bash ./hack/tools/bin/shellspec en el directorio root (/agente).
bash ./hack/tools/bin/shellspec -x => con -x , mostrará traza detallada para la depuración.bash ./hack/tools/bin/shellspec -E "<test name>" => Puede ejecutar un solo caso de prueba usando -E y el nombre de prueba. Por ejemplo, bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04" . También puede hacer -xE para traza verbosa para un solo caso de prueba.bash ./hack/tools/bin/shellspec "path to xxx_spec.sh" => Al proporcionar una ruta completa un archivo de especificaciones particular, solo puede ejecutar ese archivo de especificaciones en lugar de todos los archivos de especificaciones en el proyecto AgentBaker. Por ejemplo, bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" También tenemos pruebas de datos de instantáneas, que almacenan la salida de las API clave como archivos en el disco.
Podemos verificar manualmente el contenido de la instantánea se ve correcto.
Ahora tenemos pruebas unitarias que pueden validar directamente el contenido sin dejar archivos generados en el disco.
Consulte ./pkg/agent/baker_test.go para ver ejemplos (busque dynamic-config-dir para ver una muestra de validación).
Consulte el directorio E2E.
Este proyecto da la bienvenida a las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Acuerdo de Licencia de Contributor (CLA) que declare que tiene derecho y realmente hacernos los derechos para utilizar su contribución. Para más detalles, visite https://cla.opensource.microsoft.com.
Cuando envíe una solicitud de extracción, un BOT CLA determinará automáticamente si necesita proporcionar un CLA y decorar el PR adecuadamente (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitará hacer esto una vez en todos los reposos usando nuestro CLA.
Este proyecto ha adoptado el Código de Conducta Open Open Microsoft. Para obtener más información, consulte el Código de Conducta Preguntas frecuentes o comuníquese con [email protected] con cualquier pregunta o comentario adicional.
Un archivo CGManifest es un archivo JSON utilizado para registrar componentes manualmente cuando el tipo de componente no es compatible con el gobierno. El nombre del archivo es "cgmanifest.json" y puede tener tantos como necesite y puede estar en cualquier lugar de su repositorio.
Ruta de archivo: ./vhdbuilder/cgmanifest.json
Referencia: https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
Paquete: