Skip to content
This repository has been archived by the owner on Apr 9, 2021. It is now read-only.

claranet/cloud-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claranet Cloud Deploy

Documentation CLI API Reference Changelog Apache V2 License

Cloud Deploy

Cloud Deploy (Ghost Project) aims to deploy applications in the Cloud, in a secure and reliable way. Current version supports only AWS.

Key features:

  • Developed in Python.
  • Designed for continuous deployment.
  • Create, configure and update AWS EC2 instances.
  • Used to deploy customer application code.
  • Cloud Deploy core is built with a REST API that any REST client can use.
  • A Web User Interface, available for Claranet customers or with Enterprise license (Flask UI is now available).
  • Casper: CLI client.

Requirements

Python:

  • virtualenv
  • pip >= 9.0.1 (in local virtualenv)
  • pip-tools >= 1.9.0 (in local virtualenv)

Packages:

  • MongoDB
  • Redis
  • Supervisor
  • Nginx

Dependencies and tools

  • Cloud Deploy uses Packer to bake VM images
  • Compatible with SaltStack and Ansible to provision requirements in VM images
  • Uses Fabric for SSH connections and live deployment

Development

Installing requirements:

$ pip install -r requirements.txt

Updating dependencies:

$ pip-compile
$ pip install -r requirements.txt

Upgrading dependencies:

$ pip-compile -U
$ pip install -r requirements.txt

Running unit tests with tox (sets up a virtualenv under the hood):

$ tox

Running unit tests directly (dependencies should be provided by the system or an active virtualenv):

$ ./run_tests.py

Deployment

Locally via docker-compose:

$ export AWS_ACCESS_KEY_ID=AKIAI*******
$ export AWS_SECRET_ACCESS_KEY=********************
$ docker-compose build
$ docker-compose up

Configuration:

Accounts:

  • copy accounts.yml.dist as accounts.yml
  • add account with python auth.py <user> <password>. You can also use the -e <email> option to specify an email address that will receive account's creation confirmation.