Rootless Podman for Ubuntu

This section walks you through the steps to set up a single PubSub+ software event broker container with Podman in a non-cloud Ubuntu environment.

For information about working with rootless containers, see Rootless Containers.

Before You Begin

It's assumed that you have a stable version of Ubuntu with Podman installed.

System Requirements

The number of CPUs and system memory allocations that your event broker requires depends on the number of client connections that you need to support. By default, fresh installations of the event broker allow up to 100 client connections.

To achieve desired stability and performance, the infrastructure that hosts the Pubsub+ software event broker must provide a minimum set of system resources. System resources broadly include requirements that are related to processors, memory, and storage. For details about the types of system resources that are required and their characteristics, see System Resource Requirements.

You can increase certain system limits by using System Scaling Parameters. Increasing these system limits also increases the system resources that are required. For more information, see Using System Scaling Parameters.

Information about configuring storage is at Managing Storage for Container Images.

The example on this page is suitable for use for up to 1,000 connections, and is appropriately configured for testing and PoC activities. If you plan to use your event broker in a production environment, or scale your system above 1,000 connections, make sure to consult the sections above and provision your system appropriately.

Step 1: Get a PubSub+ Software Event Broker

Rootless Podman is supported for PubSub+ software event broker 10.9. Please select a version that is 10.1 or higher.

To pull an event broker image from the Docker repository, run this command:

podman pull docker.io/solace/solace-pubsub-standard:edge

This example assumes that you are using Solace PubSub+ Standard. If you want to use another edition, you need to obtain the appropriate event broker package:

  1. Go to the Solace PubSub+ Event Broker downloads page.
  2. Scroll to the Docker section, and then select the edition of the software event broker.
  3. Fill in your details, and then click Get The Downloads.

A compressed archive file called solace-pubsub-<edition>-<version>-docker.tar.gz will be downloaded.

After you've obtained the package, load the image to the local Podman registry by running the following command:

$ podman load -i solace-pubsub-<edition>-<version>-docker.tar.gz

Step 2: Create the Container

There are a few setups that you can implement with the podman create or podman run commands (both of which pull from the Docker Hub) to build an event broker container. The following example illustrates a simple configuration that is suitable for a test deployment.

This example:

  • runs an event broker solace using the latest PubSub+ Standard image from Docker Hub
  • creates an admin user with global access permissions
  • publishes the following event broker container ports to the same ports on the Ubuntu host:
    • port 8080—enables SEMP management traffic to the container. Use this port when connecting to the container from Broker Manager (refer to PubSub+ Broker Manager for more information).

    • port 55555—enables SMF data to pass through the container.

    To use additional services, you must publish each corresponding port. For example, to pass AMQP encrypted traffic, you need to publish port 5671. For more information about the default ports that are used for each service, refer to Default Configuration for Software Event Brokers.

In this example, the storage-group (mapped to /var/lib/solace in the container) is bind-mounted to /home/<user-name>/storage-group on the host.

The storage-group requires at least 5.1 GB of storage space. See System Resource Requirements and Managing Storage for Container Images for more information.

You must create a directory called storage-group in the user's home directory for the bind mount, and then run chown with podman unshare to give the container user access to the directory. To do this, run the following commands:

mkdir /home/<user-name>/storage-group
podman unshare chown 1000:0 -R /home/<user-name>/storage-group

To run the container, run the following command:

podman run -d -u 1000 -p 8080:8080 -p 55555:55555 --shm-size=1g \
--env username_admin_globalaccesslevel=admin \
--env username_admin_password=admin --name=solace \
--net slirp4netns:port_handler=slirp4netns \
--mount type=bind,source=/home/<user-name>/storage-group,destination=/var/lib/solace,relabel=private,ro=false \
docker.io/solace/solace-pubsub-standard:edge
  • This example assumes that you are starting the container with UID 1000.
  • If you loaded the image from a compressed tar archive, replace docker.io/solace/solace-pubsub-standard in the example with the repository and tag that corresponds to your image. For example, if you loaded version 10.1.0.19 of the PubSub+ Enterprise edition, use solace-pubsub-enterprise:10.1.0.19.

After the container is created, create a systemd unit file to manage container starts, stops, and restarts:

podman generate systemd --restart-policy=always -t 1200 solace > ~/.config/systemd/user/solace.service
systemctl --user enable solace.service
loginctl enable-linger <username>
systemctl --user start solace.service

For more information, see Podman Documentation.

Step 3: Manage the PubSub+ Software Event Broker

To start issuing configuration or monitoring commands on the event broker, you can access Broker Manager or the Solace CLI

To access PubSub+ Broker Manager:

  1. Open a browser and enter http://localhost:8080.
  2. Log in as user admin with password admin.

To access the Solace CLI:

  1. Enter the following podman exec command:

    >sudo podman exec -it solace /usr/sw/loads/currentload/bin/cli -A
  2. Type the following commands to enter configuration mode:

    solace> enable
    solace# config solace(configure)#

    For a list of Solace CLI commands currently supported on the event broker, refer to Software Event Broker CLI Commands.

Next Steps

You now have a software event broker container with a basic configuration that is ready for messaging tasks.

There are additional configuration tasks that you can make use of in the following topics:

When you are comfortable with your event broker, you can test messaging using the Solace SDKPerf application. You can download SDKPerf from the Other Software section in the Downloads page.

For more information about working with your event brokers, see the following: