Kantra es una CLI que unifica las capacidades de análisis y transformación de Konveyor. Está disponible para Linux, Mac y Windows.
Se requiere Podman 4+ para ejecutar kantra. De forma predeterminada, está configurado para utilizar el ejecutable podman disponible en el host.
Aunque kantra se prueba principalmente con podman, se pueden utilizar Docker Engine 24+ o Docker Desktop 4+ como alternativa. Para usar la ventana acoplable, configure la variable de entorno CONTAINER_TOOL
apuntando a la ruta del ejecutable de la ventana acoplable:
export CONTAINER_TOOL=/usr/bin/docker
Para instalar kantra, descargue el ejecutable para su plataforma y agréguelo a la ruta.
Nota: En Mac, es posible que recibas el mensaje de error "Apple no pudo verificar". Si lo hace, puede ejecutar xattr -d com.apple.quarantine kantra
para que Apple confíe en el binario kantra
.
Vaya a la página de lanzamiento y descargue el archivo zip que contiene un binario para su plataforma y arquitectura. Descomprima el archivo y agregue el ejecutable a la ruta.
La forma más sencilla de obtener el ejecutable más reciente (o uno particular/anterior) es obtenerlo de la imagen del contenedor respectivo.
Establezca la variable de shell kantra_version
en una versión particular si desea obtener esa versión, por ejemplo, kantra_version=v0.4.0
.
Correr:
${CONTAINER_TOOL :- podman} cp $( ${CONTAINER_TOOL :- podman} create --name kantra-download quay.io/konveyor/kantra: ${kantra_version :- latest} ) :/usr/local/bin/kantra . && ${CONTAINER_TOOL :- podman} rm kantra-download
Cuando no esté utilizando Docker para escritorio en su Mac (consulte arriba), deberá iniciar una máquina podman antes de ejecutar cualquier comando de podman (consulte Configuración para Mac).
Una vez que se inicia una máquina, ejecute:
${CONTAINER_TOOL :- podman} cp $( ${CONTAINER_TOOL :- podman} create --name kantra-download quay.io/konveyor/kantra: ${kantra_version :- latest} ) :/usr/local/bin/darwin-kantra . && ${CONTAINER_TOOL :- podman} rm kantra-download
Cuando no esté utilizando Docker para escritorio en Windows (consulte arriba), deberá iniciar una máquina podman antes de ejecutar cualquier comando de podman (consulte Configuración para Windows).
Una vez que se inicia una máquina, ejecute:
${CONTAINER_TOOL :- podman} cp $( ${CONTAINER_TOOL :- podman} create --name kantra-download quay.io/konveyor/kantra: ${kantra_version :- latest} ) :/usr/local/bin/windows-kantra . && ${CONTAINER_TOOL :- podman} rm kantra-download
Asegúrese de agregar el ejecutable a
PATH
.
En Mac y Windows, es necesario iniciar una máquina podman antes de ejecutar cualquier comando, a menos que esté utilizando Docker (para escritorio):
Antes de iniciar su máquina podman, ejecute:
ulimit -n unlimited
Inicie su máquina podman:
Hombre Pod 4 :
Podman 4 requiere que se monten algunos directorios de host dentro de la VM:
podman machine init < vm_name > -v $HOME : $HOME -v /private/tmp:/private/tmp -v /var/folders/:/var/folders/
Hombre Pod 5 :
Podman 5 monta los directorios $HOME , /private/tmp y /var/folders de forma predeterminada, simplemente inicie la máquina:
podman machine init < vm_name >
Si los directorios de entrada y/o salida que desea utilizar con kantra quedan fuera del árbol de directorios $HOME, /private/tmp y /var/folders, debe montar esos directorios además del predeterminado.
Aumente los recursos de podman (se requiere memoria 4G mínima):
podman machine set < vm_name > --cpus 4 --memory 4096
Inicie la máquina:
podman machine init < vm_name >
Kantra tiene tres subcomandos:
analizar : este subcomando permite ejecutar el análisis del código fuente en el código fuente de entrada o en un binario.
transformar : este subcomando permite convertir reglas XML a YAML o ejecutar recetas de OpenRewrite en el código fuente.
prueba : este subcomando permite probar reglas YAML.
El subcomando analizar permite ejecutar código fuente y análisis binario utilizando el analizador-lsp.
Para ejecutar un análisis del código fuente de la aplicación, ejecute:
kantra analyze --input= < path/to/source/code > --output= < path/to/output/dir >
--input debe apuntar a un directorio de código fuente o un archivo binario, --output debe apuntar a un directorio que contenga los resultados del análisis.
Todas las banderas:
Flags:
--analyze-known-libraries analyze known open-source libraries
--bulk running multiple analyze commands in bulk will result to combined static report
--context-lines int number of lines of source code to include in the output for each incident (default 100)
-d, --dependency-folders stringArray directory for dependencies
--enable-default-rulesets run default rulesets with analysis (default true)
-h, --help help for analyze
--http-proxy string HTTP proxy string URL
--https-proxy string HTTPS proxy string URL
--incident-selector string an expression to select incidents based on custom variables. ex: (!package=io.konveyor.demo.config-utils)
-i, --input string path to application source code or a binary
--jaeger-endpoint string jaeger endpoint to collect traces
--json-output create analysis and dependency output as json
-l, --label-selector string run rules based on specified label selector expression
--list-sources list rules for available migration sources
--list-targets list rules for available migration targets
--maven-settings string path to a custom maven settings file to use
-m, --mode string analysis mode. Must be one of 'full' or 'source-only' (default "full")
--no-proxy string proxy excluded URLs (relevant only with proxy)
-o, --output string path to the directory for analysis output
--overwrite overwrite output directory
--rules stringArray filename or directory containing rule files. Use multiple times for additional rules: --rules --rules ...
--skip-static-report do not generate static report
-s, --source stringArray source technology to consider for analysis. Use multiple times for additional sources: --source --source ...
-t, --target stringArray target technology to consider for analysis. Use multiple times for additional targets: --target --target ...
Por diseño, Kantra admite el análisis de una sola aplicación por ejecución de comando Kantra. Sin embargo, es posible usar la opción --bulk
para ejecutar múltiples comandos de análisis de kantra con diferentes aplicaciones para obtener un directorio de salida y un informe estático con todos los informes de análisis de aplicaciones.
Ejemplo:
kantra analyze --bulk --input= < path/to/source/A > --output= < path/to/output/ABC >
kantra analyze --bulk --input= < path/to/source/B > --output= < path/to/output/ABC >
kantra analyze --bulk --input= < path/to/source/C > --output= < path/to/output/ABC >
Transform tiene dos subcomandos:
openrewrite : este subcomando permite ejecutar una o más recetas OpenRewrite disponibles en el código fuente de entrada.
reglas : este subcomando permite convertir reglas XML de Windup al formato YAML de analizador-lsp.
El subcomando openrewrite permite ejecutar recetas OpenRewrite en el código fuente.
Para transformar aplicaciones usando OpenRewrite, ejecute:
kantra transform openrewrite --input= < path/to/source/code > --target= < exactly_one_target_from_the_list >
El valor de la opción --target debe ser una de las recetas de OpenRewrite disponibles. Para enumerar todas las recetas disponibles, ejecute:
kantra transform --list-targets
Todas las banderas:
Flags:
-g, --goal string target goal (default " dryRun " )
-h, --help help for openrewrite
-i, --input string path to application source code directory
-l, --list-targets list all available OpenRewrite recipes
-s, --maven-settings string path to a custom maven settings file to use
-t, --target string target openrewrite recipe to use. Run --list-targets to get a list of packaged recipes.
El subcomando de reglas permite convertir reglas XML de Windup en reglas YAML del analizador-lsp usando windup-shim.
Para convertir reglas XML de Windup al formato YAML de analizador-lsp, ejecute:
kantra transform rules --input= < path/to/xmlrules > --output= < path/to/output/dir >
El indicador --input debe apuntar a un archivo o directorio que contenga reglas XML, --output debe apuntar a un directorio de salida para reglas YAML.
Todas las banderas:
Flags:
-h, --help help for rules
-i, --input stringArray path to XML rule file(s) or directory
-o, --output string path to output directory
El subcomando test permite ejecutar pruebas en reglas YAML escritas para analizador-lsp.
La entrada al ejecutor de pruebas será uno o más archivos y/o directorios de prueba que contengan pruebas escritas en YAML.
kantra test /path/to/a/single/tests/file.test.yaml
El resultado de las pruebas se imprime en la consola.
Vea diferentes formas de ejecutar el comando de prueba en el documento del ejecutor de pruebas
Consulte el Código de conducta de Konveyor aquí.