Skip to content

Feat/kustomize deployment#361

Closed
jmeegan2 wants to merge 15 commits into
raft-tech:mainfrom
jmeegan2:feat/kustomize-deployment
Closed

Feat/kustomize deployment#361
jmeegan2 wants to merge 15 commits into
raft-tech:mainfrom
jmeegan2:feat/kustomize-deployment

Conversation

@jmeegan2

@jmeegan2 jmeegan2 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

SUMMARY

Adds Kustomize deployment support for GeoSet, addressing #336.

The ticket asked for a root-level Kustomize deployment option comparable to the upstream Superset Helm chart, with readable manifests and support for multiple deployment shapes such as lean and production overlays. This PR implements that request with a new kustomize/ directory containing:

  • kustomize/base: lean/dev deployment with namespace, Superset web, metadata Postgres, PostGIS, initialization jobs, sample data ingest, config, and secret examples.
  • kustomize/full: fuller staging/production starting point layered on base with Redis, Celery worker, Celery beat, Superset config overrides, image references, and Flux GitOps manifests.
  • kustomize/README.md: setup, secrets, deploy, validation, port-forwarding, and teardown instructions.

Compared to the ticket, this PR keeps the scope focused on Kustomize deployment support. Runtime alert/report additions, Mattermost notification support, Chromium image work, and the full Docker Compose stack were split out to a separate branch so this PR can be reviewed against the original Kustomize request.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Not applicable. This is deployment/configuration work.

TESTING INSTRUCTIONS

Validate the Kustomize manifests locally:

tmp="$(mktemp -d)"
cp -R kustomize "$tmp/"
cp "$tmp/kustomize/base/secrets.yaml.example" "$tmp/kustomize/base/secrets.yaml"
kubectl kustomize "$tmp/kustomize/base"
kubectl kustomize "$tmp/kustomize/full"

Deploy base overlay:

cp kustomize/base/secrets.yaml.example kustomize/base/secrets.yaml
# Fill in real secret values in kustomize/base/secrets.yaml
kubectl apply -k kustomize/base
kubectl -n geoset get pods
kubectl -n geoset get svc
kubectl -n geoset port-forward svc/superset-web 8088:8088

Deploy full overlay:

kubectl apply -k kustomize/full
kubectl -n geoset get pods
kubectl -n geoset get svc

ADDITIONAL INFORMATION

  • Has associated issue: Fixes Add support for Kustomize #336
  • Required feature flags:
  • Changes UI
  • Includes DB Migration
  • Introduces new feature or API
  • Removes existing feature or API

jmeegan2 and others added 15 commits March 26, 2026 15:43
Introduces kustomize/ directory with two deployment overlays:
- base: minimal deployment (PostGIS, metadata DB, Superset web, sample data)
- full: production overlay adding Redis, Celery workers/beat, and Flux GitOps

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… overlay

Add MailHog as an in-cluster dev SMTP server and a bootstrap Job that
seeds the daily Wildfire Proximity Alert via the Superset REST API.
Make WEBDRIVER_BASEURL env-configurable and disable alert dry-run mode
so alerts actually fire in both Docker Compose and Kustomize deployments.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… alerts

Add MattermostNotification backend handler (stubbed), frontend UI for
Mattermost as a notification method, and Dockerfile.chromium for building
worker images with Playwright/Chromium. Patch base.py to respect
ALERT_REPORTS_NOTIFICATION_METHODS config. Update worker/beat deployments
with chromium image tag and MAPBOX_API_KEY from secrets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…mize fixes

- Mattermost notification now posts to real webhook with inline base64
  screenshot support for PNG format alerts
- Add docker-compose.full.yml with Redis, Celery worker/beat
- Add configMapGenerator for superset-config-overrides (WEBDRIVER_TYPE,
  ALERT_REPORTS_NOTIFICATION_METHODS, PLAYWRIGHT feature flag)
- Mount config overrides on web, worker, and beat deployments
- Set imagePullPolicy: Always and chromium tag for full overlay
- Comment out base image tag (6.0.48) — full overlay overrides with chromium

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Encode PNG screenshots as data URIs and embed in webhook payload.
Fails hard if screenshot encoding fails. Includes debug logging for
content inspection. Note: large screenshots may exceed Mattermost's
default max post size — Bot API file upload needed for production.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…g.py

Create superset_config_docker_full.py as a committed override file for the
full Docker Compose stack. This keeps upstream superset_config.py clean
(zero diff against apache/superset) while preserving GeoSet-specific config:
FixedExecutor fallback, cache warmup logging, Mattermost alerts, and
webdriver settings. docker-compose.full.yml mounts it as
superset_config_docker.py so it's auto-imported by the base config.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ldfire-alert

Rename Dockerfile.chromium to Dockerfile.full and bake the GeoSet config
override into the image instead of appending config lines at build time.
Remove the wildfire-alert bootstrap job (POC cleanup). Update kustomize
image tag from chromium to full.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jmeegan2 jmeegan2 closed this Jun 24, 2026
@jmeegan2

Copy link
Copy Markdown
Collaborator Author

put on back burner

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.

Add support for Kustomize

1 participant