GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - hansehe/SwarmManagement: 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.

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

95 Commits
95 Commits

Folders and files

NameName
Last commit message
Last commit date
SwarmManagement
SwarmManagement
 
 
example
example
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
LICENSE
LICENSE
 
 
MANIFEST.in
MANIFEST.in
 
 
README.md
README.md
 
 
requirements.txt
requirements.txt
 
 
setup.cfg
setup.cfg
 
 
setup.py
setup.py
 
 

Repository files navigation

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:

  • https://github.com/hansehe/SwarmManagement/tree/master/example

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:
    • https://www.docker.com/get-docker
  • Install Dependencies:
    • pip install -r requirements.txt

Additional Info

  • The pip package may be located at:
    • https://pypi.org/project/SwarmManagement

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

About

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.

Topics

containersdeploymentdockerdocker-swarm

Resources

Readme
MIT license
Activity

Stars

22 stars

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.