Skip to main content

A library for managing Docker Swarm.

Project description

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

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

SwarmManagement-1.1.81-py2.py3-none-any.whl (12.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file SwarmManagement-1.1.81-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for SwarmManagement-1.1.81-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2c6425bc3eae4884176dccfc67d8fcf029823b3ceb0dd00c49e3ced721a16e0f
MD5 fee376d9a3a73c875b127f5ff3998b75
BLAKE2b-256 6fe7f76946590dee6b4bd7d6ecc815b5589b7408ac4a663314c4483f517ba30e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page