-
Story
-
Resolution: Done
-
Major
-
AMQ 7.7.0.OPR.2.GA
-
False
-
-
False
-
Compatibility/Configuration
Current configuration made by AMQ Operator does not allow to put nodes under Istio Service Mesh. There is no integration with Istio currently available for AMQ:
https://issues.redhat.com/browse/ENTMQBR-4599
By default AMQ is listening on wrong address that does not match Service Mesh requirements. To reconfigure, a significant change in container is needed:
#!/bin/bash
LISTENER_IP="0.0.0.0"
AMQ_LAUNCHER_PATH="/opt/amq/bin/launch.sh"
JGROUPS_CONF="/opt/amq/conf/jgroups-ping.xml"
LOCAL_NAME=$(hostname -f)
PING_PORT="7800"
- change listening IP in launch script
sed -i "s/ACCEPTOR_IP=.*/ACCEPTOR_IP=\"$LISTENER_IP\"/" $AMQ_LAUNCHER_PATH - add seds to launch script to edit on end IPs and hostnames in broker configuration
sed -i "s/configure \$instanceDir/configure \$instanceDir; sed -i \"s\/$LOCAL_NAME\/$LISTENER_IP\/\" \$instanceDir\/etc\/bootstrap.xml; sed -i \"s\/?protocols=\/?localAddress=$(hostname -i);protocols=\/g\" \$instanceDir\/etc\/broker.xml/" $AMQ_LAUNCHER_PATH - change binding for jgroups
sed -i "s/TCP bind_port=\"$PING_PORT\"\$/TCP bind_port=\"$PING_PORT\" bind_addr=\"127.0.0.1\" external_addr=\"$LOCAL_NAME\"/" $JGROUPS_CONF
$AMQ_LAUNCHER_PATH start
For example, with DataGrid Operator it is a simple configuration:
spec:
container:
extraJvmOpts: '-Djgroups.bind_addr=0.0.0.0 -Dinfinispan.bind.address=0.0.0.0 -Djgroups.external_addr=$HOSTNAME'
Additional thing is adding Istio annotations - it can be done using PatchOperator but for example in DataGrid it is more simple as user can use special annotations:
infinispan.org/targetAnnotations: service-annotation1, service-annotation2
infinispan.org/podTargetAnnotations: pod-annotation1, pod-annotation2
Can we allow similar Istio configuration for AMQ Operator as DataGrid has?
- is related to
-
ENTMQBR-4599 Integration support with RHOSM
-
- Backlog
-