Skip to main content

Buddy, your Cloudformation/ECS valet

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buddy-0.0.3.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

buddy-0.0.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file buddy-0.0.3.tar.gz.

File metadata

  • Download URL: buddy-0.0.3.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for buddy-0.0.3.tar.gz
Algorithm Hash digest
SHA256 dfa00c65ad52e613de4f6576b6c52950babf79ca886facd8faca9834a55ccc9a
MD5 95120986d558b8b64874266151d35a01
BLAKE2b-256 23ba35097668cf83035d35a5a0c3d51e3c4db4fc62372b6d734e59d6261382d9

See more details on using hashes here.

File details

Details for the file buddy-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for buddy-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3d618016e3b6b4d8c180f1543f8466c6a1491c1b4502958cc185ebed9fe28b5d
MD5 27c2d075476b99d03715bad5edc3f94e
BLAKE2b-256 fd06d23e8c864fdead39c8c0a7e71c92c340b55fe0b3623a6c5d94ce942099ce

See more details on using hashes here.

Supported by

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