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.yml
file describing all properties of the swarm.- The
swarm.management.yml
file 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
all
attribute:- -> 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
all
attribute:- -> 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
all
attribute:- -> 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
all
attribute:- -> 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
all
attribute:- -> swm -volume -create all
- -> swm -volume -remove all
- -> swm -volume -create
- SwarmManagement uses the
swarm.management.yml
file by default to configure the swarm.- Specify a single or multiple *.yml files to use for configuring the swarm using the
-f
attribute:- -> 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: false
driver: overlay
attachable: true
options:
<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: local
driverOptions:
<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
File details
Details for the file SwarmManagement-1.1.78-py2.py3-none-any.whl
.
File metadata
- Download URL: SwarmManagement-1.1.78-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.1.1 CPython/3.8.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59fbfb964f63a8007e6b9c131320c02f7c64c703315f6d60b595a92dcf53393e |
|
MD5 | 489f32908b08c2dd2aa8be8e942d6fd0 |
|
BLAKE2b-256 | 5ef9272269ed882e833aa9b9928786694f2c32e9caf5c10292a4c9e6e5600737 |