Skip to content
This repository has been archived by the owner on May 3, 2019. It is now read-only.
/ bootloader-web Public archive

Web application for managing and deploying servers

License

Notifications You must be signed in to change notification settings

teran/bootloader-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bootloader

Build Status Layers size Recent build commit Docker Automated build License

Servers inventory & deployment solution

Currently deep-deep alpha state.

Application arhitecture

Configuration

Currently there's the way to configure the agent via environment variables:

  • BOOTLOADER_URL - URL of bootloader-web instance, default is 'http://bootloader:8000/'
  • BROKER_URL - URL of broker for celery, default is 'amqp://guest:guest@rabbitmq:5672//'
  • DB_HOST - Hostname of PostgreSQL database to use for the app, default is 'postgresql'
  • DB_NAME - Database name, default is 'postgres'
  • DB_PASSWORD - Password to access the database, default is None
  • DB_USER - Username to access the database, default is 'postgres'
  • DEFAULT_THEME - Theme name to use
  • GRAVATAR_PROXY - <true|false> - Enable or disable proxying gravatar requests
  • SSL_CERTIFICATE_CONTENTS - contents of SSL certificates to use for HTTPS
  • SSL_ENABLE - <true|false> Enable SSL support
  • SSL_KEY_CONTENTS - contents of SSL private key to use for HTTPS
  • SSL_SET_REDIRECT - <true|false> enables redirect from HTTP to HTTPS

Installation

All the releases and development versions are represented as docker images

The most stable release

docker pull teran/bootloader-web:0.0.1-alpha1
docker pull teran/bootloader-agent:0.0.1-alpha1

The most recent build (dangerous, could be totally unstable)

docker pull teran/bootloader-web:latest
docker pull teran/bootloader-agent:latest

Compatibility and guarantees

Application status

Current project state: Alpha

Pending release number: 0.0.1-alpha2

All releases will be reflected as a git tag.

Build status

Build for bootloader components would mean corresponding docker images. The most recent build is always tagged with latest no matter what version is it, so it's just time-related tag. Each branch have it's own tag, for master git-branch it's master tag in docker hub. Eeach release gonna be tagged accordingly.

The most proper way for development purposes is to use :master docker tag. For testing and/or production - tag describes particular version.

Update procedure between versions is not designed at the moment. But based on how application is developed it should work in proper way without any issues.

API status

The most stable current API version: v1alpha1

The latest dev API version: v1alpha2

Any incompatible changes will be marked as dedicated API version.

API Alpha versions

Their main purpose is to be a trade off between stability and development speed. All of incompatible changes will be reflected in new version. Supported during current version lifecycle only.

API Beta versions

Served for stabilization, i.e. fixes only are accepted. Supported during current application version lifecycle only.

API Stable versions

A kind of LTS for API. Supported during two stable releases.

API versions lifecycle

Normally it should work the following way: v1alpha1 - the first initial version shows what could we need from API. It will become v1alpha2 as only it would have incompatible changes, i.e. new fields/removed fields or changed data types.

In addition the most recent version of Alpha API will be forked to v1beta1 on first alpha-release, and the most recent beta-version to stable on stable application release.

Legacy API versions could stay for some time for some reasons, but they are not going to be supported or verified for compatibility.

Dependencies status

Python versions:

  • 2.7,
  • 3.6 (optional)

Django versions:

  • 1.6 (optional)
  • 1.7 (optional)
  • 1.8 (optional)
  • 1.9 (optional)
  • 1.10 (optional)
  • 1.11

Celery versions:

  • 4.0

PostgreSQL versions:

  • 9.6

RabbitMQ versions:

  • 3.6

This version list means bootloader-web tests against them but here are some "but":

  • optional versions could be skipped if they're support would require too much work

Licences

bootloader is licenced under GPLv2 licence.

However some parts of the software uses third-party code, here's the list of JS libraries used in bootloader-web and their licenses:

Pending releases

Alpha2 release features and requirements

  • Interactive progress bars for deployments in non-finite states
  • One-click redeploy with "repeat" button
  • Make deployment timeouts configurable from profiles
  • Per-step timeouts for deployments
  • Implement delete_file action on agent
  • Errors are come to UI
  • Queue tests
  • Input validation with UI error displaying
  • Handle JS errors without alert()
  • Update any object through WebUI
  • Full REST API namespacing with properly namespaced tests

Alpha3

  • App specific API access-tokens
  • Metrics export(Prometheus format?)
  • Liveness and readiness check handlers
  • Slack and email notifications about deployments
  • Profiles API namespacing

Beta1 release features and requirements

  • All key parts are covered with tests
  • All the pipelines are manually tested

About

Web application for managing and deploying servers

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages