AWS ECS related deployment tools
Project description
_ _ __ _ _
| | | | / _(_) | |
__| | ___ _ __ | | ___ _ _| |_ _ ___| |__
/ _` |/ _ \ '_ \| |/ _ \| | | | _| / __| '_ \
| (_| | __/ |_) | | (_) | |_| | | | \__ \ | | |
\__,_|\___| .__/|_|\___/ \__, |_| |_|___/_| |_|
| | __/ |
|_| |___/
deployfish has commands for managing the whole lifecycle of your application:
-
Safely and easily create, update, destroy and restart ECS services
-
Safely and easily create, update, run, schedule and unschedule ECS tasks
-
Extensive support for ECS related services like load balancing, application autoscaling and service discovery
-
Easily scale the number of containers in your service, optionally scaling its associated autoscaling group at the same time
-
Manage multiple environments for your service (test, qa, prod, etc.) in multiple AWS accounts.
-
Uses AWS Parameter Store for secrets for your containers
-
View the configuration and status of running ECS services
-
Run a one-off command related to your service
-
Easily exec through your VPC bastion host into your running containers, or ssh into a ECS container machine in your cluster.
-
Setup SSH tunnels to the private AWS resources in VPC that your service uses so that you can connect to them from your work machine.
-
Extensible! Add additional functionality through custom deployfish modules.
-
Works great in CodeBuild steps in a CodePipeline based CI/CD system!
Additionally, deployfish integrates with
terraform state files so that you can use the
values of terraform outputs directly in your deployfish configurations.
To use deployfish, you
- Install
deployfish - Define your service in
deployfish.yml - Use
deployto start managing your service
A simple deployfish.yml looks like this:
services:
- name: my-service
environment: prod
cluster: my-cluster
count: 2
load_balancer:
service_role_arn: arn:aws:iam::123142123547:role/ecsServiceRole
load_balancer_name: my-service-elb
container_name: my-service
container_port: 80
family: my-service
network_mode: bridge
task_role_arn: arn:aws:iam::123142123547:role/myTaskRole
containers:
- name: my-service
image: 123142123547.dkr.ecr.us-west-2.amazonaws.com/my-service:0.0.1
cpu: 128
memory: 256
memoryReservation: 128
ports:
- "80"
environment:
- ENVIRONMENT=prod
- ANOTHER_ENV_VAR=value
- THIRD_ENV_VAR=value
See the examples/ folder in this repository for example deployfish.yml
files.
Documentation
deployfish.readthedocs.io is the full
reference for deployfish, including a full deployfish.yml reference and
tutorials.
Installing deployfish
deployfish is a pure python package. As such, it can be installed in the usual python ways. For the following instructions, either install it into your global python install, or use a python virtual environment to install it without polluting your global python environment.
Install via pip
pip install deployfish
Install via setup.py
Download a release from Github, then:
unzip deployfish-deployfish-1.2.7.zip
cd deployfish-deployfish-1.2.7
python setup.py install
Or:
git clone https://github.com/caltechads/deployfish.git
cd deployfish
python setup.py install
Using pyenv to install into a virtual environment (Recommended)
If you use python and frequently need to install additional python modules, pyenv and pyenv-virtualenv are extremely useful. They allow some very useful things:
- Manage your virtualenvs easily on a per-project basis
- Provide support for per-project Python versions.
To install pyenv and pyenv-virtualenv and set up your environment for the
first time
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deployfish-1.2.7.tar.gz.
File metadata
- Download URL: deployfish-1.2.7.tar.gz
- Upload date:
- Size: 116.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc74ba762b0c36720704b53450719d3928215e02636ca1598ac848e12e5795bf
|
|
| MD5 |
93e5d776530b6cdb898f5e8b7b4eb5aa
|
|
| BLAKE2b-256 |
f8b5cb5b20f734546434c3d05ab659b9d1e1a389db0e99a59fcde86eeada5cb8
|
File details
Details for the file deployfish-1.2.7-py2.py3-none-any.whl.
File metadata
- Download URL: deployfish-1.2.7-py2.py3-none-any.whl
- Upload date:
- Size: 161.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb6294180aaff19c6ad609070b62a0cba527eea2fcebddf12f9f1da6245e0be3
|
|
| MD5 |
40cb957899ccd7eb6723bcad1b3b106f
|
|
| BLAKE2b-256 |
5b6dcf650f03395def79622c689ec90a1b8c805eb4bc4cf3261ffa268f57e1da
|