Skip to main content

Backend API for synchronous operations within Global Water Watch

Project description

Global Water Watch Service

Backend API for synchronous operations within Global Water Watch

Testing

docker-compose up
pytest

Local deployment

Currently, I have 2 ways of deploying locally

Debugging

For debugging, it is best to debug the main.py file in python, and use docker-compose to get the database running: docker-compose up

Get earthengine credentials: make get_secrets

And add the following environment variables (to your launch.json in VSCode) and .env:

{
    "EE_SA": "dagster-workloads@global-water-watch.iam.gserviceaccount.com",
    "EE_PK": "${workspaceFolder}/gcloud_dist/privatekey.json"
}

We can then use psql to create the postgis extension: psql -U testuser -h localhost -d testdb using the testpassword.

Then use (for example) VSCode to debug main.py.

Local kubernetes

To test kubernetes (later for some extra functionality like workflows), you can deploy a local cluster. This is simplified in the Makefile.

make build-docker
make deploy-local

Check out the database: in one terminal:

export PGMASTER=$(kubectl get pods -o jsonpath={.items..metadata.name} -l application=spilo,cluster-name=gwwuser-gww,spilo-role=master -n gww)
kubectl port-forward $PGMASTER 6432:5432 -n gww

in another:

export PGPASSWORD=$(kubectl get secret -n gww gwwuser.gwwuser-gww.credentials.postgresql.acid.zalan.do -o 'jsonpath={.data.password}' | base64 -d)
export PGSSLMODE=require
psql -U gwwuser -h localhost -p 6432 -d gwwdb

Check out the api:

kubectl port-forward -n gww svc/gww-api 8080:80

After you are done:

kind delete clusters waterwatch

Note: This is to test working with other software, for debugging, using VSCode together with docker-compose and FastAPI's --reload option helps developing quickly.

Deploy on kubernetes

This repository contains a helm chart that deploys the API to kubernetes. For example values, check out the values file.

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

gww_service-0.2.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

gww_service-0.2.0-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gww_service-0.2.0.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.6

File hashes

Hashes for gww_service-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a01f537d2c2bd60b7a8e6c68b0ad850e7584e6b8c2a5d58b584689ca8ededec0
MD5 c6ac4d07de5ee2c3f7ebe849aeef43af
BLAKE2b-256 a82bc73c53605d7021118a5c0e4f114cf1ed7ed1fbe7ba471c0e18f5cd79f462

See more details on using hashes here.

File details

Details for the file gww_service-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gww_service-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.6

File hashes

Hashes for gww_service-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28512799d2bab5d935891e8621d38232467b5f73b59ffbe91db298ec5918bb86
MD5 b1857c612a73e69030e4b6a92634b294
BLAKE2b-256 67120698c0703ea826da14ebcb6ac4caf4d545b93a148771ff9a4b87de5a76ee

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