[
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)