Skip to content

feat: add raster-serving umbrella chart for helm Template migration(MAPCO-10333)#59

Open
roicohen326 wants to merge 8 commits into
masterfrom
add-raster-serving
Open

feat: add raster-serving umbrella chart for helm Template migration(MAPCO-10333)#59
roicohen326 wants to merge 8 commits into
masterfrom
add-raster-serving

Conversation

@roicohen326
Copy link
Copy Markdown

@roicohen326 roicohen326 commented Mar 26, 2026

Raster Serving - Elm Template Migration (Phase 1)

Migrates the raster-serving umbrella chart from the legacy helm Umbrella architecture (helm-charts) to the new helm Template (Helmfile) architecture.

What's included

  • Chart.yaml — Umbrella chart with all 5 dependencies pointing to OCI registry, using <subchart>.enabled condition pattern (matching core-stack, cloudnative-postgres conventions)
  • values.yaml — Base defaults (static/logic values only). Environment-specific values (OPA URLs, hostnames, TLS certs, extraVolumes, redis password) are stripped and belong in site-values

Sub-charts

Sub-chart Version Purpose
pycsw 6.4.1 Public catalog CSW endpoint
pycsw-private 6.4.1 Private catalog CSW endpoint
mapproxy 1.9.2 WMS/WMTS tile proxy
pp-geoserver 3.0.0 Polygon parts GeoServer
redis 18.5.0 MapProxy caching backend

Values marked with # FLAG

Values marked with # FLAG are kept in base defaults but may need review — they could potentially be environment-specific (resource limits, timeouts, polling intervals, log levels). Keeping them per the "unsure policy" until Team Lead review.

@roicohen326 roicohen326 changed the title feat: add raster-serving umbrella chart for Elm Template migration feat: add raster-serving umbrella chart for helm Template migration Mar 31, 2026
@roicohen326 roicohen326 changed the title feat: add raster-serving umbrella chart for helm Template migration feat: add raster-serving umbrella chart for helm Template migration(MAPCO-10333) Apr 2, 2026
Copilot AI review requested due to automatic review settings April 13, 2026 08:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds new umbrella Helm charts for Raster services as part of the Helm Template (Helmfile) migration, including base default values.yaml and Chart.yaml dependency definitions.

Changes:

  • Introduces raster-serving umbrella chart with 5 dependencies and default values for pycsw/pycsw-private/mapproxy/pp-geoserver/redis.
  • Introduces raster-ingestion umbrella chart with dependency wiring and default values for ingestion components.
  • Introduces raster-export umbrella chart with dependency wiring and default values for export components.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
charts/raster-serving/Chart.yaml New umbrella chart definition and dependency list for raster serving stack.
charts/raster-serving/values.yaml Base default values passed into serving subcharts.
charts/raster-ingestion/Chart.yaml New umbrella chart definition and dependency list for raster ingestion stack.
charts/raster-ingestion/values.yaml Base default values passed into ingestion subcharts.
charts/raster-export/Chart.yaml New umbrella chart definition and dependency list for raster export stack.
charts/raster-export/values.yaml Base default values passed into export subcharts.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -0,0 +1,34 @@
apiVersion: v2
name: serving
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chart name ('serving') doesn’t match the chart directory ('raster-serving'). In this repo chart names consistently match their directory (e.g., charts/core-stack/Chart.yaml:2, charts/openshift-routes/Chart.yaml:2). Consider renaming to 'raster-serving' to avoid collisions and keep packaging/release naming consistent.

Suggested change
name: serving
name: raster-serving

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,48 @@
apiVersion: v2
name: ingestion
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chart name ('ingestion') doesn’t match the chart directory ('raster-ingestion'). Other charts in this repo use the directory name as the chart name (e.g., charts/core-stack/Chart.yaml:2). Aligning these avoids confusion and potential name collisions when publishing/consuming charts.

Suggested change
name: ingestion
name: raster-ingestion

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,40 @@
apiVersion: v2
name: export
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chart name ('export') doesn’t match the chart directory ('raster-export'). The repository convention is that chart names match their folder (e.g., charts/tempo/Chart.yaml:2). Consider renaming to 'raster-export' to keep chart identity consistent.

Suggested change
name: export
name: raster-export

Copilot uses AI. Check for mistakes.
Comment on lines +23 to +33
repository: oci://acrarolibotnonprod.azurecr.io/helm

- name: tiles-splitter
version: 1.3.7
condition: tiles-splitter.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm

