nynaalekhya / FLINT.Cloud

The project aims to build a continuous deployment pipeline to offer FLINT as a SaaS over cloud. The project also aims to simplify the process of installation by supporting a single command or step installation process.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FLINT.Cloud

All Contributors

The project aims to build a continuous deployment pipeline to offer FLINT as a SaaS over cloud. The project also aims to simplify the process of installation by supporting a single command or step installation process.

Layered Architecture Setup on Google Cloud

Deploying

  1. Create a service account with project owner permissions in your project. This is used by Terraform to provision all the necessary resources.
  2. Copy main.tf from the layered directory of this repository to your Cloud Console machine.
  3. In main.tf, change the project variable to your project ID. Change any other variables if necessary.
  4. Download the key for the service account created in step 1 (in JSON format) to your project's Cloud Console machine. Rename it as service_account.json.
  5. Run terraform apply. After this command finishes, it should output the URL to FLINT Cloud (ingress).

Disabling

  1. In the same directory as where main.tf is present, run terraform destroy. In case this fails, simply run it again.

Flask.example REST API Setup

In order to run the REST API, please follow the following steps: -

  1. docker build -t FLINT-api .
  2. docker run --rm -p 8080:8080 FLINT-api

Currently the REST API has the following endpoints available for access:-

  • \help\all: This endpoint produces a help message with information on all options for moja.CLI.
  • \help\arg: This endpoint produces a help message with information on option arg for moja.CLI.
  • \version: This endpoint outputs the version number of moja.CLI.
  • \point: This endpoint runs point example and outputs point_example.csv as an attachment to be downloaded. Parameters (multipart-form data) file for point_example can be passed to override the default configurations.
  • \rothc: This endpoint runs rothc example and outputs point_rothc_example.csv as an attachment to be downloaded. Parameters (multipart-form data) file for rothc_example can be passed to override the default configurations.

This REST API is built using the flask-restful package and has been containerized using Docker.

Flask-GCBM REST API Setup

In order to run the REST API, please follow the following steps: -

  1. docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .
  2. docker run -v /home/kalilinux/Documents/GCBM:/gcbm_files --rm -p 8080:8080 gcbm-api

In the point 2 as you can see we have mounted the GCBM folder as gcbm_files onto our container. The zipped GCBM folder is available in the root of this repository for setup and use.

Currently the REST API has the following endpoints available for access:-

  • \help\all: This endpoint produces a help message with information on all options for moja.CLI.
  • \help\arg: This endpoint produces a help message with information on option arg for moja.CLI.
  • \version: This endpoint outputs the version number of moja.CLI.
  • \gcbm: This endpoint runs flint-gcbm and outputs some files in the output directory along with the output db. Parameters (multipart-form data) file for gcbm_config and input_db for input sqlite db can be passed to override the default configurations.

This REST API is built using the flask-restful package and has been containerized using Docker.

How to Get Involved?

This project will be open for applications from Jan 30 to Feb 12, 2021 - please see the LFX Mentorship Program proposal to apply.

Feel free to join our Slack community and get to know everyone, or get help with your application.

If you would like to volunteer as a mentor, or for any other questions, please contact andrew@moja.global. We'd love to have you involved.

FAQ and Other Questions

Contributors

Thanks goes to these wonderful people (emoji key):

moja global
moja global

📆

This project follows the all-contributors specification. Contributions of any kind welcome!

Maintainers Reviewers Ambassadors Coaches

The following people are Maintainers Reviewers Ambassadors or Coaches

moja global
moja global

📆

Maintainers review and accept proposed changes
Reviewers check proposed changes before they go to the Maintainers
Ambassadors are available to provide training related to this repository
Coaches are available to provide information to new contributors to this repository

About

The project aims to build a continuous deployment pipeline to offer FLINT as a SaaS over cloud. The project also aims to simplify the process of installation by supporting a single command or step installation process.

License:Mozilla Public License 2.0


Languages

Language:Python 89.4%Language:HCL 7.0%Language:Dockerfile 3.6%