Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,25 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [v0.7.0] - 2025-04-30

### Added
### Breaking Changes
- New unified ingress configuration requires migration from previous ingress setup [#219](https://github.com/developmentseed/eoapi-k8s/pull/219)
- Refactored PostgreSQL configuration with removal of deprecated database setup [#215](https://github.com/developmentseed/eoapi-k8s/pull/215)
- Major architectural changes with service-specific templates [#220](https://github.com/developmentseed/eoapi-k8s/pull/220)

### Added
- STAC Browser integration [#168](https://github.com/developmentseed/eoapi-k8s/pull/168)
- Azure secret vault integration for pg-stac secrets [#187](https://github.com/developmentseed/eoapi-k8s/pull/187)
- Support for both NGINX and Traefik ingress controllers [#219](https://github.com/developmentseed/eoapi-k8s/pull/219)
- ArtifactHub.io Integration [#216](https://github.com/developmentseed/eoapi-k8s/pull/216)

### Changed

* Refactor pgstacbootstrap job and ConfigMaps to use Helm hooks for execution order [#207](https://github.com/developmentseed/eoapi-k8s/pull/207)
* Simplify PgSTAC Bootstrap Process [#208](https://github.com/developmentseed/eoapi-k8s/pull/208)
* Upgrade stac-fastapi-pgstac to v5.0.2 [#204](https://github.com/developmentseed/eoapi-k8s/pull/204)

### Deprecated

### Removed

- Refactor pgstacbootstrap job and ConfigMaps to use Helm hooks for execution order [#207](https://github.com/developmentseed/eoapi-k8s/pull/207)
- Simplify PgSTAC Bootstrap Process [#208](https://github.com/developmentseed/eoapi-k8s/pull/208)
- Upgrade stac-fastapi-pgstac to v5.0.2 [#204](https://github.com/developmentseed/eoapi-k8s/pull/204)
### Fixed

### Security
- Add ArtifactHub.io Integration (Issue #16) [#216](https://github.com/developmentseed/eoapi-k8s/pull/216)

## [v0.6.0] - 2025-04-03

Expand Down
97 changes: 74 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,47 +17,98 @@

## What is eoAPI?

[https://eoapi.dev/](https://eoapi.dev/)
[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.

## Getting Started
## Quick Start

Make sure you have [helm](https://helm.sh/docs/intro/install/) installed on your machine.
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.
### Prerequisites

### Local
- [helm](https://helm.sh/docs/intro/install/)
- A Kubernetes cluster (local or cloud-based)
- `kubectl` configured for your cluster

For a local installation you can use a preinstalled [Minikube](https://minikube.sigs.k8s.io/), and simply execute the following command:
### Option 1: One-Command Installation

The fastest way to get started is using our Makefile commands:

For local development with Minikube:
```bash
$ make minikube
make minikube
```

Once the deployment is done, the url to access eoAPI will be printed to your terminal.
For cloud deployment:
```bash
make deploy
```

### Cloud
This will automatically:
1. Install the PostgreSQL operator
2. Add the eoAPI helm repository
3. Install the eoAPI helm chart
4. Set up necessary namespaces and configurations

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
### Option 2: Step-by-Step Installation

> ⓘ The helm chart in this repo assumes your cluster has a few third-party add-ons and controllers installed. So
> it's in your best interest to read through the IaC guides to understand what those defaults are
If you prefer more control over the installation process:

* [AWS EKS Cluster Setup](./docs/aws-eks.md)
* [GCP GKE Cluster Setup](./docs/gcp-gke.md)
1. Install the PostgreSQL operator:
```bash
helm upgrade --install \
--set disable_check_for_upgrades=true pgo \
oci://registry.developers.crunchydata.com/crunchydata/pgo \
--version 5.7.4
```

2. Add the eoAPI helm repository:
```bash
helm repo add eoapi https://devseed.com/eoapi-k8s/
```

3. Get your current git SHA:
```bash
export GITSHA=$(git rev-parse HEAD | cut -c1-10)
```

4. Install eoAPI:
```bash
helm upgrade --install \
--namespace eoapi \
--create-namespace \
--set gitSha=$GITSHA \
eoapi devseed/eoapi
```

### Post-Installation

Make sure you have your `kubectl` configured to point to the cluster you want to deploy eoAPI to. Then simply execute the following command:
1. Enable ingress (for Minikube):
```bash
minikube addons enable ingress
```

2. Optional: Load sample data:
```bash
$ make deploy
make ingest
```

### Manual step-by-step installation
## Cloud Provider Setup

For cloud-based deployments, refer to our detailed setup guides:
* [AWS EKS Cluster Setup](./docs/aws-eks.md)
* [GCP GKE Cluster Setup](./docs/gcp-gke.md)
* [Azure Setup](./docs/azure.md)

## Documentation

* [Configuration Guide](./docs/configuration.md)
* [Data Management](./docs/manage-data.md)
* [Autoscaling and Monitoring](./docs/autoscaling.md)
* [Health Checks](./docs/health.md)
* [Unified Ingress Configuration](./docs/unified-ingress.md)

Instead of using the `make` commands above you can also [manually `helm install` eoAPI](./docs/helm-install.md).
## Contributing

We welcome contributions! See our [contributing guide](./CONTRIBUTING.md) for details.

## More information
## License

* Read about [Default Configuration](./docs/configuration.md#default-configuration) and
other [Configuration Options](./docs/configuration.md#additional-options)
* [Manage your data](./docs/manage-data.md) in eoAPI
* Learn about [Autoscaling / Monitoring / Observability](./docs/autoscaling.md)
This project is licensed under the [MIT License](./LICENSE).
6 changes: 4 additions & 2 deletions helm-chart/eoapi/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ type: application
kubeVersion: ">=1.23.0-0"

# Artifacthub metadata
icon: logo.png
annotations:
artifacthub.io/changes: |
- Adds integration with Artifacthub.io
Expand All @@ -35,13 +36,14 @@ annotations:
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: "0.6.0"
version: "0.7.0"

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.6.0"
# We use the stac-fastapi-pgstac version as the app version
appVersion: "5.0.2"

dependencies:
- name: postgrescluster
Expand Down
Loading