Skip to main content

Argus

Project description

Argus

Description

Argus is a test tracking system intended to provide observability into automated test pipelines which use long-running resources. It allows observation of a test status, its events and its allocated resources. It also allows easy comparison between particular runs of a specific test.

Installation notes

Prerequisites

  • Python >=3.10.0 (system-wide or pyenv)

  • NodeJS >=16 (with npm)

  • Yarn (can be installed globally with npm -g install yarn)

  • nginx

  • pyenv

  • pyenv-virtualenv

From source

Production

Perform the following steps:

Create a user that will be used by uwsgi:

useradd -m -s /bin/bash argus
sudo -iu argus

Install pyenv and create a virtualenv for this user:

pyenv install 3.10.0
pyenv virtualenv argus
pyenv activate argus

Clone the project into a directory somewhere where user has full write permissions

git clone https://github.com/bentsi/argus ~/app
cd ~/app

Install project dependencies:

pip install -r requirements_web.txt
pip install -e .
yarn install

Compile frontend files from /frontend into /public/dist

yarn webpack

Create a argus.local.yaml configuration file (used to configure database connection) and a argus_web.yaml (used for webapp secrets) in your application install directory.

cp argus_web.example.yaml argus_web.yaml
cp argus.yaml argus.local.yaml

Open argus.local.yaml and add the database connection information (contact_points, user, password and keyspace name).

Open argus_web.yaml and change the SECRET_KEY value to something secure, like a sha512 digest of random bytes. Fill out GITHUB_* variables with their respective values.

Copy nginx configuration file from docs/configs/argus.nginx.conf to nginx virtual hosts directory:

Ubuntu:

sudo cp docs/configs/argus.nginx.conf /etc/nginx/sites-available/argus
sudo ln -s /etc/nginx/sites-enabled/argus /etc/nginx/sites-available/argus

RHEL/Centos/Alma/Fedora:

sudo cp docs/configs/argus.nginx.conf /etc/nginx/conf.d/argus.conf

Adjust the webhost settings in that file as necessary, particularly listen and server_name directives.

Copy systemd service file from docs/config/argus.service to /etc/systemd/system directory:

sudo cp docs/config/argus.service /etc/systemd/system

Open it and adjust the path to the start_argus.sh script in the ExecStart= directive and the user/group, then reload systemd daemon configuration and enable (and optionally start) the service.

WARNING: start_argus.sh assumes pyenv is installed into ~/.pyenv

sudo systemctl daemon-reload
sudo systemctl enable --now argus.service

Development

Install pyenv and create a virtualenv for argus:

pyenv install 3.10.0
pyenv virtualenv argus
pyenv activate argus

Clone the project into a directory somewhere

git clone https://github.com/bentsi/argus
cd argus

Install project dependencies:

pip install -r requirements_web.txt
pip install -e .
yarn install

Compile frontend files from /frontend into /public/dist. Add --watch to recompile files on change.

yarn webpack --watch

Create a argus.local.yaml configuration file (used to configure database connection) and a argus_web.yaml (used for webapp secrets) in your application install directory.

cp argus_web.example.yaml argus_web.yaml
cp argus.yaml argus.local.yaml

Open argus.local.yaml and add the database connection information (contact_points, user, password and keyspace name).

Open argus_web.yaml and change the SECRET_KEY value to something secure, like a sha512 digest of random bytes. Fill out GITHUB_* variables with their respective values.

Run the application from CLI using:

FLASK_ENV="development" FLASK_APP="argus.backend" FLASK_DEBUG=1 flask run

Omit FLASK_DEBUG if running your own debugger (pdb, pycharm, vscode)

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

argus-alm-0.8.0.tar.gz (46.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argus_alm-0.8.0-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file argus-alm-0.8.0.tar.gz.

File metadata

  • Download URL: argus-alm-0.8.0.tar.gz
  • Upload date:
  • Size: 46.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0b1 CPython/3.10.0 Linux/5.18.5-200.fc36.x86_64

File hashes

Hashes for argus-alm-0.8.0.tar.gz
Algorithm Hash digest
SHA256 49ccf371dcc79c89338e8e8c74dc7c07fdf063dff4a7d13dd3df091e8603a01c
MD5 bff2f22297d6581bd39909472889de88
BLAKE2b-256 4da33f25b094093c62caa6e89fbb2d797e6583443d3030f8dfdb18fd11bc9cd0

See more details on using hashes here.

File details

Details for the file argus_alm-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: argus_alm-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0b1 CPython/3.10.0 Linux/5.18.5-200.fc36.x86_64

File hashes

Hashes for argus_alm-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d86799c4235b63a71188d71bd8a3eaa62dac0736871b96be77a198eead4f0bc3
MD5 ee8fea84596d4ee970e6b7607e35c9b0
BLAKE2b-256 ab5e420c122492a62b6ec3b7f7a579965bcb742af96f1010362c83782cdc6b9b

See more details on using hashes here.

Supported by

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