Introduction¶
The Solti-Containers collection provides lightweight, ephemeral containerized services for testing and development workflows. Unlike permanent production infrastructure, these containers are designed to be easily deployed, tested, and removed.
Purpose¶
I need to collect data from the solti-monitoring testing. It needs to be lightweight and easy to setup and go away. Containers are much better than VMs for testing. These containers are for my testing on my development workstation. In time I will move all of these to other machines, but only if they show value.
Design Philosophy¶
The collection emerged from a pattern developed collaboratively with Claude AI. Once we had a few containers working, a clear pattern emerged. I used the solti-monitoring Ansible code to jump-start this collection.
Why Not One-Offs?¶
It's trivial to ask an AI to "create me a script to create a Mattermost container." Yet, I hate one-offs - between entropy and the long cycle times for testing, one-off scripts don't scale.
One frustrating aspect of working with AI is the absence of a "box" - it doesn't see constraints, it has no real way to know if what it produces will fit into your existing patterns. And every time you ask, new ways will emerge. For any given flow, it will deviate. Ask it to duplicate the pattern and watch for the variances.
So between us we have created a decent pattern for creating small testing services using podman. These are ephemeral services in nature, but I suspect they move and scale as required.
Key Features¶
- Rootless Podman deployment: All containers run without root privileges
- Systemd integration using Quadlets: Modern, declarative container management
- Cross-platform support: Works on RHEL/CentOS and Debian-based systems
- Consistent management scripts: Standard manage-svc.sh and svc-exec.sh interface
- SELinux support: Proper contexts configured for RHEL systems
- Easy cleanup: Remove services completely when no longer needed
Services Included¶
The collection includes containerized versions of:
- Elasticsearch: Search and analytics engine
- HashiVault: Secrets management
- Mattermost: Team collaboration platform
- Redis: In-memory data store
- Traefik: Modern HTTP reverse proxy
- MinIO: S3-compatible object storage
- Wazuh: Security monitoring (in development)
Target Audience¶
This collection is designed for:
- Developers needing temporary services for integration testing
- QA teams running automated test suites
- CI/CD pipelines requiring ephemeral infrastructure
- Anyone learning containerization and Ansible automation