Installing Artemis Cloud Operator and Creating the Broker

To implement an Artemis Cloud broker solution, first install the operator, then create the broker.

Installing the Operator

The Artemis Cloud deployment is controlled by an operator. For installation instructions, see the discussion about getting started in the Artemis Cloud documentation at the Artemis Cloud website.

The instructions require you to clone the activemq-artemis-operator Git repository, and then run the cluster_wide_install_opr.sh script in the deploy directory. Other prerequisites are installation of the kubectl utility and a configured connection to your Kubernetes cluster.

Creating the Broker

The Artemis broker can be deployed once the operator is deployed. The operator creates the broker from a broker custom resource (CR) created in any of the monitored namespaces. By default the operator monitors all namespaces. Broker configuration depends on your requirements. For information about the full set of configuration options, see the Artemis Cloud documentation. The following broker CR creates a version 2.33.0 Artemis broker configured for the openwire and amqp protocols and also exposes the admin console with default security. It runs three pods that form the nodes of the cluster.

apiVersion: broker.amq.io/v1beta1
kind: ActiveMQArtemis
metadata:
  name: artemis-broker
spec:
  acceptors:
    - name: amqp
      protocols: "AMQP"
      port: 5672
    - name: openwire
      protocols: "OPENWIRE"
      port: 61616
  addressSettings:
    addressSetting:
      - autoCreateAddresses: true
      - autoCreateQueues: true
      - enableMetrics: true
  console:
    expose: true
    name: matrixx
    useClientAuth: false
    exposeMode: ingress
    ingressHost: mymachine.mshome.net  # set this to your machine name
  deploymentPlan:
    size: 3
    requireLogin: false
    messageMigration: true
  version: 2.33.0

Create this CR in the namespace where you want the broker to be deployed using the kubectl apply command.

Note: Openshift deployments can make use of router expose mode instead of the ingress value.