Skip to main content

Ringmaster

         _
       _[_]_
       _(_)______.-'`-.
      /, >< ,----'     `-._.-'*
      \\|::|  Welcome to the Circus
        |/\|  We already got enough Clowns,
        ||||  You got any experiance with
        ||||  Being shot from a canon??
     __(_/\_)
    /`-..__.,-'\
   /   __/\__   \
   `._ \    / _.'MJP
      ``|/\|-'

Ringmaster organises a bunch of other tools on your behalf so that you don't have to. The aim is you can create, updated and delete entire stacks crossing cloudformation, EKS, kubectl, helm and random Python/BASH scripts with a single command.

Ringmaster helps you create and share your automation scripts with others, so you can get up and running as quick as possible. There are no agents, hubs, gits or daemons - unless you add them yourself.

There is also no custom DSL or new programming language to learn, although jinja2 is used for templating.

Ringmaster is just files on a disk and calls to other systems made in an order you decide.

How does it work?

You create a directory of scripts to process, like this:

stack/
├── 0010-iam
│     ├── AWSLoadBalancerController.iam_policy.json
│     ├── Certbot.iam_policy.json
│     ├── EksDeploy.iam_policy.json
│     ├── EksExternalSecrets.iam_policy.json
│     ├── ExternalDns.iam_policy.json
│     └── metadata.yaml
├── 0020-efs
│     ├── efs.cloudformation.yaml
│     └── metadata.yaml
├── 0030-vpc
│     ├── metadata.yaml
│     ├── vpc.remote_cloudformation.yaml
│     └── vpc.yaml
...

Then you run ringmaster like this:

ringmaster stack up

Ringmaster will carry out the create action of each script, running each script in alphabetical order by directory and then file

ringmaster stack down

Ringmaster will carry out the delete action of each script, in reverse alphabetical order

The up and down actions are idempotent so you can run them as many times as you like

What's in the scripts? do I have to learn a new language?

No! The scripts use the languages and tools you already know and love, eg:

  • Cloudformation
  • Bash
  • Python
  • Kubernetes deployment descriptors
  • ...etc

Ringmaster uses a databag to give each script the right inputs and collects outputs that may be required later. Combined with a simple built-in variable substitution system, this makes gluing completely different systems together easy, eg:

cloudformation -> ekscl -> more cloudformation -> heml -> kubectl -> ...

To reduce dependency on ringmaster and allow easy debugging and repeatable deployments, substitution results are stored adjacent to their input files, so they can be added to git or use directly by tools such as kubectl.

Reference

  1. Concepts
  2. Setup
  3. Authentication
  4. Handlers
  5. Scripts
  6. Variables
  7. Worked Example

Release files for ringmaster.show 0.4.2

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

Source distribution (sdist)

Source distribution for ringmaster.show 0.4.2
File Size Uploaded
ringmaster.show-0.4.2.tar.gz 29.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ringmaster.show 0.4.2
File Interpreter ABI Platform
ringmaster.show-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size:63.7 kB

Release files / ringmaster.show-0.4.2.tar.gz

Download URL ringmaster.show-0.4.2.tar.gz
Size 29.2 kB
Tags Source
SHA-256 checksum
How to use checksums
69f52e15fafc8581620f52fd216059610cefd6fd29f0184f479058be9b0549d9
BLAKE2b-256 checksum
How to use checksums
6cb085f0883f807b7616cfc4b43e58834662657c2e7040ff4c91cf717d188bcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.5 CPython/3.8.6 Linux/5.4.0-70-generic

Release files / ringmaster.show-0.4.2-py3-none-any.whl

Download URL ringmaster.show-0.4.2-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9c87e8810a9b9f5274522880d22d3294cb7d391e6593d188aba748eb6a4bc7c
BLAKE2b-256 checksum
How to use checksums
f8fc8195a125b83a08d7b9a202d35d9fcb964ca9e1cc4167a3ae24378bda9f52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.5 CPython/3.8.6 Linux/5.4.0-70-generic

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

1 release file

0.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