Skip to main content

RESTful interface for Elastic Build Results.

Project description

ebr-board

Build Status

PyPI - Version PyPI - License PyPI - Python Versions PyPI - Format PyPI - Status PyUp - Updates

RESTful interface for Elastic Build Results.

Usage

To view the API documentation, start the server and go to to <url>/api/docs.

Configuration

ebr-board uses Vault-Anyconfig to read in its configuration, allowing it to access a Hashicorp Vault instance for loading secrets. For more details refer to its documentation.

In order to deploy a simple ebr-board instance, you will need two files: config.yaml and vault.yaml. Leave vault.yaml empty, as we will not use secret loading from Vault-Anyconfig in this instance.

config.yaml should be formatted as follows:

elastic:
  host: <elastic_url>
  port: 9200
  timeout: 20
  use_ssl: true
  verify_certs: true
  ca_certs: /etc/ebr-board/elastic.crt
  index: testspipeline*
  user: <elastic_user>
  pwd: <elastic_password>

Dev Mode

To start in dev mode, run python ebr_board/ebr_board.py

Production Mode

Can be invoked with ebr_board:create_app(config_filename='/etc/ebr-board/config.yaml', vault_config_filename='/etc/ebr-board/vault.yaml', vault_creds_filename='/etc/ebr-board/vault.yaml', load_certs=True, reverse_proxy=True), for example from Gunicorn. You should configure it behind a reverse proxy - for more details see any guide on configuring Flask servers for deployment. A Dockerfile pre-configuring Gunicorn is available in the root of the repository.

AWS Lambda Support

The application can be run in AWS Lambda by using the handler function in the aws_lambda module. In this case it should be installed with the aws_lambda optional dependencies, i.e. pip install ebr-board['aws_lambda']. It expects that the configuration (the main configuration, vault configuration and vault creds) will be stored entirely as strings in the parameter store. The way it processes these parameters can be configured with environmental variables:

  • config_name: defaults to ebr_board_config
  • vault_config_name: defaults to ebr_board_vault_config
  • vault_creds_name: defaults to ebr_board_vault_creds
  • config_format: defaults to yaml

Features

  • Provides abstraction to fetch:
    • a list of builds from a given job
    • tests from a given job
    • aggregations of tests failures
  • AWS Lambda support

Todo:

  • Improve test coverage
  • Fill in coverage of resources
  • Expand aggregation/search functionality

Credits

This package was created with Cookiecutter and the tomtom-international/cookiecutter-python project template.

Changelog

0.2.0 (2019-08-26)

  • Removed support for Python 3.5

0.1.1 (2019-08-23)

  • Added extras_require for aws_lambda

0.1.0 (2019-08-22)

  • Add aws lambda handler
  • Clean up code to contain state better (for lambda compatability)

0.0.1-dev (2019-07-05)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ebr_board-0.2.0.tar.gz (19.0 kB view details)

Uploaded Source

File details

Details for the file ebr_board-0.2.0.tar.gz.

File metadata

  • Download URL: ebr_board-0.2.0.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.9

File hashes

Hashes for ebr_board-0.2.0.tar.gz
Algorithm Hash digest
SHA256 43911c7367bae266723edbaab5540da184a4e659a347ef3d90db56758b8cd1b7
MD5 398297e8e883c4d9341c1f7769c570d4
BLAKE2b-256 0ecdd3baa5b518dab692695ca17a7dcddd67d1dedff87ea0dc646ad574b0e301

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page