deployfish


Namedeployfish JSON
Version 1.11.15 PyPI version JSON
download
home_pagehttps://github.com/caltechads/deployfish
SummaryAWS ECS related deployment tools
upload_time2024-05-01 19:54:01
maintainerNone
docs_urlNone
authorCaltech IMSS ADS
requires_python>=3.7
licenseNone
keywords aws ecs docker devops
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ```
      _            _              __ _     _
     | |          | |            / _(_)   | |
   __| | ___ _ __ | | ___  _   _| |_ _ ___| |__
  / _` |/ _ \ '_ \| |/ _ \| | | |  _| / __| '_ \
 | (_| |  __/ |_) | | (_) | |_| | | | \__ \ | | |
  \__,_|\___| .__/|_|\___/ \__, |_| |_|___/_| |_|
            | |             __/ |
            |_|            |___/
```

`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](https://www.terraform.io) 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 `deploy` to 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](http://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](https://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/) to install it
without polluting your global python environment.

### Install deployfish

    pip install deployfish

### Install AWS CLI v2

deployfish requries AWS CLI v2 for some of its functionality, notably EXEC'ing into FARGATE containers.  While AWS CLI
v1 was installable via `pip`, AWS CLI v2 is not, so we have to do the install manually.  Here's how to set that up on a
Mac:

    # Uninstall any old versions of the cli
    pip uninstall awscli

    # Deactivate any pyenv environment so we can be in the system-wide Python interpreter
    cd ~

    # Install the new AWS CLI from brew -- it's no longer pip installable
    brew update
    brew install awscli

    # Install the Session Manager plugin
    curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip"
    unzip sessionmanager-bundle.zip
    sudo ./sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin


If later on you have issues with EXEC'ing or with the `aws` command in general, check to ensure you're getting your
global version of `aws` instead of an old one in your current virtual environment:

    aws --version

If the version string shows version < 2:

    pip uninstall awscli

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/caltechads/deployfish",
    "name": "deployfish",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "aws, ecs, docker, devops",
    "author": "Caltech IMSS ADS",
    "author_email": "imss-ads-staff@caltech.edu",
    "download_url": "https://files.pythonhosted.org/packages/36/97/5b7260fe67b98165306cc8f12b101a2d464bd58272067a5d49710a91d562/deployfish-1.11.15.tar.gz",
    "platform": null,
    "description": "```\n      _            _              __ _     _\n     | |          | |            / _(_)   | |\n   __| | ___ _ __ | | ___  _   _| |_ _ ___| |__\n  / _` |/ _ \\ '_ \\| |/ _ \\| | | |  _| / __| '_ \\\n | (_| |  __/ |_) | | (_) | |_| | | | \\__ \\ | | |\n  \\__,_|\\___| .__/|_|\\___/ \\__, |_| |_|___/_| |_|\n            | |             __/ |\n            |_|            |___/\n```\n\n`deployfish` has commands for managing the whole lifecycle of your application:\n\n* Safely and easily create, update, destroy and restart ECS services\n* Safely and easily create, update, run, schedule and unschedule ECS tasks\n* Extensive support for ECS related services like load balancing, application\n  autoscaling and service discovery\n* Easily scale the number of containers in your service, optionally scaling its\n  associated autoscaling group at the same time\n* Manage multiple environments for your service (test, qa, prod, etc.) in\n  multiple AWS accounts.\n* Uses AWS Parameter Store for secrets for your containers\n* View the configuration and status of running ECS services\n* Run a one-off command related to your service\n* Easily exec through your VPC bastion host into your running containers, or\n  ssh into a ECS container machine in your cluster.\n* Setup SSH tunnels to the private AWS resources in VPC that your service\n  uses so that you can connect to them from your work machine.\n\n* Extensible! Add additional functionality through custom deployfish modules.\n* Works great in CodeBuild steps in a CodePipeline based CI/CD system!\n\n\nAdditionally, `deployfish` integrates with\n[terraform](https://www.terraform.io) state files so that you can use the\nvalues of terraform outputs directly in your `deployfish` configurations.\n\nTo use `deployfish`, you\n\n* Install `deployfish`\n* Define your service in `deployfish.yml`\n* Use `deploy` to start managing your service\n\nA simple `deployfish.yml` looks like this:\n\n    services:\n      - name: my-service\n        environment: prod\n        cluster: my-cluster\n        count: 2\n        load_balancer:\n          service_role_arn: arn:aws:iam::123142123547:role/ecsServiceRole\n          load_balancer_name: my-service-elb\n          container_name: my-service\n          container_port: 80\n        family: my-service\n        network_mode: bridge\n        task_role_arn: arn:aws:iam::123142123547:role/myTaskRole\n        containers:\n          - name: my-service\n            image: 123142123547.dkr.ecr.us-west-2.amazonaws.com/my-service:0.0.1\n            cpu: 128\n            memory: 256\n            memoryReservation: 128\n            ports:\n              - \"80\"\n            environment:\n              - ENVIRONMENT=prod\n              - ANOTHER_ENV_VAR=value\n              - THIRD_ENV_VAR=value\n\nSee the `examples/` folder in this repository for example `deployfish.yml`\nfiles.\n\n## Documentation\n\n[deployfish.readthedocs.io](http://deployfish.readthedocs.io/) is the full\nreference for deployfish, including a full `deployfish.yml` reference and\ntutorials.\n\n\n## Installing deployfish\n\ndeployfish is a pure python package.  As such, it can be installed in the\nusual python ways.  For the following instructions, either install it into your\nglobal python install, or use a python [virtual environment](https://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/) to install it\nwithout polluting your global python environment.\n\n### Install deployfish\n\n    pip install deployfish\n\n### Install AWS CLI v2\n\ndeployfish requries AWS CLI v2 for some of its functionality, notably EXEC'ing into FARGATE containers.  While AWS CLI\nv1 was installable via `pip`, AWS CLI v2 is not, so we have to do the install manually.  Here's how to set that up on a\nMac:\n\n    # Uninstall any old versions of the cli\n    pip uninstall awscli\n\n    # Deactivate any pyenv environment so we can be in the system-wide Python interpreter\n    cd ~\n\n    # Install the new AWS CLI from brew -- it's no longer pip installable\n    brew update\n    brew install awscli\n\n    # Install the Session Manager plugin\n    curl \"https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip\" -o \"sessionmanager-bundle.zip\"\n    unzip sessionmanager-bundle.zip\n    sudo ./sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin\n\n\nIf later on you have issues with EXEC'ing or with the `aws` command in general, check to ensure you're getting your\nglobal version of `aws` instead of an old one in your current virtual environment:\n\n    aws --version\n\nIf the version string shows version < 2:\n\n    pip uninstall awscli\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AWS ECS related deployment tools",
    "version": "1.11.15",
    "project_urls": {
        "Documentation": "https://deployfish.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/caltechads/deployfish",
        "Issues": "https://github.com/caltechads/deployfish/issues",
        "Source": "https://github.com/caltechads/deployfish"
    },
    "split_keywords": [
        "aws",
        " ecs",
        " docker",
        " devops"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1a40260e6afc507cbebc833ef245060f8cdb3a62ea03852b6af5dc924267572",
                "md5": "47406239459f7c5440eb3a48ed80f2a6",
                "sha256": "d825c05b967c4c2cebd2e3e34f04462cc19d72eed2963225231df85ef73a4cce"
            },
            "downloads": -1,
            "filename": "deployfish-1.11.15-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "47406239459f7c5440eb3a48ed80f2a6",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.7",
            "size": 189959,
            "upload_time": "2024-05-01T19:53:57",
            "upload_time_iso_8601": "2024-05-01T19:53:57.903612Z",
            "url": "https://files.pythonhosted.org/packages/d1/a4/0260e6afc507cbebc833ef245060f8cdb3a62ea03852b6af5dc924267572/deployfish-1.11.15-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "36975b7260fe67b98165306cc8f12b101a2d464bd58272067a5d49710a91d562",
                "md5": "466518dacba1d945fb33348b16c6b498",
                "sha256": "d922aa14e196b5419655c6ec48b4ed961ae41189dff23d724aa38f6a76ec6e68"
            },
            "downloads": -1,
            "filename": "deployfish-1.11.15.tar.gz",
            "has_sig": false,
            "md5_digest": "466518dacba1d945fb33348b16c6b498",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 143650,
            "upload_time": "2024-05-01T19:54:01",
            "upload_time_iso_8601": "2024-05-01T19:54:01.190651Z",
            "url": "https://files.pythonhosted.org/packages/36/97/5b7260fe67b98165306cc8f12b101a2d464bd58272067a5d49710a91d562/deployfish-1.11.15.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-01 19:54:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "caltechads",
    "github_project": "deployfish",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "tox": true,
    "lcname": "deployfish"
}
        
Elapsed time: 0.26603s