Skip to main content

Opinionated tools to manage your AWS infrastructure.

Manage your cloudformation stacks

Cloudformation stacks are described by stack files

  • YAML format

  • Specify which Cloudformation template to use

  • Specify the parameters to use when creating/updating stacks

Examples:

$ bstack list
...

$ cat .aws/production.yaml
name: helloworld
template: service.yaml

$ cat service.yaml
AWSTemplateFormatVersion: 2010-09-09
Description: Handle Service
Resources:
...

$ bstack create .aws/production.yaml
$ bstack events helloworld  # or bstack events .aws/production.yaml
$ bstack resources helloworld
$ bstack update .aws/production.yaml
$ bstack delete helloworld

Manage your services and tasks on ECS

Alpha: in development. Currently only implement deploy action for continuous deployment on ECS.

$ cat .aws/cluster.yaml
targets:
  production:
    cluster: production
    service: service-Service-1234567890JVM
    task: helloworld
    environment: production
tasks:
  helloworld:
    containers:
      - http
      - app
      - celery
environments:
  production:
    SECRET_KEY: s3cr3t
    DATABASE_URL: postgis://user:pass@host/name
    REDIS_URL: redis://host:6379
containers:
  http:
    properties:
      memory: 100
      cpu: 100
      portMappings:
        - containerPort: 80
          hostPort: 0  # 0 = dynamic port
      links: ['app']
      command: ['nginx', '-g', 'daemon off;']
  app:
    properties:
      memory: 200
      cpu: 200
    environment:
      [SECRET_KEY, DATABASE_URL, REDIS_URL]
  celery:
    properties:
      memory: 150
      cpu: 100
      command: ['celery', '-A', 'helloworld', 'worker', '-B', '-l', 'info']
    environment:
      [DATABASE_URL, REDIS_URL]

$ bcluster deploy .aws/cluster.yaml production registry/myapp:latest a1b2c3d4
Definition:
[{'command': ['nginx', '-g', 'daemon off;'],
  'cpu': 100,
  ...
]

Register task
Registered task: arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123
Deploying...
Wait: deployment in progress
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123 - PRIMARY - running: 0
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:122 - ACTIVE - running: 2

Wait: deployment in progress
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123 - PRIMARY - running: 0
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:122 - ACTIVE - running: 2

Wait: deployment in progress
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123 - PRIMARY - running: 2
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:122 - ACTIVE - running: 0

Final state:
...

Success

Development

Running tests

$ git clone git@github.com:pior/buddy.git
...
$ mkvirtualenv buddy -p python3
...
$ pip install -U -r requirements-test.txt
...
$ pip install -e .
...
$ pytest

Release files for buddy 0.0.3

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

Source distribution (sdist)

Source distribution for buddy 0.0.3
File Size Uploaded
buddy-0.0.3.tar.gz 7.4 kB Details

Built distribution (wheel)

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

Total release size: 18.0 kB

Release files / buddy-0.0.3.tar.gz

Download URL buddy-0.0.3.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dfa00c65ad52e613de4f6576b6c52950babf79ca886facd8faca9834a55ccc9a
BLAKE2b-256 checksum
How to use checksums
23ba35097668cf83035d35a5a0c3d51e3c4db4fc62372b6d734e59d6261382d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / buddy-0.0.3-py3-none-any.whl

Download URL buddy-0.0.3-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d618016e3b6b4d8c180f1543f8466c6a1491c1b4502958cc185ebed9fe28b5d
BLAKE2b-256 checksum
How to use checksums
fd06d23e8c864fdead39c8c0a7e71c92c340b55fe0b3623a6c5d94ce942099ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

3 release files

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