Kantra adalah CLI yang menyatukan kemampuan analisis dan transformasi Konveyor. Ini tersedia untuk Linux, Mac dan Windows.
Podman 4+ diperlukan untuk menjalankan kantra. Secara default, ini dikonfigurasi untuk menggunakan podman yang dapat dieksekusi yang tersedia di host.
Meskipun kantra terutama diuji dengan podman, Docker Engine 24+ atau Docker Desktop 4+ dapat digunakan sebagai alternatif. Untuk menggunakan buruh pelabuhan, setel variabel lingkungan CONTAINER_TOOL
yang menunjuk ke jalur buruh pelabuhan yang dapat dieksekusi:
export CONTAINER_TOOL=/usr/bin/docker
Untuk menginstal kantra, unduh executable untuk platform Anda dan tambahkan ke jalurnya.
Catatan: Untuk Mac Anda mungkin mendapatkan pesan kesalahan "Apple tidak dapat memverifikasi". Jika ya, Anda dapat menjalankan xattr -d com.apple.quarantine kantra
agar Apple memercayai biner kantra
.
Buka halaman rilis dan unduh file zip yang berisi biner untuk platform dan arsitektur Anda. Buka zip arsip dan tambahkan file yang dapat dieksekusi di dalamnya ke jalur.
Cara termudah untuk mendapatkan executable terbaru (atau yang tertentu/lama) adalah dengan mendapatkannya dari image container masing-masing.
Setel variabel shell kantra_version
ke versi tertentu jika Anda ingin mengambil versi tersebut, misalnya kantra_version=v0.4.0
.
Berlari:
${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
Saat Anda tidak menggunakan Docker untuk Desktop di Mac Anda (lihat di atas), Anda perlu memulai mesin podman sebelum menjalankan perintah podman apa pun (lihat Pengaturan untuk Mac)
Setelah mesin dihidupkan, jalankan:
${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
Saat Anda tidak menggunakan Docker untuk Desktop di Windows (lihat di atas), Anda perlu memulai mesin podman sebelum menjalankan perintah podman apa pun (lihat Pengaturan untuk Windows)
Setelah mesin dihidupkan, jalankan:
${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
Pastikan Anda menambahkan executable ke
PATH
.
Di Mac dan Windows, mesin podman harus dijalankan sebelum menjalankan perintah apa pun, kecuali Anda menggunakan Docker (untuk Desktop):
Sebelum memulai mesin podman Anda, jalankan:
ulimit -n unlimited
Masuk ke mesin podman Anda:
Podman 4 :
Podman 4 memerlukan beberapa direktori host untuk dipasang di dalam VM:
podman machine init < vm_name > -v $HOME : $HOME -v /private/tmp:/private/tmp -v /var/folders/:/var/folders/
Podman 5 :
Podman 5 memasang direktori $HOME , /private/tmp dan /var/folders secara default, cukup init mesin:
podman machine init < vm_name >
Jika direktori input dan/atau output yang ingin Anda gunakan dengan kantra berada di luar direktori $HOME, /private/tmp dan /var/folders, Anda harus memasang direktori tersebut sebagai tambahan pada direktori default.
Tingkatkan sumber daya podman (memerlukan memori 4G minimum):
podman machine set < vm_name > --cpus 4 --memory 4096
Nyalakan mesin:
podman machine init < vm_name >
Kantra memiliki tiga subperintah:
analisa : Subperintah ini memungkinkan menjalankan analisis kode sumber pada kode sumber input atau biner.
transform : Subperintah ini memungkinkan konversi aturan XML ke YAML atau menjalankan resep OpenRewrite pada kode sumber.
test : Subperintah ini mengizinkan pengujian aturan YAML.
subperintah analisa memungkinkan menjalankan kode sumber dan analisis biner menggunakan analisa-lsp
Untuk menjalankan analisis pada kode sumber aplikasi, jalankan:
kantra analyze --input= < path/to/source/code > --output= < path/to/output/dir >
--input harus menunjuk ke direktori kode sumber atau file biner, --output harus menunjuk ke direktori untuk memuat hasil analisis.
Semua bendera:
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 ...
Secara desain, kantra mendukung analisis aplikasi tunggal per eksekusi perintah kantra. Namun, opsi --bulk
dapat digunakan untuk menjalankan beberapa perintah analisis kantra dengan aplikasi berbeda untuk mendapatkan direktori keluaran dan laporan statis yang diisi dengan semua laporan analisis aplikasi.
Contoh:
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 memiliki dua subperintah:
openrewrite : Subperintah ini memungkinkan menjalankan satu atau lebih resep OpenRewrite yang tersedia pada kode sumber input.
aturan : Subperintah ini memungkinkan konversi aturan Windup XML ke dalam format YAML penganalisa-lsp.
subperintah openrewrite memungkinkan menjalankan resep OpenRewrite pada kode sumber.
Untuk mengubah aplikasi menggunakan OpenRewrite, jalankan:
kantra transform openrewrite --input= < path/to/source/code > --target= < exactly_one_target_from_the_list >
Nilai opsi --target harus berupa salah satu resep OpenRewrite yang tersedia. Untuk membuat daftar semua resep yang tersedia, jalankan:
kantra transform --list-targets
Semua bendera:
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.
subperintah aturan memungkinkan konversi aturan Windup XML menjadi aturan YAML penganalisa-lsp menggunakan windup-shim
Untuk mengonversi aturan Windup XML ke format YAML analisa-lsp, jalankan:
kantra transform rules --input= < path/to/xmlrules > --output= < path/to/output/dir >
Tanda --input harus mengarah ke file atau direktori yang berisi aturan XML, --output harus mengarah ke direktori keluaran untuk aturan YAML.
Semua bendera:
Flags:
-h, --help help for rules
-i, --input stringArray path to XML rule file(s) or directory
-o, --output string path to output directory
subperintah test memungkinkan menjalankan pengujian pada aturan YAML yang ditulis untuk analisa-lsp.
Masukan ke test runner akan berupa satu atau lebih file pengujian dan/atau direktori yang berisi pengujian yang ditulis dalam YAML.
kantra test /path/to/a/single/tests/file.test.yaml
Output pengujian dicetak di konsol.
Lihat berbagai cara untuk menjalankan perintah tes di dokumen test runner
Lihat Kode Etik Konveyor di sini.