Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bluehalo/yadda
Yet Another Docker Deployment Application
https://github.com/bluehalo/yadda
aws-dynamodb aws-ecs aws-lambda cli docker dockerfile nodejs-library
Last synced: about 1 month ago
JSON representation
Yet Another Docker Deployment Application
- Host: GitHub
- URL: https://github.com/bluehalo/yadda
- Owner: bluehalo
- License: mit
- Created: 2016-12-02T21:55:22.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-01-18T19:56:15.000Z (almost 6 years ago)
- Last Synced: 2024-11-17T10:31:59.474Z (about 1 month ago)
- Topics: aws-dynamodb, aws-ecs, aws-lambda, cli, docker, dockerfile, nodejs-library
- Language: JavaScript
- Size: 83 KB
- Stars: 4
- Watchers: 18
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
yadda
=====
(Yet Another Docker Deployment Application)`yadda` is a command line tool for managing deploying a collection of
microservices to AWS EC2 Container Service using a declarative syntax. Create a
Manifest file (and associated environment files) declaring your services and
jobs (one-time or periodic task), and `yadda` will handle building the required
docker images, pushing them to your AWS Elastic Container Registry, creating
the associated services and task definitions in ECS, and running periodic tasks
on a schedule.**Warning: Use of yadda will result in creating resources in AWS for which you
bear the cost.**Getting Started
================Install
--------`yadda` is installable via npm under the `asymmetrik` namespace.
$ npm install -g @asymmetrik/yadda
Deployment Center
-----------------To operate, `yadda` first must install a deployment center that handles the
deployment history of your application (enabling the `rollback` feature) and
is responsible for running the jobs defined in your Manifest files.To create the deployment center, run the following after installing `yadda`
$ yadda create-deployment-center --region
replacing `` with the region you want the deployment center
installed in and `` with the name you want to give this
deployment center.A single deployment center can be used to manage deployments across multiple
AWS Regions (including managing deployments on ECS clusters outside of the
region where the Deployment Center is installed).Additionally, a single deployment center can handle managing multiple different
applications.Manifest Files
--------------`yadda` needs certain information to manage the deployments. This information is
stored in a Manifest file for a given App and specific environment files for
each deployment environment.`yadda` expects these files to be within the root directory of your App,
inside a folder named `deployment`. An example folder structure is provided
below.MyApp
|- deployment
|- Manifest.js
|- env
|- production.js
|- staging.js
|- dev.jsTo create a skeleton for the required files, run
$ yadda init
which will create the deployment folder and skeleton files in the current
working directory.You can find an full example under the `example` directory in this
repo. The example files will show the required information for configuring your
application.The schema for the Manifest files can be found under `/config/manifest.js`.
Deploying your application
--------------------------After creating your Deployment Center and Manifest, you can deploy the
application via$ yadda deploy
replacing `` with the name of the environment you want to deploy to
(for example, `yadda deploy staging` to deploy to the environment defined in
`deployment/env/staging.js`).Secret Management
--------------------------After your Deployment Center is created you can optionally create a secret center
which your containers can leverage for encrypted secrets. See
[Yadda-Secret](https://github.com/asymmetrik/yadda-secret) for the server package.To create the Secret Center you can run
$ yadda create-secret-center
The command will create a secret center in the same region as your environments
deployment center. You can then access the secrets with$ yadda secret [value]