Skip to main content

Docker Swarm Management

PyPI version Build Status MIT license

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

  1. 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>
    
  2. 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Additional info is found by asking SwarmManagement:
      • -> swm -help
      • -> swm -stack -help
      • -> swm -network -help
      • -> swm -config -help
      • -> swm -secret -help
      • -> swm -volume -help

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

Additional Info

Publish New Version.

  1. Configure setup.py with new version.
  2. Install build tools: pip install twine wheel
  3. Build: python setup.py bdist_wheel
  4. Check: twine check dist/*
  5. Publish: twine upload dist/*

Run Unit Tests

  • python -m unittest discover -p Test.py

Release files for swarmmanagement 1.1.82

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

Built distribution (wheel)

Table of built distributions (wheels) for swarmmanagement 1.1.82
File Interpreter ABI Platform
swarmmanagement-1.1.82-py2.py3-none-any.whl Python 2, Python 3 none any Details

Release files / swarmmanagement-1.1.82-py2.py3-none-any.whl

Download URL swarmmanagement-1.1.82-py2.py3-none-any.whl
Size 12.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5161f1b542321ef12a51b16ba9a160dade62154b98fb143c43d6c8386533a8f8
BLAKE2b-256 checksum
How to use checksums
c91cf40b1731c6205e4a8f9795fd8e3584b25917c02bbc614dcf55ecede6320d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.17

Release history Release notifications | RSS feed

This release

1.1.82 This release

1 release file

1.1.81

1 release file

1.1.80

1 release file

1.1.79

1 release file

1.1.78

1 release file

1.1.77

1 release file

1.1.76

1 release file

1.1.75

1 release file

1.1.74

1 release file

1.1.73

1 release file

1.1.72

1 release file

1.1.71

1 release file

1.1.70

1 release file

1.1.69

1 release file

1.1.68

1 release file

1.1.67

1 release file

1.1.63

1 release file

1.1.62

1 release file

1.1.61

1 release file

1.1.60

1 release file

1.1.59

1 release file

1.1.58

1 release file

1.1.57

1 release file

1.1.56

1 release file

1.1.55

1 release file

1.1.54

1 release file

1.1.53

1 release file

1.1.52

1 release file

1.1.51

1 release file

1.1.50

1 release file

1.1.49

1 release file

1.1.48

1 release file

1.1.47

1 release file

1.1.46

1 release file

1.1.45

1 release file

1.1.44

1 release file

1.1.43

1 release file

1.1.42

1 release file

1.1.41

1 release file

1.1.40

1 release file

1.1.39

1 release file

1.1.38

1 release file

1.1.37

1 release file

1.1.36

1 release file

1.1.35

1 release file

1.1.34

1 release file

1.1.33

1 release file

1.1.32

1 release file

1.1.31

1 release file

1.1.30

1 release file

1.1.29

1 release file

1.1.28

1 release file

1.1.27

1 release file

1.1.26

1 release file

1.1.25

1 release file

1.1.24

1 release file

1.1.23

1 release file

1.1.22

1 release file

1.1.21

1 release file

1.1.20

1 release file

1.1.19

1 release file

1.1.18

1 release file

1.1.17

1 release file

1.1.16

1 release file

1.1.15

1 release file

1.1.14

1 release file

1.1.13

1 release file

1.1.12

1 release file

1.1.11

1 release file

1.1.10

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

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