Чтобы минимизировать время установки присоединения сеанса отладки к удаленному модулю (микросервис, развернутый в OpenShift) с помощью intelliJ,
Я пытаюсь извлечь максимальную пользу из настройки «Перед запуском» конфигурации удаленной отладки.
Я использую 2 шага перед подключением отладчика к сокету JVM со следующими аргументами командной строки (эта настройка работает, но требует редактирования при каждом новом развертывании);
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
шаг 1:
внешние инструменты: oc с аргументами:
login
https://url.of.openshift.environment
--username=<login>
--password=<password>
шаг 2:
внешние инструменты: oc с аргументами:
port-forward
microservice-name-65-6bhz8 -> this needs to be changed after every deploy
8000
3000
3001
справочная информация:
это информация в сервисе его YAML под spec> Containers> env:
- name: JAVA_TOOL_OPTIONS
value: >-
-agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=3000
-Dcom.sun.management.jmxremote.rmi.port=3001
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Поскольку имя модуля изменяется при каждом (повторном) развертывании Я пытаюсь найти команду oc, которую можно использовать для перенаправления портов без указания имени модуля . (Например, на основании названия сервиса)
Или совершенно другое решение, которое позволяет мне нажать 1 кнопку для настройки сеанса отладки (предпочтительно в intelliJ).
> Настройки экрана IntelliJ
----------------------------- редактировать после подсказок --------------- ----------------
Пока что я сделал небольшой пакетный скрипт, который делает свое дело:
Не стесняйтесь помочь с еще более быстрым решением
(Проверяю https://openshiftdo.org/)
или другие решения IntelliJent
set /p _username=Type your username:
set /p _password=Type your password:
oc login replace-with-openshift-console-url --username=%_username% --password=%_password%
oc project replace-with-project-name
oc get pods --selector app=replace-with-app-name -o jsonpath={.items[?(@.status.phase=='Running')].metadata.name} > temp.txt
set /p PODNAME= <temp.txt
del temp.txt
oc port-forward %PODNAME% 8000 3000 3001