Skip to content

Commit c1024bf

Browse files
feat: Add EOAPI Helm Chart README and streamline PgSTAC bootstrap process
1 parent 02cfa59 commit c1024bf

File tree

2 files changed

+141
-60
lines changed

2 files changed

+141
-60
lines changed

helm-chart/eoapi/README.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# EOAPI Helm Chart
2+
3+
This Helm chart deploys the EOAPI (Earth Observation API) stack, which includes STAC API, raster tile services, vector tile services, and a multidimensional data service.
4+
5+
## Overview
6+
7+
The chart sets up:
8+
9+
- A PostgreSQL database with PostGIS and PgSTAC extensions
10+
- STAC API service for metadata discovery and search
11+
- Titiler for raster tile services
12+
- TIPG for vector tile services
13+
- Optional multidimensional data service
14+
15+
## Prerequisites
16+
17+
- Kubernetes 1.16+
18+
- Helm 3.0+
19+
- PV provisioner support in the underlying infrastructure
20+
- CrunchyData Postgres Operator (for the PostgreSQL database)
21+
22+
## Installation
23+
24+
```bash
25+
# Install Postgres Operator first
26+
helm install --set disable_check_for_upgrades=true pgo oci://registry.developers.crunchydata.com/crunchydata/pgo
27+
28+
# Then install eoapi
29+
helm install eoapi ./eoapi
30+
```
31+
32+
## Configuration
33+
34+
The chart can be configured via `values.yaml`. See the chart's `values.yaml` file for all available options and detailed descriptions.
35+
36+
Key configuration sections:
37+
38+
```yaml
39+
# Services to enable
40+
apiServices:
41+
- raster
42+
- stac
43+
- vector
44+
# - multidim (disabled by default)
45+
46+
# Ingress configuration
47+
ingress:
48+
enabled: true
49+
className: "nginx"
50+
# ...
51+
52+
# Database configuration
53+
postgrescluster:
54+
enabled: true
55+
# ...
56+
```
57+
58+
## PgSTAC Bootstrap Process
59+
60+
The chart includes a streamlined process for initializing and setting up the PgSTAC database.
61+
62+
### PgSTAC Bootstrap Overview
63+
64+
The setup process consists of two main jobs:
65+
66+
1. **pgstac-migrate job**: Runs the pypgstac migrate command to initialize the database schema, applies settings, and sets necessary permissions.
67+
2. **pgstac-load-samples job**: (Optional) Loads sample STAC data only when sample loading is enabled.
68+
69+
### Improvements in PgSTAC Bootstrap
70+
71+
- Replaced custom Python script with pypgstac migrate command
72+
- Moved SQL settings to a dedicated SQL file for better maintainability
73+
- Separated sample data loading into an optional job
74+
- Uses standard PostgreSQL environment variables
75+
- Ensures the process remains idempotent for safe re-runs
76+
77+
### PgSTAC Directory Structure
78+
79+
The codebase has been reorganized to separate different types of files:
80+
81+
- `initdb-data/settings/`: Contains configuration settings like the PgSTAC settings SQL file
82+
- `initdb-data/samples/`: Contains sample data files that are loaded only when sample loading is enabled
83+
84+
### PgSTAC Configuration
85+
86+
- Enable/disable the setup process through `pgstacBootstrap.enabled`
87+
- Control sample data loading:
88+
- New approach: `pgstacBootstrap.settings.loadSamples` (recommended)
89+
- Legacy approach: `pgstacBootstrap.settings.envVars.LOAD_FIXTURES` (deprecated)
90+
91+
Example configuration:
92+
93+
```yaml
94+
pgstacBootstrap:
95+
enabled: true
96+
settings:
97+
# General configuration options
98+
loadSamples: true # Set to false to disable sample data loading
99+
100+
resources:
101+
requests:
102+
cpu: "512m"
103+
memory: "1024Mi"
104+
limits:
105+
cpu: "512m"
106+
memory: "1024Mi"
107+
```
108+
109+
## Services
110+
111+
### STAC API
112+
113+
The STAC API service provides a standardized way to search and discover geospatial data.
114+
115+
### Raster Services (Titiler)
116+
117+
Provides dynamic tiling for raster data through the TiTiler implementation.
118+
119+
### Vector Services (TIPG)
120+
121+
Provides vector tile services for PostGIS data through the TIPG implementation.
122+
123+
### Multidimensional Services (Optional)
124+
125+
Provides services for multidimensional data (time series, etc.).
126+
127+
## Persistence
128+
129+
The chart uses PostgreSQL for data persistence. Make sure to configure appropriate storage for production use.
130+
131+
## Upgrading
132+
133+
When upgrading the chart, consider any changes to values.yaml and migrations that might need to be applied.
134+
135+
## Uninstallation
136+
137+
```bash
138+
helm delete eoapi
139+
```
140+
141+
Note that PVs may need to be manually deleted if you want to remove all data.

helm-chart/eoapi/templates/pgstacboostrap/README.md

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)