Skip to content

Commit db8fd56

Browse files
Merge branch 'unified_pg' into feature/azure-secrets
2 parents bc7dfad + ee41f4b commit db8fd56

File tree

25 files changed

+958
-576
lines changed

25 files changed

+958
-576
lines changed

.github/workflows/helm-tests.yml

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99

1010
env:
1111
HELM_VERSION: v3.15.2
12-
PGO_VERSION: 5.7.0
12+
PGO_VERSION: 5.7.4
1313

1414
jobs:
1515
helm-tests:
@@ -74,7 +74,9 @@ jobs:
7474
oci://registry.developers.crunchydata.com/crunchydata/pgo \
7575
--version ${{ env.PGO_VERSION }}
7676
77-
- name: helm render/install eoapi templates
77+
- id: helm-render-install-eoapi-templates
78+
name: helm render/install eoapi templates
79+
continue-on-error: true
7880
run: |
7981
export GITSHA='${{github.sha}}'
8082
@@ -87,18 +89,53 @@ jobs:
8789
-f ./eoapi/test-k3s-unittest-values.yaml \
8890
./eoapi
8991
90-
- name: sleep for 10s seconds while services boot
91-
shell: bash
92-
run: sleep 10s
92+
exit $?
9393
94-
# - name: Setup upterm session
95-
# uses: lhotari/action-upterm@v1
94+
- name: debug pgstac-migrate job failure
95+
if: steps.helm-render-install-eoapi-templates.outcome == 'failure'
96+
continue-on-error: true
97+
run: |
98+
echo "Extracting pgstac-migrate job info and logs for debugging..."
99+
100+
# Get job details
101+
echo "===== pgstac-migrate Job Details ====="
102+
kubectl get job pgstac-migrate -o yaml || echo "Could not get pgstac-migrate job details"
103+
104+
# Get pod details
105+
echo "===== pgstac-migrate Pod Details ====="
106+
kubectl get pods -l app=pgstac-migrate --all-namespaces || echo "Could not find pgstac-migrate pods"
107+
108+
# Extract logs from pgstac-migrate pod(s)
109+
echo "===== pgstac-migrate Pod Logs ====="
110+
echo "Looking for completed pods from pgstac-migrate job..."
111+
COMPLETED_PODS=$(kubectl get pods --selector=job-name=pgstac-migrate --field-selector=status.phase=Succeeded,status.phase=Failed -o jsonpath='{.items[*].metadata.name}' 2>/dev/null)
112+
if [ -n "$COMPLETED_PODS" ]; then
113+
echo "Found completed pods from pgstac-migrate job. Extracting logs from each:"
114+
for POD in $COMPLETED_PODS; do
115+
echo "--- Logs from completed pod $POD ---"
116+
kubectl logs pod/$POD || echo "Could not get logs from pod $POD"
117+
done
118+
else
119+
echo "No completed pods found for pgstac-migrate job"
120+
fi
121+
122+
# Get details about the database pods/services
123+
echo "===== Database Pod/Service Details ====="
124+
# Find database service
125+
kubectl get svc | grep "db" || echo "Could not find database services"
126+
# Find database pods
127+
kubectl get pods | grep "db-" || echo "Could not find database pods"
128+
129+
# Check for any events related to the job or pods
130+
echo "===== Related Kubernetes Events ====="
131+
kubectl get events | grep -E "pgstac|db" || echo "No relevant events found"
96132
97133
- id: watchservices
98134
name: watch services boot
99-
timeout-minutes: 10
135+
timeout-minutes: 3
100136
continue-on-error: true
101137
run: |
138+
# Now wait for services to boot up
102139
while [[ -z "$(kubectl get pod | grep "^raster-$RELEASE_NAME-.*$" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} | grep "GET /.*/healthz" | head -n 1)" ]]; do
103140
echo "still waiting for raster service to start..."
104141
sleep 1
@@ -124,14 +161,6 @@ jobs:
124161
echo "===== Pod Status ====="
125162
kubectl get pods
126163
127-
# Extract logs from database pod
128-
echo "===== Database Pod Logs ====="
129-
kubectl get pod | grep "^db-$RELEASE_NAME" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} --tail=100 || echo "Could not get database logs"
130-
131-
# Extract logs from pgstacbootstrap pod
132-
echo "===== PGSTACBootstrap Pod Logs ====="
133-
kubectl get pod | grep "^pgstacbootstrap-$RELEASE_NAME" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} --tail=100 || echo "Could not get pgstacbootstrap logs"
134-
135164
# Extract logs from raster pod init container (wait-for-pgstacbootstrap)
136165
echo "===== Raster Pod Init Container Logs (wait-for-pgstacbootstrap) ====="
137166
kubectl get pod | grep "^raster-$RELEASE_NAME" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} -c wait-for-pgstacbootstrap --tail=100 || echo "Could not get raster init container logs"
@@ -161,7 +190,7 @@ jobs:
161190
162191
- name: run the tests
163192
id: testrunner
164-
continue-on-error: true
193+
# continue-on-error: true
165194
run: |
166195
kubectl get svc --all-namespaces
167196
kubectl get ingress --all-namespaces -o jsonpath='{range .items[0]}kubectl describe ingress {.metadata.name} -n {.metadata.namespace}{end}' | sh
@@ -192,14 +221,6 @@ jobs:
192221
echo "===== Pod Status ====="
193222
kubectl get pods
194223
195-
# Extract logs from database pod
196-
echo "===== Database Pod Logs ====="
197-
kubectl get pod | grep "^db-$RELEASE_NAME" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} --tail=100 || echo "Could not get database logs"
198-
199-
# Extract logs from pgstacbootstrap pod
200-
echo "===== PGSTACBootstrap Pod Logs ====="
201-
kubectl get pod | grep "^pgstacbootstrap-$RELEASE_NAME" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} --tail=100 || echo "Could not get pgstacbootstrap logs"
202-
203224
# Extract logs from raster pod init container (wait-for-pgstacbootstrap)
204225
echo "===== Raster Pod Init Container Logs (wait-for-pgstacbootstrap) ====="
205226
kubectl get pod | grep "^raster-$RELEASE_NAME" | cut -d' ' -f1 | xargs -I{} kubectl logs pod/{} -c wait-for-pgstacbootstrap --tail=100 || echo "Could not get raster init container logs"

