feat: add raster-serving umbrella chart for helm Template migration(MAPCO-10333)#59
feat: add raster-serving umbrella chart for helm Template migration(MAPCO-10333)#59roicohen326 wants to merge 8 commits into
Conversation
There was a problem hiding this comment.
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-servingumbrella chart with 5 dependencies and default values for pycsw/pycsw-private/mapproxy/pp-geoserver/redis. - Introduces
raster-ingestionumbrella chart with dependency wiring and default values for ingestion components. - Introduces
raster-exportumbrella 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 | |||
There was a problem hiding this comment.
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.
| name: serving | |
| name: raster-serving |
| @@ -0,0 +1,48 @@ | |||
| apiVersion: v2 | |||
| name: ingestion | |||
There was a problem hiding this comment.
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.
| name: ingestion | |
| name: raster-ingestion |
| @@ -0,0 +1,40 @@ | |||
| apiVersion: v2 | |||
| name: export | |||
There was a problem hiding this comment.
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.
| name: export | |
| name: raster-export |
| 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 |
There was a problem hiding this comment.
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.
| 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 |
| - name: exporter-cleanup | ||
| version: 3.0.0 | ||
| condition: exporter-cleanup.enabled | ||
| repository: oci://acrarolibotnonprod.azurecr.io/helm |
There was a problem hiding this comment.
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.
| repository: oci://acrarolibotnonprod.azurecr.io/helm | |
| repository: oci://acrarolibotnonprod.azurecr.io/helm/raster |
| uwsgiExporter: | ||
| image: | ||
| repository: "timonwong/uwsgi-exporter" | ||
| tag: "latest" |
There was a problem hiding this comment.
The uwsgi-exporter image tag is set to 'latest'. Pin to a specific version/digest to avoid pulling different images over time.
| tag: "latest" | |
| tag: "v1.0.0" |
| image: | ||
| repository: "timonwong/uwsgi-exporter" | ||
| tag: "latest" | ||
| imagePullPolicy: IfNotPresent |
There was a problem hiding this comment.
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.
| imagePullPolicy: IfNotPresent | |
| imagePullPolicy: IfNotPresent |
| uwsgiExporter: | ||
| image: | ||
| repository: "timonwong/uwsgi-exporter" | ||
| tag: "latest" |
There was a problem hiding this comment.
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.
| tag: "latest" | |
| tag: "v1.0.0" |
| tls: | ||
| enabled: true | ||
| useCerts: true | ||
| #ask nati |
There was a problem hiding this comment.
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.
| #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. |
| - name: redis | ||
| version: 18.5.0 | ||
| condition: redis.enabled | ||
| repository: https://charts.bitnami.com/bitnami |
There was a problem hiding this comment.
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).
michalby24
left a comment
There was a problem hiding this comment.
- 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 - Avoid using pull policy always
- Avoid using tag latest
| @@ -0,0 +1,38 @@ | |||
| apiVersion: v2 | |||
| name: core | |||
There was a problem hiding this comment.
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)
| image: | ||
| repository: raster/job-tracker | ||
| tag: "v5.0.0" | ||
| pullPolicy: Always |
There was a problem hiding this comment.
Why? IfNotPresent is our standard. Apply to all pullPolicy: Always in this PR
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>.enabledcondition pattern (matchingcore-stack,cloudnative-postgresconventions)values.yaml— Base defaults (static/logic values only). Environment-specific values (OPA URLs, hostnames, TLS certs, extraVolumes, redis password) are stripped and belong insite-valuesSub-charts
Values marked with
# FLAGValues marked with
# FLAGare 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.