[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[artemis] Dynamically add cluster connection using JMX/Jolokia?

Hi all,

I'm having some fun trying to figure out the ideal way to deploy an
ActiveMQ Artemis cluster in Kubernetes.

I started by creating a Helm Chart (think of it as a deb/rpm package for
Kubernetes) where I can just install a Symmetric cluster of 8 nodes with
the following commands:

  helm repo add activemq-artemis https://vromero.github.io/
  helm install vromero/activemq-artemis --set replicas=8

It works pretty well but I'm creating static-connectors for the cluster
connection at the install time. Meaning that if later the user wants to
scale up or down his cluster it won't work.

I have been exploring these two ideas to overcome it:

- ActiveMQ Artemis Plugin to enable auto-discover by connecting to the
Artemis to the Kubernetes api
- To have an external minimal agent written in Go (given that it has the
best client library for k8s and it has a very small binary / memory
footprint) that connects to k8s and let know Artemis from the outside which
other nodes are available for the cluster.

After a quick look at the first option, the one of the plugin, I decided to
keep it as plan B given that a hypothetically big cluster might end up
pounding too hard the Kubernetes API and especially given that the
Kubernetes client would bring a not too big but neither too small number of
transitive dependencies to Artemis.

So off I went with the external agent to now realize that at least at a
quick glance at the JMX/Jolokia API I see no method to add new
cluster-connections. So my question would be:

Is there any way to add externally cluster-connections to Artemis?

I'm hoping that this belongs to the dev list as it is kind-of advanced if
it actually belongs to user I apologise