Kantra เป็น CLI ที่รวบรวมความสามารถในการวิเคราะห์และการเปลี่ยนแปลงของ Konveyor มันสามารถใช้ได้สำหรับ Linux, Mac และ Windows
ข้อกำหนดเบื้องต้น
การติดตั้ง
การตั้งค่า (สำหรับ Mac และ Windows เท่านั้น)
การใช้งาน
วิเคราะห์แอปพลิเคชัน
แปลงแอปพลิเคชันหรือกฎ XML
ทดสอบกฎ YAML
อ้างอิง
จรรยาบรรณ
ต้องใช้ Podman 4+ เพื่อเรียกใช้ kantra ตามค่าเริ่มต้น จะมีการกำหนดค่าให้ใช้ไฟล์ปฏิบัติการ podman ที่มีอยู่ในโฮสต์
แม้ว่า kantra จะได้รับการทดสอบกับ podman เป็นหลัก แต่ก็สามารถใช้ Docker Engine 24+ หรือ Docker Desktop 4+ เป็นทางเลือกแทนได้ หากต้องการใช้นักเทียบท่า ให้ตั้งค่าตัวแปรสภาพแวดล้อม CONTAINER_TOOL
ชี้ไปที่เส้นทางของปฏิบัติการนักเทียบท่า:
ส่งออก CONTAINER_TOOL=/usr/bin/docker
หากต้องการติดตั้ง kantra ให้ดาวน์โหลดไฟล์ปฏิบัติการสำหรับแพลตฟอร์มของคุณและเพิ่มลงในพาธ
หมายเหตุ: สำหรับ Mac คุณอาจได้รับข้อความแสดงข้อผิดพลาด "Apple ไม่สามารถตรวจสอบได้" หากคุณทำเช่นนั้น คุณสามารถเรียกใช้ xattr -d com.apple.quarantine kantra
เพื่อให้ Apple เชื่อถือไบนารี kantra
ได้
ไปที่หน้าเผยแพร่และดาวน์โหลดไฟล์ zip ที่มีไบนารีสำหรับแพลตฟอร์มและสถาปัตยกรรมของคุณ คลายซิปไฟล์เก็บถาวรและเพิ่มไฟล์ปฏิบัติการลงในพาธ
วิธีที่ง่ายที่สุดในการรับไฟล์ปฏิบัติการล่าสุด (หรือเฉพาะ/เก่ากว่า) คือการได้รับจากคอนเทนเนอร์อิมเมจที่เกี่ยวข้อง
ตั้งค่าตัวแปรเชลล์ kantra_version
เป็นเวอร์ชันใดเวอร์ชันหนึ่ง หากคุณต้องการคว้าเวอร์ชันนั้น เช่น kantra_version=v0.4.0
วิ่ง:
${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-ดาวน์โหลด
เมื่อคุณไม่ได้ใช้ Docker สำหรับเดสก์ท็อปบน Mac ของคุณ (ดูด้านบน) คุณจะต้องเริ่มการทำงานของเครื่อง podman ก่อนที่จะรันคำสั่ง podman ใดๆ (ดูการตั้งค่าสำหรับ Mac)
เมื่อเครื่องสตาร์ทแล้ว ให้รัน:
${CONTAINER_TOOL:-podman} cp $(${CONTAINER_TOOL:-podman} สร้าง --name kantra-download quay.io/konveyor/kantra:${kantra_version:-latest}):/usr/local/bin/darwin- กันทรา && ${CONTAINER_TOOL:-podman} rm kantra-ดาวน์โหลด
เมื่อคุณไม่ได้ใช้ Docker for Desktop บน Windows ของคุณ (ดูด้านบน) คุณจะต้องเริ่มเครื่อง podman ก่อนที่จะรันคำสั่ง podman ใด ๆ (ดูการตั้งค่าสำหรับ Windows)
เมื่อเครื่องสตาร์ทแล้ว ให้รัน:
${CONTAINER_TOOL:-podman} cp $(${CONTAINER_TOOL:-podman} สร้าง --name kantra-download quay.io/konveyor/kantra:${kantra_version:-latest}):/usr/local/bin/windows- กันทรา && ${CONTAINER_TOOL:-podman} rm kantra-ดาวน์โหลด
ตรวจสอบให้แน่ใจว่าคุณเพิ่มไฟล์ปฏิบัติการลงใน
PATH
บน Mac และ Windows จะต้องเริ่มต้นเครื่อง podman ก่อนที่จะรันคำสั่งใดๆ เว้นแต่คุณจะใช้ Docker (สำหรับเดสก์ท็อป):
ก่อนที่จะเริ่มเครื่อง podman ให้รัน:
ulimit -n ไม่จำกัด
เริ่มต้นเครื่อง podman ของคุณ:
พ็อดแมน 4 :
Podman 4 กำหนดให้ติดตั้งไดเร็กทอรีโฮสต์ภายใน VM:
เครื่อง podman init <vm_name> -v $HOME:$HOME -v /private/tmp:/private/tmp -v /var/folders/:/var/folders/
พ็อดมาน 5 :
Podman 5 ติดตั้งไดเร็กทอรี $HOME , /private/tmp และ /var/folders ตามค่าเริ่มต้น เพียงแค่เริ่มต้นเครื่อง:
เครื่อง podman เริ่มต้น <vm_name>
หากไดเร็กทอรีอินพุตและ/หรือเอาต์พุตที่คุณตั้งใจจะใช้กับ kantra อยู่นอกแผนผังของไดเร็กทอรี $HOME, /private/tmp และ /var/folders คุณควรเมานต์ไดเร็กทอรีเหล่านั้นเพิ่มเติมจากค่าดีฟอลต์
เพิ่มทรัพยากร podman (ต้องใช้หน่วยความจำ 4G ขั้นต่ำ):
ชุดเครื่อง podman <vm_name> --cpus 4 --memory 4096
เริ่มต้นเครื่อง:
เครื่อง podman เริ่มต้น <vm_name>
กันทรามีคำสั่งย่อย 3 คำสั่ง:
analyse : คำสั่งย่อยนี้อนุญาตให้รันการวิเคราะห์ซอร์สโค้ดบนซอร์สโค้ดอินพุตหรือไบนารี
แปลง : คำสั่งย่อยนี้อนุญาตให้แปลงกฎ XML เป็น YAML หรือรันสูตร OpenRewrite บนซอร์สโค้ด
test : คำสั่งย่อยนี้อนุญาตให้ทดสอบกฎ YAML
คำสั่ง ย่อย analyse อนุญาตให้รันซอร์สโค้ดและการวิเคราะห์ไบนารีโดยใช้ analyzer-lsp
หากต้องการรันการวิเคราะห์ซอร์สโค้ดของแอปพลิเคชัน ให้รัน:
การวิเคราะห์ kantra --input=<path/to/source/code> --output=<path/to/output/dir>
--input ต้องชี้ไปที่ไดเร็กทอรีซอร์สโค้ดหรือไฟล์ไบนารี --output ต้องชี้ไปที่ไดเร็กทอรีเพื่อให้มีผลการวิเคราะห์
ธงทั้งหมด:
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 <rule1> --rules <rule2> ... --skip-static-report do not generate static report -s, --source stringArray source technology to consider for analysis. Use multiple times for additional sources: --source <source1> --source <source2> ... -t, --target stringArray target technology to consider for analysis. Use multiple times for additional targets: --target <target1> --target <target2> ...
จากการออกแบบ kantra รองรับการวิเคราะห์แอปพลิเคชันเดี่ยวต่อการดำเนินการคำสั่ง kantra อย่างไรก็ตาม คุณสามารถใช้ตัวเลือก --bulk
เพื่อดำเนินการคำสั่งวิเคราะห์ kantra หลายคำสั่งด้วยแอปพลิเคชันที่แตกต่างกัน เพื่อรับไดเร็กทอรีเอาต์พุตและรายงานแบบคงที่ที่เติมรายงานการวิเคราะห์แอปพลิเคชันทั้งหมด
ตัวอย่าง:
วิเคราะห์ Kantra --bulk --input=<path/to/source/A> --output=<path/to/output/ABC>kantra วิเคราะห์ --bulk --input=<path/to/source/B> - -output=<path/to/output/ABC>kantra วิเคราะห์ --bulk --input=<path/to/source/C> --output=<path/to/output/ABC>
การแปลงมีคำสั่งย่อยสองคำสั่ง:
openrewrite : คำสั่งย่อยนี้อนุญาตให้รันสูตร OpenRewrite หนึ่งสูตรขึ้นไปบนซอร์สโค้ดอินพุต
กฎ : คำสั่งย่อยนี้อนุญาตให้แปลงกฎ Windup XML เป็นรูปแบบ analyser-lsp YAML
คำสั่งย่อย openrewrite อนุญาตให้รันสูตร OpenRewrite บนซอร์สโค้ด
หากต้องการแปลงแอปพลิเคชันโดยใช้ OpenRewrite ให้รัน:
kantra แปลง openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
ค่าของตัวเลือก --target จะต้องเป็นหนึ่งในสูตร OpenRewrite ที่พร้อมใช้งาน หากต้องการแสดงรายการสูตรอาหารที่มีอยู่ทั้งหมด ให้รัน:
การแปลง kantra --list-targets
ธงทั้งหมด:
ธง: -g, --goal เป้าหมายสตริงเป้าหมาย (ค่าเริ่มต้น "dryRun") -h, --help ความช่วยเหลือสำหรับ openrewrite -i, --input เส้นทางสตริงไปยังไดเร็กทอรีซอร์สโค้ดของแอปพลิเคชัน -l, --list-targets แสดงรายการสูตร OpenRewrite ที่มีอยู่ทั้งหมด -s, --maven-settings พาธสตริงไปยังไฟล์การตั้งค่า maven ที่กำหนดเองที่จะใช้ -t, --target string เป้าหมาย openrewrite สูตรที่จะใช้ เรียกใช้ --list-targets เพื่อดูรายการสูตรอาหารที่บรรจุไว้
คำสั่งย่อย กฎ อนุญาตให้แปลงกฎ Windup XML เป็นกฎของ analyser-lsp YAML โดยใช้ windup-shim
หากต้องการแปลงกฎ Windup XML เป็นรูปแบบ analyser-lsp YAML ให้รัน:
กฎการแปลง kantra --input=<path/to/xmlrules> --output=<path/to/output/dir>
--input flag ควรชี้ไปที่ไฟล์หรือไดเร็กทอรีที่มีกฎ XML --output ควรชี้ไปที่ไดเร็กทอรีเอาต์พุตสำหรับกฎ YAML
ธงทั้งหมด:
ธง: -h, --help ความช่วยเหลือเกี่ยวกับกฎ -i, --input stringArray พาธไปยังไฟล์กฎ XML หรือไดเร็กทอรี -o, --เส้นทางสตริงเอาต์พุตไปยังไดเร็กทอรีเอาต์พุต
คำสั่งย่อย test อนุญาตให้รันการทดสอบกฎ YAML ที่เขียนขึ้นสำหรับ analyzer-lsp
อินพุตสำหรับนักวิ่งทดสอบจะเป็นไฟล์ทดสอบหนึ่งไฟล์ขึ้นไปและ/หรือไดเร็กทอรีที่มีการทดสอบที่เขียนด้วย YAML
การทดสอบกันตร้า /path/to/a/single/tests/file.test.yaml
ผลลัพธ์ของการทดสอบจะถูกพิมพ์บนคอนโซล
ดูวิธีต่างๆ ในการรันคำสั่ง test ในเอกสาร test runner
ตัวอย่างสถานการณ์การใช้งาน
การใช้ตัวเลือกของผู้ให้บริการ
นักวิ่งทดสอบสำหรับกฎ YAML
โปรดดูหลักจรรยาบรรณของ Konveyor ที่นี่