Skip to content

Latest commit

 

History

History
91 lines (63 loc) · 2.78 KB

README.md

File metadata and controls

91 lines (63 loc) · 2.78 KB

jasmin-cloud

The jasmin-cloud project provides a portal for the administration of tenancies in an OpenStack cloud.

It has two sub-components - a REST API written in Python using the Django REST framework and a UI written in React.

The code for both components, along with artifacts for building Docker images and a Helm chart for deploying to Kubernetes are included in this repository.

Using the Helm chart

The Helm chart is stored in an OCI repository, which requires experimental features in Helm 3 to be enabled. See https://helm.sh/docs/topics/registries/ for more information.

To see the available versions, please consult the repository on GitHub packages.

helm chart pull ghcr.io/stackhpc/jasmin-cloud-chart:<version>
helm chart export ghcr.io/stackhpc/jasmin-cloud-chart:<version>
helm upgrade -i jasmin-cloud ./jasmin-cloud -f values.yaml

To see the available options, check the chart's values.yaml.

Setting up a local development environment

First, check out the code:

git clone https://github.com/stackhpc/jasmin-cloud.git
cd jasmin-cloud
# Switch to the required branch

REST API

The API requires a recent version of Python 3, which you must first install.

Then create and activate a new virtual environment and install the API project:

python -m venv ./venv
source ./venv/bin/activate
pip install git+https://github.com/cedadev/django-settings-object.git#egg=settings_object
pip install git+https://github.com/cedadev/jasmin-ldap.git#egg=jasmin_ldap
pip install git+https://github.com/cedadev/rackit.git#egg=rackit
pip install -e ./api

Install the local settings:

cp api/jasmin_cloud_site/settings.py-local api/jasmin_cloud_site/settings.py

Modify the settings to match your cloud, then run the development server:

python api/manage.py runserver

The API will then be available at http://localhost:8000/api.

React UI

Once you have the development version of the API up, you can install a development version of the UI.

To install and run the UI, you will need recent versions of Node and yarn installed.

Install the dependencies using yarn:

yarn --cwd ./ui install --frozen-lockfile

Then start the development server:

yarn --cwd ./ui serve 

This will start the JASMIN Cloud UI at http://localhost:3000. The development server will proxy API requests to http://localhost:8000 so that the UI and API appear at the same address, as they will when deployed in production.