Skip to content

feat: add Helm chart for Kubernetes deployment#10

Merged
GeiserX merged 5 commits intomainfrom
feat/helm-chart
Mar 31, 2026
Merged

feat: add Helm chart for Kubernetes deployment#10
GeiserX merged 5 commits intomainfrom
feat/helm-chart

Conversation

@GeiserX
Copy link
Copy Markdown
Owner

@GeiserX GeiserX commented Mar 31, 2026

Summary

  • Adds a comprehensive Helm chart at charts/pumperly/ for deploying Pumperly on Kubernetes
  • Includes PostGIS StatefulSet (with spatial extensions), optional Valhalla routing engine, and optional Photon geocoder
  • Configurable via values.yaml with sensible defaults — all components toggleable
  • Includes ServiceAccount, Ingress, PVCs, health probes, security contexts, and PodDisruptionBudget

Components

  • Pumperly app (Deployment) — Next.js application
  • PostGIS (StatefulSet) — PostgreSQL with spatial extensions, persistent storage
  • Valhalla (StatefulSet, optional) — Turn-by-turn routing engine with large PVC for tile data
  • Photon (Deployment, optional) — Geocoding service backed by OpenStreetMap

Test plan

  • helm template renders without errors
  • Deploy with only PostGIS enabled (default)
  • Deploy with Valhalla enabled and verify routing
  • Deploy with Photon enabled and verify geocoding
  • Verify Ingress and TLS configuration
  • Test with external database (postgis.enabled: false)

🤖 Generated with Claude Code

GeiserX added 5 commits March 31, 2026 18:49
- Correct env var names to match app contract (VALHALLA_URL, PHOTON_URL, TANKERKOENIG_API_KEY, PUMPERLY_OCM_API_KEY, FUELPRICES_DK_API_KEY)
- Add existingSecret and external DB/service support
- Gate bundled PostGIS properly, add DB wait + prisma db push init container
- Make Photon explicit (require image/tag when enabled)
- Add web/postgis/valhalla/photon component selector labels
- Switch probes to /api/config, add startupProbe
- Add values.schema.json and README.md
- Pin test images to busybox:1.36.1
- Add extraEnv/extraEnvFrom/extraVolumes/extraVolumeMounts
Avoid overlapping scraper pods on upgrade, restart the web Deployment when chart-managed secrets change, and make the external database path safer to operate with clearer validation and docs.
The urlquery filter was applied to username and password but not to
the database name, which could produce a broken connection string if
the name contained URI-reserved characters.
Make the database wait init container fail fast instead of hanging forever, clean up the chart-managed DATABASE_URL generation, and tighten the docs and metadata around the external database path.
@GeiserX GeiserX merged commit a5d7873 into main Mar 31, 2026
7 checks passed
@GeiserX GeiserX deleted the feat/helm-chart branch March 31, 2026 22:14
GeiserX added a commit that referenced this pull request Apr 3, 2026
feat: add Helm chart for Kubernetes deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant