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

claranet/cloud-deploy

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.