A library for managing Docker Swarm.
Project description
Docker Swarm Management
Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single *.yml file describing which stacks to deploy, and which networks, configs or secrets to create.
Install Or Upgrade
- pip install --upgrade SwarmManagement
Verify Installation
swm -help
Example
-
Create a
swarm.management.ymlfile describing all properties of the swarm.- The
swarm.management.ymlfile contains following properties:
stacks: <stack_name>: <compose_file> networks: <network_name>: encrypted: false driver: overlay attachable: true options: - --ipv6 configs: <config_name>: <config_file> secrets: <secret_name>: <secret_file> volumes: <volume_name>: driver: local driverOptions: - type=tmpfs - device=tmpfs - o=size=100m,uid=1000 env_files: - <environment_file>
- The
-
Manage Swarm:
- Start Swarm with:
- -> swm -start
- Stop Swarm with:
- -> swm -stop
- Restart Swarm with:
- -> swm -restart
- Wait for all services to start in Swarm with:
- -> swm -wait
- Deploy/Update or Remove a single stack:
- -> swm -stack -deploy
<stack_name> - -> swm -stack -remove
<stack_name> - Or deploy/remove all stacks with the
allattribute:- -> swm -stack -deploy all
- -> swm -stack -remove all
- -> swm -stack -deploy
- Create or Remove a single network:
- -> swm -network -create
<network_name> - -> swm -network -remove
<network_name> - Or create/remove all networks with the
allattribute:- -> swm -network -create all
- -> swm -network -remove all
- -> swm -network -create
- Create or Remove a single config:
- -> swm -config -create
<config_name> - -> swm -config -remove
<config_name> - Or create/remove all configs with the
allattribute:- -> swm -stack -create all
- -> swm -stack -remove all
- -> swm -config -create
- Create or Remove a single secret:
- -> swm -secret -create
<secret_name> - -> swm -secret -remove
<secret_name> - Or create/remove all secrets with the
allattribute:- -> swm -secret -create all
- -> swm -secret -remove all
- -> swm -secret -create
- Create or Remove a single volume:
- -> swm -volume -create
<volume_name> - -> swm -volume -remove
<volume_name> - Or create/remove all volumes with the
allattribute:- -> swm -volume -create all
- -> swm -volume -remove all
- -> swm -volume -create
- SwarmManagement uses the
swarm.management.ymlfile by default to configure the swarm.- Specify a single or multiple *.yml files to use for configuring the swarm using the
-fattribute:- -> swm -start -f swarm-stacks.yml -f swarm-networks.yml
- Specify a single or multiple *.yml files to use for configuring the swarm using the
- Additional info is found by asking SwarmManagement:
- -> swm -help
- -> swm -stack -help
- -> swm -network -help
- -> swm -config -help
- -> swm -secret -help
- -> swm -volume -help
- Start Swarm with:
Please have a look at an example of use here:
Section Features
Start/Stop or Restart Swarm
Deploy the swarm with swm -start, and stop the swarm with swm -stop.
Restart the swarm with swm -restart <restart_delay_in_seconds>. The <restart_delay_in_seconds> argument is optional, and defaults to 10 seconds if not given.
Wait for all services in the swarm to start with swm -wait <timeout_in_seconds> <service_to_target>. The <timeout_in_seconds> argument is optional, and defaults to 120 seconds if not given. The <service_to_target> argument is optional, and is a list of specific service names to target.
Stacks
The stacks section lists all stacks to be deployed as: <stack_name>: <compose_file>
Networks
The networks section lists all networks to be created as, and each network is created with the following default properties:
encrypted: falsedriver: overlayattachable: trueoptions:<list_of_network_options>
Configs
The configs section lists all configs to be created as: <config_name>: <config_file>
Secrets
The secrets section lists all secrets to be created as: <secret_name>: <secret_file>
Volumes
The volumes section lists all volumes to be created as, and each volumes is created with the following default properties:
driver: localdriverOptions:<list_of_driver_options>
Environment variables
The env_files section lists all environmnet (.env) files with environment variables to expose.
By convention, a present .env file will automatically be loaded.
Prerequisites
- Docker:
- Install Dependencies:
- pip install -r requirements.txt
Additional Info
- The pip package may be located at:
Publish New Version.
- Configure setup.py with new version.
- Install build tools:
pip install twine wheel - Build: python setup.py bdist_wheel
- Check: twine check dist/*
- Publish: twine upload dist/*
Run Unit Tests
- python -m unittest discover -p Test.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file SwarmManagement-1.1.77-py2.py3-none-any.whl.
File metadata
- Download URL: SwarmManagement-1.1.77-py2.py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
517304046a96be584a8ecac0c03c8ab93e29a41e0b2d8db0820528d9dfbab999
|
|
| MD5 |
2b9177f4b5bc9ccc33c2dac6435fe54a
|
|
| BLAKE2b-256 |
0f6fb8fa6def0b6975c35dae8fd1ab02c8c4b2ffb2a3c9ebd3789a2ad8fd468c
|