- name: cache-seeder
version: 2.1.2
condition: cache-seeder.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These dependencies use an OCI repository URL without a domain segment (oci://.../helm). Elsewhere in this repo OCI repos are always namespaced (e.g., oci://.../helm/common, oci://.../helm/infra). If the charts are actually published under a namespaced repo (likely '/helm/raster'), Helm dependency resolution will fail.

Suggested change
repository: oci://acrarolibotnonprod.azurecr.io/helm
- name: tiles-splitter
version: 1.3.7
condition: tiles-splitter.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm
- name: cache-seeder
version: 2.1.2
condition: cache-seeder.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm
repository: oci://acrarolibotnonprod.azurecr.io/helm/raster
- name: tiles-splitter
version: 1.3.7
condition: tiles-splitter.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm/raster
- name: cache-seeder
version: 2.1.2
condition: cache-seeder.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm/raster

Copilot uses AI. Check for mistakes.
- name: exporter-cleanup
version: 3.0.0
condition: exporter-cleanup.enabled
repository: oci://acrarolibotnonprod.azurecr.io/helm
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This dependency uses an OCI repository URL without a namespace segment (oci://.../helm). Other charts in this repo reference namespaced OCI repos (e.g., oci://.../helm/common or /helm/infra). If exporter-cleanup is published under a namespaced repo, Helm won’t be able to fetch it from this URL.

Suggested change
repository: oci://acrarolibotnonprod.azurecr.io/helm
repository: oci://acrarolibotnonprod.azurecr.io/helm/raster

Copilot uses AI. Check for mistakes.
uwsgiExporter:
image:
repository: "timonwong/uwsgi-exporter"
tag: "latest"
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The uwsgi-exporter image tag is set to 'latest'. Pin to a specific version/digest to avoid pulling different images over time.

Suggested change
tag: "latest"
tag: "v1.0.0"

Copilot uses AI. Check for mistakes.
Comment thread charts/raster-serving/values.yaml Outdated
image:
repository: "timonwong/uwsgi-exporter"
tag: "latest"
imagePullPolicy: IfNotPresent
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the 'pycsw-private' section, uwsgiExporter sets imagePullPolicy under uwsgiExporter.image, while the 'pycsw' section uses uwsgiExporter.imagePullPolicy at the uwsgiExporter level. Since both use the same pycsw chart, one of these schemas is likely wrong and will be ignored. Align both to the pycsw chart’s expected values structure so pull policy is applied consistently.

Suggested change
imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent

Copilot uses AI. Check for mistakes.
uwsgiExporter:
image:
repository: "timonwong/uwsgi-exporter"
tag: "latest"
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The uwsgi-exporter image tag is set to 'latest'. Pin this to a specific version/digest so deployments are reproducible and don’t change unexpectedly when the upstream tag moves.

Suggested change
tag: "latest"
tag: "v1.0.0"

Copilot uses AI. Check for mistakes.
Comment thread charts/raster-export/values.yaml Outdated
tls:
enabled: true
useCerts: true
#ask nati
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inline note '#ask nati' isn’t actionable/traceable. Prefer removing it or converting it to a TODO with context (e.g., link to a ticket/issue or a clear explanation of what decision is pending) so it doesn’t get stranded in defaults.

Suggested change
#ask nati
# TODO: Confirm whether this deployment should use the ingress configuration below
# instead of, or in addition to, the route configuration above before enabling it.

Copilot uses AI. Check for mistakes.
Comment on lines +31 to +34
- name: redis
version: 18.5.0
condition: redis.enabled
repository: https://charts.bitnami.com/bitnami
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description says the umbrella chart dependencies point to the OCI registry, but redis is still sourced from the Bitnami HTTP repo here. If the intent is to fully migrate dependencies to OCI, redis should be pushed to ACR and referenced via an oci:// URL (or update the PR description to reflect that redis remains external).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@michalby24 michalby24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. As this umbrella chart that will be deployed using the site-values, there is no need to put the resources values here, put the defaults in the chart and if you need to override it use the site-values repo.
    This apply to all resources in this PR
  2. Avoid using pull policy always
  3. Avoid using tag latest

@@ -0,0 +1,38 @@
apiVersion: v2
name: core
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The chart directory should match the chart name, it is required by our CI and consistent with infra charts.
Apply to all charts in this PR (core, export, serving, ingestion)

Comment thread charts/raster-core/values.yaml Outdated
image:
repository: raster/job-tracker
tag: "v5.0.0"
pullPolicy: Always
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? IfNotPresent is our standard. Apply to all pullPolicy: Always in this PR

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.

4 participants