.github/workflows/release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env:
1010

1111
jobs:
1212
release:
13-
if: "!startsWith(github.ref, 'refs/tags/eoapi-')" # prevent the helm chart releaser from running this release workflow
13+
if: ${{ !startsWith(github.ref, 'refs/tags/eoapi-') }} # prevent the helm chart releaser from running this release workflow
1414
runs-on: ubuntu-latest
1515
steps:
1616
- uses: actions/checkout@v4
@@ -42,3 +42,4 @@ jobs:
4242
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
4343
CR_SKIP_EXISTING: true
4444
CR_INDEX_PATH: "."
45+

CHANGELOG.md

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
12+
13+
### Changed
14+
15+
* Refactor pgstacbootstrap job and ConfigMaps to use Helm hooks for execution order [#207](https://github.com/developmentseed/eoapi-k8s/pull/207)
16+
* Simplify PgSTAC Bootstrap Process [#208](https://github.com/developmentseed/eoapi-k8s/pull/208)
17+
* Upgrade stac-fastapi-pgstac to v5.0.2 [#204](https://github.com/developmentseed/eoapi-k8s/pull/204)
18+
19+
### Deprecated
20+
21+
### Removed
22+
23+
### Fixed
24+
25+
### Security
26+
27+
## [v0.6.0] - 2025-04-03
28+
29+
### Breaking Changes
30+
- Database backups are now disabled by default. To enable them, set `backupsEnabled: true` in your values.yaml.
31+
32+
### Added
33+
- Add initContainers to wait for db and its bootstrap [#194](https://github.com/developmentseed/eoapi-k8s/pull/194)
34+
- Let all eoAPI services wait for db bootstrap [#197](https://github.com/developmentseed/eoapi-k8s/pull/197)
35+
36+
### Changed
37+
- Update GCP Setup instructions [#188](https://github.com/developmentseed/eoapi-k8s/pull/188)
38+
- Remove GCP CI deployment tests [#193](https://github.com/developmentseed/eoapi-k8s/pull/193)
39+
- Upgrade PGO to 5.7.0; Add option to disable backups [#191](https://github.com/developmentseed/eoapi-k8s/pull/191)
40+
- Upgrade dependencies [#196](https://github.com/developmentseed/eoapi-k8s/pull/196)
41+
- Upgrade to latest stac-fastapi-pgstac [#195](https://github.com/developmentseed/eoapi-k8s/pull/195)
42+
- Upgrade tipg to 1.0.1 and titiler-pgstac to 1.7.1 [#199](https://github.com/developmentseed/eoapi-k8s/pull/199)
43+
44+
### Fixed
45+
- Fix multidim entrypoint [#192](https://github.com/developmentseed/eoapi-k8s/pull/192)
46+
- Fix unsupported regex in ingress-nginx config [#189](https://github.com/developmentseed/eoapi-k8s/pull/189)
47+
- Reduce errors about too many db connections [#198](https://github.com/developmentseed/eoapi-k8s/pull/198)
48+
49+
## [v0.5.3] - 2025-03-10
50+
51+
### Added
52+
- Allow Repeated Helm Deployments [#169](https://github.com/developmentseed/eoapi-k8s/pull/169)
53+
- Create health documentation [#171](https://github.com/developmentseed/eoapi-k8s/pull/171)
54+
- Introduce a list to avoid hardcoding of api service names [#180](https://github.com/developmentseed/eoapi-k8s/pull/180)
55+
- Add multidim api service [#182](https://github.com/developmentseed/eoapi-k8s/pull/182)
56+
- Tolerations and affinity support [#176](https://github.com/developmentseed/eoapi-k8s/pull/176)
57+
- Allow setting annotations for deployments [#177](https://github.com/developmentseed/eoapi-k8s/pull/177)
58+
59+
### Changed
60+
- Use template functions to quote env vars [#170](https://github.com/developmentseed/eoapi-k8s/pull/170)
61+
- Improve probe setup [#183](https://github.com/developmentseed/eoapi-k8s/pull/183)
62+
63+
### Fixed
64+
- Fix helm template error if docServer settings is not defined [#178](https://github.com/developmentseed/eoapi-k8s/pull/178)
65+
66+
## [v0.5.2] - 2024-12-05
67+
68+
### Added
69+
- Allow additional secrets to set environment variables [#167](https://github.com/developmentseed/eoapi-k8s/pull/167)
70+
71+
## [v0.5.1] - 2024-11-22
72+
73+
### Added
74+
- Add ingest.sh script [#164](https://github.com/developmentseed/eoapi-k8s/pull/164)
75+
76+
### Fixed
77+
- Add passthrough for ca bundle secret into metrics server [#165](https://github.com/developmentseed/eoapi-k8s/pull/165)
78+
79+
## [v0.5.0] - 2024-11-01
80+
81+
### Added
82+
- Document choice of postgres operator [#160](https://github.com/developmentseed/eoapi-k8s/pull/160)
83+
- Add a basic makefile [#162](https://github.com/developmentseed/eoapi-k8s/pull/162)
84+
- Add icon [#163](https://github.com/developmentseed/eoapi-k8s/pull/163)
85+
86+
### Changed
87+
- Update titiler-pgstac version [#157](https://github.com/developmentseed/eoapi-k8s/pull/157)
88+
- Bump eoapi chart and app versions [#158](https://github.com/developmentseed/eoapi-k8s/pull/158)
89+
90+
## [v0.4.18] - 2024-09-25
91+
92+
### Fixed
93+
- Remove VSIL allowed extensions list [#152](https://github.com/developmentseed/eoapi-k8s/pull/152)
94+
95+
### Changed
96+
- Bump eoapi chart version [#153](https://github.com/developmentseed/eoapi-k8s/pull/153)
97+
98+
## [v0.4.17] - 2024-09-24
99+
100+
### Changed
101+
- Change Dependency Order in Support Chart [#150](https://github.com/developmentseed/eoapi-k8s/pull/150)
102+
103+
## [v0.4.16] - 2024-09-20
104+
105+
### Changed
106+
- Upgrade with postgres cluster 5.5.3 [#149](https://github.com/developmentseed/eoapi-k8s/pull/149)
107+
108+
## [v0.4.15] - 2024-09-20
109+
110+
### Changed
111+
- Postgrescluster chart upgrade [#148](https://github.com/developmentseed/eoapi-k8s/pull/148)
112+
113+
## [v0.4.14] - 2024-09-20
114+
115+
### Added
116+
- Add NFS Option to PGBackRest [#147](https://github.com/developmentseed/eoapi-k8s/pull/147)
117+
118+
## [v0.4.13] - 2024-09-09
119+
120+
### Fixed
121+
- Add back postgrescluster dependency to main eoapi chart [#145](https://github.com/developmentseed/eoapi-k8s/pull/145)
122+
123+
## [v0.4.10] - 2024-09-09
124+
125+
### Changed
126+
- Move postgresql cluster file:// dependency to first-level chart dependency [#141](https://github.com/developmentseed/eoapi-k8s/pull/141)
127+
128+
## [v0.4.9] - 2024-09-04
129+
130+
### Fixed
131+
- Fix horizontal pod autoscaling rules [#140](https://github.com/developmentseed/eoapi-k8s/pull/140)
132+
133+
### Changed
134+
- Documentation updates [#139](https://github.com/developmentseed/eoapi-k8s/pull/139)
135+
136+
## [v0.4.8] - 2024-09-03
137+
138+
### Changed
139+
- Default enable vector again [#138](https://github.com/developmentseed/eoapi-k8s/pull/138)
140+
141+
## [v0.4.7] - 2024-09-03
142+
143+
### Added
144+
- Support and Autoscaling Additions [#135](https://github.com/developmentseed/eoapi-k8s/pull/135)
145+
146+
## [v0.4.6] - 2024-07-17
147+
148+
### Changed
149+
- Bump chart patch versions [#131](https://github.com/developmentseed/eoapi-k8s/pull/131)
150+
151+
## [v0.4.2] - 2024-07-11
152+
153+
### Fixed
154+
- Pin pypgstac versions [#126](https://github.com/developmentseed/eoapi-k8s/pull/126)
155+
156+
## [v0.4.1] - 2024-07-10
157+
158+
### Added
159+
- Release Documentation and Cleanup [#117](https://github.com/developmentseed/eoapi-k8s/pull/117)
160+
161+
## [v0.4.0] - 2024-07-09
162+
163+
### Added
164+
- Start EKS IAC with Docs Walkthrough from Notes [#12](https://github.com/developmentseed/eoapi-k8s/pull/12)
165+
- Single Nginx Ingress and NLB with path rewrites [#11](https://github.com/developmentseed/eoapi-k8s/pull/11)
166+
- Unit tests [#14](https://github.com/developmentseed/eoapi-k8s/pull/14)
167+
- Document GKE k8s cluster setup [#27](https://github.com/developmentseed/eoapi-k8s/pull/27)
168+
- Generalized commands and added livenessProbe [#35](https://github.com/developmentseed/eoapi-k8s/pull/35)
169+
- HPA (CPU) draft before locust/artillery [#51](https://github.com/developmentseed/eoapi-k8s/pull/51)
170+
- Autoscaling by request rate [#53](https://github.com/developmentseed/eoapi-k8s/pull/53)
171+
- Support for specifying host and getting certs from cert manager [#60](https://github.com/developmentseed/eoapi-k8s/pull/60)
172+
- Configuration for EKS autoscaler [#59](https://github.com/developmentseed/eoapi-k8s/pull/59)
173+
- PGO by default [#84](https://github.com/developmentseed/eoapi-k8s/pull/84)
174+
- Add fixtures [#9](https://github.com/developmentseed/eoapi-k8s/pull/9)
175+
- Allow custom annotations [#66](https://github.com/developmentseed/eoapi-k8s/pull/66)
176+
- Testing autoscaling in EKS [#55](https://github.com/developmentseed/eoapi-k8s/pull/55)
177+
178+
### Changed
179+
- Default gitSha and insert main gitSha for distributed helm-chart [#21](https://github.com/developmentseed/eoapi-k8s/pull/21)
180+
- Repository rename [#23](https://github.com/developmentseed/eoapi-k8s/pull/23)
181+
- More explicit nginx documentation [#24](https://github.com/developmentseed/eoapi-k8s/pull/24)
182+
- Root path HTML [#25](https://github.com/developmentseed/eoapi-k8s/pull/25)
183+
- GKE related changes [#37](https://github.com/developmentseed/eoapi-k8s/pull/37)
184+
- Release name for parallel CI tests [#43](https://github.com/developmentseed/eoapi-k8s/pull/43)
185+
- API version update for release [#49](https://github.com/developmentseed/eoapi-k8s/pull/49)
186+
- Upgraded pgstac, titiler-pgstac and tipg versions [#67](https://github.com/developmentseed/eoapi-k8s/pull/67)
187+
188+
### Fixed
189+
- Database resources now can set limits and requests [#46](https://github.com/developmentseed/eoapi-k8s/pull/46)
190+
- Integration tests with image upgrade [#68](https://github.com/developmentseed/eoapi-k8s/pull/68)
191+
- Avoid immediate scaleup if autoscale is enabled [#52](https://github.com/developmentseed/eoapi-k8s/pull/52)

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
<img src="https://github.com/developmentseed/eoapi-k8s/actions/workflows/helm-tests.yml/badge.svg?branch=main" alt="Test">
99
</a>
1010
<a href="https://github.com/developmentseed/eoapi-k8s/blob/main/LICENSE" target="_blank">
11-
<img src="https://img.shields.io/github/license/developmentseed/titiler.svg" alt="Downloads">
11+
<img src="https://img.shields.io/github/license/developmentseed/titiler.svg" alt="License">
12+
</a>
13+
<a href="https://artifacthub.io/packages/search?repo=eoapi" target="_blank">
14+
<img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/eoapi" alt="Artifact Hub">
1215
</a>
1316
</p>
1417

artifacthub-repo.yml

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

helm-chart/eoapi/Chart.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,26 @@ description: Create a full Earth Observation API with Metadata, Raster and Vecto
1212
type: application
1313
kubeVersion: ">=1.23.0-0"
1414

15+
# Artifacthub metadata
16+
annotations:
17+
artifacthub.io/changes: |
18+
- Adds integration with Artifacthub.io
19+
artifacthub.io/links: |
20+
- name: GitHub Repository
21+
url: https://github.com/developmentseed/eoapi-k8s
22+
- name: Documentation
23+
url: https://github.com/developmentseed/eoapi-k8s/tree/main/docs
24+
artifacthub.io/maintainers: |
25+
- name: DevelopmentSeed
26+
27+
artifacthub.io/keywords: |
28+
- earth observation
29+
- geospatial
30+
- kubernetes
31+
- stac
32+
- raster
33+
- vector
34+
1535
# This is the chart version. This version number should be incremented each time you make changes
1636
# to the chart and its templates, including the app version.
1737
# Versions are expected to follow Semantic Versioning (https://semver.org/)

0 commit comments

Comments
 (0)