feat: add h3 container image#227
Open
jmealo wants to merge 1 commit into
Open
Conversation
Add a container image for the core `h3` PostgreSQL extension (h3-pg), which provides bindings for Uber's H3 hierarchical hexagonal geospatial indexing system, allowing CloudNativePG users to index and query location data on an H3 grid directly in SQL. The image bundles the `postgresql-NN-h3` package together with its required `libh3` system library (exposed via ld_library_path), built for PostgreSQL 18 on bookworm and trixie. Only the self-contained core `h3` extension is shipped; the optional `h3_postgis` companion, which requires PostGIS, is intentionally excluded. Closes cloudnative-pg#226 Signed-off-by: Jeff Mealo <jmealo@protonmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A container image for the core
h3PostgreSQL extension (h3-pg), which provides bindings for H3, Uber's hierarchical hexagonal geospatial indexing system. This enables CloudNativePG users to: index, aggregate, and join location data on a global hexagonal grid directly in SQL.Closes #226
Details
postgresql-<pg-major>-h3(PGDG)4.2.3-4.pgdg13+1· bookworm:4.2.3-4.pgdg12+14.2.3(default_versioninh3.control)bookwormandtrixie,linux/amd64+linux/arm64h3extension. The optionalh3_postgiscompanion (which requires PostGIS) is intentionally excluded.h3.sodynamically linkslibh3.so.1(fromlibh3-1, also PGDG). It is bundled under/systemand exposed viald_library_path = ["system"], mirroring thepostgisimage.auto_update_os_libsis enabled withsystem-libs/manifests for renovate.Both
h3-pgandlibh3/uber/h3 are Apache-2.0 upstream. However, the Debianlibh3-1package'scopyrightfile classifies two upstream files (README.md,src/h3lib/lib/coordijk.c) as AGPL-3+, attributing them to DGGRID / Southern Oregon University. This looks like an over-conservative Debian classification of an algorithm-origin credit: current upstreamuber/h3carries Apache-2.0 headers on those files and contains no AGPL text. Becausecoordijk.ccompiles into the bundledlibh3.so.1and the Debiancopyrightships under/licenses/, it is surfaced for maintainer review(also raised in #226).
Testing
task e2e:test:full TARGET=h3— passing: builds the multi-arch image, pushes to a local registry, deploys a CNPGClusterwith the h3 image volume + aDatabase, and assertsCREATE EXTENSION h3(v4.2.3) applies cleanly.linux/amd64+linux/arm64) and push verified for both bookworm and trixie.Submission checklist
git commit -s)mainbranch of the upstream repositoryCODEOWNERSentry for/h3/feat:format