|
17 | 17 |
|
18 | 18 | ## What is eoAPI? |
19 | 19 |
|
20 | | -[https://eoapi.dev/](https://eoapi.dev/) |
| 20 | +[eoAPI](https://eoapi.dev/) is a collection of REST APIs for Earth Observation data access and analysis. This repository provides a production-ready Kubernetes deployment solution with flexible database options, unified ingress configuration, and built-in monitoring. |
21 | 21 |
|
22 | | -## Getting Started |
| 22 | +## Quick Start |
23 | 23 |
|
24 | | -Make sure you have [helm](https://helm.sh/docs/intro/install/) installed on your machine. |
25 | | -Additionally, you will need a cluster to deploy the eoAPI helm chart. This can be on a cloud provider, like AWS, GCP, or any other that supports Kubernetes. You can also run a local cluster using minikube. |
| 24 | +### Prerequisites |
26 | 25 |
|
27 | | -### Local |
| 26 | +- [helm](https://helm.sh/docs/intro/install/) |
| 27 | +- A Kubernetes cluster (local or cloud-based) |
| 28 | +- `kubectl` configured for your cluster |
28 | 29 |
|
29 | | -For a local installation you can use a preinstalled [Minikube](https://minikube.sigs.k8s.io/), and simply execute the following command: |
| 30 | +### Option 1: One-Command Installation |
30 | 31 |
|
| 32 | +The fastest way to get started is using our Makefile commands: |
| 33 | + |
| 34 | +For local development with Minikube: |
31 | 35 | ```bash |
32 | | -$ make minikube |
| 36 | +make minikube |
33 | 37 | ``` |
34 | 38 |
|
35 | | -Once the deployment is done, the url to access eoAPI will be printed to your terminal. |
| 39 | +For cloud deployment: |
| 40 | +```bash |
| 41 | +make deploy |
| 42 | +``` |
36 | 43 |
|
37 | | -### Cloud |
| 44 | +This will automatically: |
| 45 | +1. Install the PostgreSQL operator |
| 46 | +2. Add the eoAPI helm repository |
| 47 | +3. Install the eoAPI helm chart |
| 48 | +4. Set up necessary namespaces and configurations |
38 | 49 |
|
39 | | -If you don't have a k8s cluster set up on AWS or GCP then follow an IaC guide below that is relevant to you |
| 50 | +### Option 2: Step-by-Step Installation |
40 | 51 |
|
41 | | -> ⓘ The helm chart in this repo assumes your cluster has a few third-party add-ons and controllers installed. So |
42 | | -> it's in your best interest to read through the IaC guides to understand what those defaults are |
| 52 | +If you prefer more control over the installation process: |
43 | 53 |
|
44 | | -* [AWS EKS Cluster Setup](./docs/aws-eks.md) |
45 | | -* [GCP GKE Cluster Setup](./docs/gcp-gke.md) |
| 54 | +1. Install the PostgreSQL operator: |
| 55 | +```bash |
| 56 | +helm upgrade --install \ |
| 57 | + --set disable_check_for_upgrades=true pgo \ |
| 58 | + oci://registry.developers.crunchydata.com/crunchydata/pgo \ |
| 59 | + --version 5.7.4 |
| 60 | +``` |
| 61 | + |
| 62 | +2. Add the eoAPI helm repository: |
| 63 | +```bash |
| 64 | +helm repo add eoapi https://devseed.com/eoapi-k8s/ |
| 65 | +``` |
| 66 | + |
| 67 | +3. Get your current git SHA: |
| 68 | +```bash |
| 69 | +export GITSHA=$(git rev-parse HEAD | cut -c1-10) |
| 70 | +``` |
| 71 | + |
| 72 | +4. Install eoAPI: |
| 73 | +```bash |
| 74 | +helm upgrade --install \ |
| 75 | + --namespace eoapi \ |
| 76 | + --create-namespace \ |
| 77 | + --set gitSha=$GITSHA \ |
| 78 | + eoapi devseed/eoapi |
| 79 | +``` |
| 80 | + |
| 81 | +### Post-Installation |
46 | 82 |
|
47 | | -Make sure you have your `kubectl` configured to point to the cluster you want to deploy eoAPI to. Then simply execute the following command: |
| 83 | +1. Enable ingress (for Minikube): |
| 84 | +```bash |
| 85 | +minikube addons enable ingress |
| 86 | +``` |
48 | 87 |
|
| 88 | +2. Optional: Load sample data: |
49 | 89 | ```bash |
50 | | -$ make deploy |
| 90 | +make ingest |
51 | 91 | ``` |
52 | 92 |
|
53 | | -### Manual step-by-step installation |
| 93 | +## Cloud Provider Setup |
| 94 | + |
| 95 | +For cloud-based deployments, refer to our detailed setup guides: |
| 96 | +* [AWS EKS Cluster Setup](./docs/aws-eks.md) |
| 97 | +* [GCP GKE Cluster Setup](./docs/gcp-gke.md) |
| 98 | +* [Azure Setup](./docs/azure.md) |
| 99 | + |
| 100 | +## Documentation |
| 101 | + |
| 102 | +* [Configuration Guide](./docs/configuration.md) |
| 103 | +* [Data Management](./docs/manage-data.md) |
| 104 | +* [Autoscaling and Monitoring](./docs/autoscaling.md) |
| 105 | +* [Health Checks](./docs/health.md) |
| 106 | +* [Unified Ingress Configuration](./docs/unified-ingress.md) |
54 | 107 |
|
55 | | -Instead of using the `make` commands above you can also [manually `helm install` eoAPI](./docs/helm-install.md). |
| 108 | +## Contributing |
56 | 109 |
|
| 110 | +We welcome contributions! See our [contributing guide](./CONTRIBUTING.md) for details. |
57 | 111 |
|
58 | | -## More information |
| 112 | +## License |
59 | 113 |
|
60 | | -* Read about [Default Configuration](./docs/configuration.md#default-configuration) and |
61 | | -other [Configuration Options](./docs/configuration.md#additional-options) |
62 | | -* [Manage your data](./docs/manage-data.md) in eoAPI |
63 | | -* Learn about [Autoscaling / Monitoring / Observability](./docs/autoscaling.md) |
| 114 | +This project is licensed under the [MIT License](./LICENSE). |
0 commit comments