Skip to main content
Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

Soluble is a tool for setting up, managing, and tearing down ephemeral Salt minions on remote systems u sing a streamlined Python-based approach. It simplifies the deployment of temporary nodes that can execute Salt commands and clean up afterward, making it ideal for transient infrastructure needs.

About

Soluble is designed aims to streamline the deployment of ephemeral nodes with Salt leveraging salt-ssh for setting up and tearing down temporary Salt minions, allowing users to execute Salt commands on these minions before safely removing them. The entire process is managed by a Python script, ensuring ease of use, flexibility, and integration with existing Python-based infrastructure.

What is POP?

This project is built with pop, a Python-based implementation of Plugin Oriented Programming (POP). POP seeks to bring together concepts and wisdom from the history of computing in new ways to solve modern computing problems.

For more information:

Getting Started

Prerequisites

  • Python 3.10+

  • git (if installing from source, or contributing to the project)

  • SaltStack installed on the master node

  • salt-ssh and salt-key commands available

Installation

If wanting to use soluble, you can do so by either installing from PyPI or from source.

Install from PyPI

If package is available via PyPI, include the directions.

pip install soluble

Install from source

# clone repo
git clone git@<your-project-path>/soluble.git
cd soluble

# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Usage

Soluble is designed to simplify the process of setting up ephemeral Salt minions, running commands, and then cleaning up those minions. Here’s a basic usage example:

# Example usage of soluble.py
soluble -R /path/to/roster 'test.ping'

In this example: - The -R flag specifies the path to the roster file for salt-ssh. - The first positional argument (test.ping) is the Salt command to be executed on the ephemeral minions.

Examples

Here are a few more examples of how you can use Soluble:

# Install a package on ephemeral nodes
soluble minion '*' 'pkg.install vim'

# Apply a state file
soluble '*' 'state.apply my_state'

# Ping minions
soluble minion '*' 'test.ping'

Roadmap

Reference the open issues for a list of proposed features (and known issues).

The project roadmap includes: - Expanding support for additional Salt modules and functions. - Enhancing error handling and logging for more robust operation. - Integration with other infrastructure management tools.

Acknowledgements

Metadata

Release files for soluble 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for soluble 1.0.0
File Size Uploaded
soluble-1.0.0.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for soluble 1.0.0
File Interpreter ABI Platform
soluble-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.9 kB

Release files / soluble-1.0.0.tar.gz

Download URL soluble-1.0.0.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9ef27c5829209abba9e48e49a5e91e7b6c95bccaa67b1b0dc4b779b95731bc59
BLAKE2b-256 checksum
How to use checksums
844bb95417e39961a0b7d16d5280108f08767c29f4b495615316ca24e19377be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.0rc1

Release files / soluble-1.0.0-py3-none-any.whl

Download URL soluble-1.0.0-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c14d58b2295abaa0ea4e24e4f43e7117f42f7de4ee4bb0fc91dca6cdbb662ac
BLAKE2b-256 checksum
How to use checksums
fc8665c1e1a594f588afcf2e42d26db095d7151f6b0019d2899fec542a1a314b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.0rc1

Release history Release notifications | RSS feed

3.0.0

2 release files

2.0.0

2 release files

This release

1.0.0 This release

2 release files

0.4.0

2 release files

0.2.0

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page