
Monokle CLI es una interfaz de línea de comandos para el análisis estático de los recursos de Kubernetes.
Úselo para evitar configuraciones erróneas dentro de los recursos de Kustomize, Helm o Kubernetes predeterminados. La salida está disponible como un archivo SARIF que puede cargar a GitHub CodeScan.
Monokle CLI permite la integración con Monokle Cloud y Monokle Enterprise para administrar y hacer cumplir las políticas de validación centralmente para todos sus reposos y tuberías.
Puede leer más sobre las características de Monokle CLI y el ecosistema de Monokle completo en el anuncio de blog-post.
Puede instalar Monokle CLI a través de NPM:
npm install --global @monokle/cliO usar cerveza si estás en macOS:
brew install kubeshop/monokle/monokle-cliMonokle CLI expone los siguientes comandos:
monokle validate [path] - Valide los recursos de Kubernetes en una ruta determinada.monokle init - Genere un archivo de configuración local.monokle login : inicie sesión en Monokle Cloud o Enterprise para usar una política remota.monokle logout : cierre de sesión desde Monokle Cloud o Enterprise.monokle whoami : obtenga información sobre el usuario autenticado actualmente.monokle config show [path] - Mostrar archivo de configuración de políticas que se utilizará para validar la ruta dada. Siempre puede usar el argumento --help para obtener la lista de todos los comandos disponibles o información detallada sobre cada comando.
Monokle CLI incluye validadores incorporados para proporcionarle posibilidades de validación integrales para configuraciones de K8s fuera de la caja:
Debajo del capó usa [@monokle/validation] [https://github.com/kubeshop/monokle-core/tree/main/packages/validation] que le permite configurar las reglas de validación ampliamente.
Una vez instalado, el uso de la CLI es directo.
monokle validate bundle.yamlEsto escaneará recursivamente todos los archivos YAML y los analizará como recursos simples de Kubernetes.
monokle validate k8s-dirhelm template helm-dir | monokle validate -kustomize build kustomize-dir/overlays/local | monokle validate -monokle validate path/to/validate -c path/to/config/monokle.validation.yaml Para usar una política remota, primero debe iniciar sesión en Monokle Cloud. Esto se puede hacer a través del comando monokle login :
monokle login Después de eso, simplemente ejecute el comando validate . Monokle CLI obtendrá una política remota basada en los datos de su usuario:
monokle validate path/to/validateIMPORTANTE : Tenga en cuenta que las políticas remotas deben configurarse primero. Consulte Usar con la sección de Monokle Cloud a continuación.
Monokle CLI admite conjuntos predefinidos de reglas llamados Frameworks, que le permiten ejecutar rápidamente la validación de Monokle sin la necesidad de una configuración adicional. Al utilizar un marco, puede realizar fácilmente validaciones integrales basadas en las mejores prácticas y estándares de la industria establecidos.
Al usar un marco, no tiene que configurar el archivo monokle.validation.yaml manualmente. Simplemente especifique el marco deseado utilizando los argumentos --framework o -f CLI, y Monokle CLI aplicará automáticamente el conjunto de reglas correspondiente.
Marcos disponibles:
pss-restrictedpss-baselinensaUsar Frameworks es una excelente manera de comenzar rápidamente con Monokle CLI y realizar validaciones integrales sin la necesidad de una configuración extensa.
Aquí hay un ejemplo de cómo usar el argumento --framework :
monokle validate k8s-dir --framework pss-restricted Si prefiere una validación más personalizada, aún puede configurar el archivo monokle.validation.yaml con sus propias reglas. La forma más fácil es usar el comando monokle init que lo guiará mediante la creación de la configuración personalizada basada en los marcos disponibles.
La CLI de Monokle puede generar sus resultados en formato SARIF.
monokle validate --output sarif k8s-dir > results.sarifPosteriormente, puede usar el espectador SARIF de VSC u otras herramientas para inspeccionar los resultados.
Para usar una política remota con Monokle CLI, deberá crear un proyecto y configurar la política para él en Monokle Cloud. Comience por registrarse en Monokle Cloud.
En caso de dudas, consulte la Guía de inicio o hágenos directamente en Discord.
Después de registrarse, comience creando un proyecto en la página de proyectos:

Después de que se cree el proyecto, agregue un repositorio (con el que trabajará localmente) a un proyecto. Esto se puede hacer yendo a la pestaña Repositories en la vista del proyecto y usando el botón Add repository :

El último paso es la configuración de políticas. Puede usar el asistente de políticas yendo a la pestaña Policy en la vista del proyecto:

Una vez realizado la configuración, puede ejecutar el comando monokle validate y utilizará una política remota siempre que haya iniciado sesión.
Usar con Monokle Enterprise (autohostado) es muy similar al uso con Monokle Cloud. La principal diferencia es el origen (URL) con el que se comunicará Monokle CLI. Esto se puede configurar en login o para cada comando por separado (útil para escenarios automatizados).
monokle login --origin https://monokle.mydomain.comIMPORTANTE : La variable ENV
MONOKLE_ORIGINtambién se puede usar para establecer el origen para el comando de registro. Si ninguno se usa, CLI solicitará cada vez que use origen personalizado.
Para usar el indicador --origin sin iniciar sesión, consulte Uso de la sección de tuberías CI/CD a continuación.
Tenemos
Monokle GitHub Botdedicado para integrar la gestión de políticas centralizadas en las tuberías de GitHub CI/CD que proporciona una integración más estrecha con la nube de Monokle que el uso de CLI directamente.
Para usar Monokle CLI como parte de la tubería CI/CD, debe instalarse primero y luego simplemente ejecutar con monokle validate path/to/resources .
El otro caso es utilizar una política administrada centralmente de Monokle Cloud en tales escenarios. En tales, uno debe usar el token de automatización (que se puede generar a través de la pestaña Automation token en la vista Workspace ) junto con el ID de proyecto a partir de la cual se debe utilizar la política:
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_IDLa identificación del proyecto se puede obtener en la página Detalles del proyecto de URL
https://app.monokle.com/dashboard/projects/<projectId>.
También puede cambiar el origen que se utilizará para obtener políticas (por ejemplo, al ejecutar su propia instancia de Monokle Enterprise):
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID -r https://monokle.mydomain.comIMPORTANTE : Recuerde siempre mantener su token API como secreto y pasarlo a los trabajos de CI/CD de la misma manera que otros secretos.
El bot Github de Monokle se puede utilizar para validar sus recursos como parte de sus tuberías GitHub CI/CD. Está integrado con Monokle Cloud fuera de la caja para permitir una fácil gestión de políticas centralizadas.
La acción de Monokle Github se puede utilizar para validar sus recursos como parte de sus tuberías CI/CD en GitHub. Da más personalización cuando se trata de validar los resultados de las ejecuciones secas.
Si necesita algo estrechamente integrado con Monokle Cloud, le recomendamos usar Monokle GitHub Bot .
Puede usar --help para acceder a la información de ayuda directamente desde la CLI.
El Monokle CLI busca un archivo de configuración de validación de Monokle en ./monokle.validation.yaml . Puede cambiar esto usando la bandera --config .
Todas las reglas están habilitadas de forma predeterminada y se describen en la documentación de configuración de validación de Monokle.
Ejemplo
plugins :
yaml-syntax : true
kubernetes-schema : true
rules :
yaml-syntax/no-bad-alias : " warn "
yaml-syntax/no-bad-directive : false
open-policy-agent/no-last-image : " err "
open-policy-agent/cpu-limit : " err "
open-policy-agent/memory-limit : " err "
open-policy-agent/memory-request : " err "
settings :
kubernetes-schema :
schemaVersion : v1.24.2Es fácil extender la CLI de Monokle con validadores personalizados que se pueden compartir con otros utilizando nuestro repositorio de complementos de la comunidad Monokle.
Puede usar la imagen Docker monokle-cli:latest para ejecutar el Monokle CLI en un entorno contenedorizado. Esto puede ser particularmente útil para integrar a Monokle en tuberías CI/CD u otros sistemas automatizados.
Para ejecutar la imagen Docker, puede usar el comando docker run . Los argumentos de Monokle CLI se pueden pasar directamente al comando Docker Run. Por ejemplo:
docker run -v /path/to/input:/input -e CONFIG_FILE=my-validation-config.yaml monokle-cli:latest validate /input
En este comando:
-v /path/to/input:/input monta un directorio desde su sistema de host al directorio/Interput dentro del contenedor Docker.-e CONFIG_FILE=my-validation-config.yaml establece una variable de entorno dentro del contenedor Docker. Si se establece esta variable de entorno, el contenedor Docker utilizará el archivo especificado como la configuración de validación de Monokle.validate /input es el comando que se pasará al Monokle CLI. Puede reemplazar esto con cualquier comando que desee ejecutar con el Monokle CLI.