[ 
https://issues.apache.org/jira/browse/CAMEL-24087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Federico Mariani updated CAMEL-24087:
-------------------------------------
    Description: 
h3. Problem

When developing Camel routes that use infrastructure services like Kafka, 
MongoDB, or Redis, developers start these services locally with {{camel infra 
run kafka}}. To inspect what is happening inside the service (browse topics, 
view documents, check keys), they currently need to manually set up a separate 
UI tool and wire it to the running service.

Also, many services already ship with a built-in web console (e.g., Artemis 
admin console on port 8161, RabbitMQ management UI), but the {{camel infra 
run}} output does not tell the user where to find it.

h3. Solution

The {{camel infra run}} command now automatically starts a companion web UI 
alongside services that support it. The UI URL is included in the JSON output 
so the user knows exactly where to open the browser.

h4. Usage

{code}
$ camel infra run kafka
{
  "brokers" : "localhost:9092",
  "uiUrl" : "http://localhost:9080";,
  ...
}
{code}

The user can now open {{http://localhost:9080}} to browse Kafka topics, 
consumer groups, and messages via Kafka UI — no extra setup needed.

For services with a built-in UI, the URL is always present in the output:

{code}
$ camel infra run artemis
{
  "uiUrl" : "http://localhost:8161";,
  "userName" : "artemis",
  "password" : "artemis",
  ...
}
{code}

The {{camel infra list}} command now shows a *UI* column indicating which 
services have UI support.

h4. Companion UI containers

These are automatically started when the user runs the corresponding service:

||Service||UI Tool||Port||License||
|Kafka|Kafka UI|9080|Apache 2.0|
|MongoDB|Mongo Express|8081|MIT|
|PostgreSQL|pgAdmin|5050|PostgreSQL License|
|OpenSearch|OpenSearch Dashboards|5601|Apache 2.0|
|Redis|Redis Commander|8082|MIT|

All images are pulled from {{mirror.gcr.io}}. Kibana was excluded because its 
license (SSPL) is not compatible with ASF projects.

h4. Built-in UIs

These services already include a web UI in their container image. The {{uiUrl}} 
is now exposed in the JSON output:

Artemis, MinIO, RabbitMQ, Jaeger, Neo4j, Couchbase, IBM MQ, Keycloak, Consul, 
Solr, CouchDB, ArangoDB, HashiCorp Vault, Qdrant, Infinispan.

h4. Test safety

Companion UI containers are only started when running via {{camel infra run}} 
(CLI mode). They are never started during test execution.

  was:
Add UI support to the {{camel infra run}} command. When a service is started 
via {{camel infra run}}, a companion web UI container is automatically started 
alongside it (e.g., Kafka UI for Kafka). For services that already ship a 
built-in UI (Artemis, RabbitMQ, etc.), the UI URL is exposed in the JSON output.

Changes:
* Add {{uiSupported}} field to {{@InfraService}} annotation, propagated to 
{{metadata.json}} catalog
* Add {{isWithUi()}} method to {{ContainerEnvironmentUtil}} gated on 
{{isFixedPort()}} so UI containers never start during tests
* Add UI column to {{camel infra list}} output
* Add {{uiUrl()}} default method to 16 service interfaces with built-in UIs 
(Artemis, MinIO, RabbitMQ, Jaeger, Neo4j, Couchbase, IBM MQ, Keycloak, Consul, 
Solr, CouchDB, ArangoDB, Vault, Qdrant, Infinispan)
* Add companion UI containers for 5 services:
** Kafka -> Kafka UI (Apache 2.0) on port 9080
** MongoDB -> Mongo Express (MIT) on port 8081
** PostgreSQL -> pgAdmin (PostgreSQL License) on port 5050
** OpenSearch -> OpenSearch Dashboards (Apache 2.0) on port 5601
** Redis -> Redis Commander (MIT) on port 8082
* All images use {{mirror.gcr.io}} (no docker.io)
* Excluded Kibana (SSPL - Category X for ASF)


> camel-test-infra - Add --with-ui flag and companion UI containers to camel 
> infra run
> ------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24087
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24087
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-test-infra
>            Reporter: Federico Mariani
>            Assignee: Federico Mariani
>            Priority: Major
>
> h3. Problem
> When developing Camel routes that use infrastructure services like Kafka, 
> MongoDB, or Redis, developers start these services locally with {{camel infra 
> run kafka}}. To inspect what is happening inside the service (browse topics, 
> view documents, check keys), they currently need to manually set up a 
> separate UI tool and wire it to the running service.
> Also, many services already ship with a built-in web console (e.g., Artemis 
> admin console on port 8161, RabbitMQ management UI), but the {{camel infra 
> run}} output does not tell the user where to find it.
> h3. Solution
> The {{camel infra run}} command now automatically starts a companion web UI 
> alongside services that support it. The UI URL is included in the JSON output 
> so the user knows exactly where to open the browser.
> h4. Usage
> {code}
> $ camel infra run kafka
> {
>   "brokers" : "localhost:9092",
>   "uiUrl" : "http://localhost:9080";,
>   ...
> }
> {code}
> The user can now open {{http://localhost:9080}} to browse Kafka topics, 
> consumer groups, and messages via Kafka UI — no extra setup needed.
> For services with a built-in UI, the URL is always present in the output:
> {code}
> $ camel infra run artemis
> {
>   "uiUrl" : "http://localhost:8161";,
>   "userName" : "artemis",
>   "password" : "artemis",
>   ...
> }
> {code}
> The {{camel infra list}} command now shows a *UI* column indicating which 
> services have UI support.
> h4. Companion UI containers
> These are automatically started when the user runs the corresponding service:
> ||Service||UI Tool||Port||License||
> |Kafka|Kafka UI|9080|Apache 2.0|
> |MongoDB|Mongo Express|8081|MIT|
> |PostgreSQL|pgAdmin|5050|PostgreSQL License|
> |OpenSearch|OpenSearch Dashboards|5601|Apache 2.0|
> |Redis|Redis Commander|8082|MIT|
> All images are pulled from {{mirror.gcr.io}}. Kibana was excluded because its 
> license (SSPL) is not compatible with ASF projects.
> h4. Built-in UIs
> These services already include a web UI in their container image. The 
> {{uiUrl}} is now exposed in the JSON output:
> Artemis, MinIO, RabbitMQ, Jaeger, Neo4j, Couchbase, IBM MQ, Keycloak, Consul, 
> Solr, CouchDB, ArangoDB, HashiCorp Vault, Qdrant, Infinispan.
> h4. Test safety
> Companion UI containers are only started when running via {{camel infra run}} 
> (CLI mode). They are never started during test execution.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to