[planr-tools] UNSOI-3673: Add helm charts for Plan.R tools#267
[planr-tools] UNSOI-3673: Add helm charts for Plan.R tools#267paulwellnerbou wants to merge 20 commits intosubshell:mainfrom
Conversation
DanielRaapDev
left a comment
There was a problem hiding this comment.
Looks pretty good. See the comments for some fine-tuning.
There was a problem hiding this comment.
Pull request overview
Adds a new planr-tools Helm chart to deploy the three Plan.R “newsroom” applications (document creator, feed, widget) together with shared path-based external routing via either Kubernetes Ingress (nginx) or Gateway API HTTPRoute.
Changes:
- Introduces a complete Helm chart (
Chart.yaml,values.yaml, templates) rendering 3 Deployments/Services/ConfigMaps plus optional Ingress/HTTPRoute. - Adds helm-unittest suites for Deployment and HTTPRoute rendering, plus example/test values files.
- Documents chart usage (
README.md) and includes an internal review checklist (REVIEW.md).
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| charts/planr-tools/Chart.yaml | New chart metadata for planr-tools. |
| charts/planr-tools/values.yaml | Default values for 3 apps, shared probes/env, ingress/httproute toggles, and per-app config. |
| charts/planr-tools/templates/_helpers.tpl | Naming/label helpers plus config rendering + checksum helper. |
| charts/planr-tools/templates/deployment.yaml | Renders one Deployment per enabled app with probes, config mount, checksum annotation. |
| charts/planr-tools/templates/service.yaml | Renders one Service per enabled app. |
| charts/planr-tools/templates/configmap.yaml | Renders one ConfigMap per enabled app with templated application.yml. |
| charts/planr-tools/templates/ingress.yaml | Optional nginx Ingress with regex + rewrite for path-based routing across apps. |
| charts/planr-tools/templates/httproute.yaml | Optional Gateway API HTTPRoute for path-based routing across apps. |
| charts/planr-tools/templates/serviceaccount.yaml | Optional ServiceAccount resource. |
| charts/planr-tools/tests/deployment_test.yaml | Unit tests for Deployment count, naming, ports, probes, config mount, checksum presence. |
| charts/planr-tools/tests/httproute_test.yaml | Unit tests for HTTPRoute existence + backendRefs. |
| charts/planr-tools/tests/values/httproute.yaml | Values fixture for HTTPRoute test. |
| charts/planr-tools/test-values-ingress.yaml | Example values for deploying with Ingress. |
| charts/planr-tools/test-values-httproute.yaml | Example values for deploying with HTTPRoute. |
| charts/planr-tools/README.md | Basic chart description + example values. |
| charts/planr-tools/REVIEW.md | Internal review notes/checklist for the initial chart. |
| charts/planr-tools/.helmignore | Standard helm ignore patterns. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ite filter Add a URLRewrite/ReplacePrefixMatch filter per rule so that apps receive requests at their own root path, consistent with the nginx ingress rewrite. The filter is omitted for widget's catch-all path /.
Co-authored-by: Daniel Raap <raap@subshell.com>
Declare the ordered application key list once via planr-tools.appKeys helper and use it in all five templates via fromYaml, removing the duplication.
…ressClassName check
….yaml pathType is hardcoded to ImplementationSpecific in the template since the nginx regex rewrite requires it and it cannot be made configurable.
…oller requirements in README
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…of null Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ication.yml Use planr-tools.render instead of toYaml so the checksum reflects the fully templated config, ensuring pod restarts when referenced Helm values change.
…e tests with path assertions
| - deployment.yaml | ||
| chart: | ||
| version: 0.1.0 | ||
| appVersion: 6.0.0-SNAPSHOT |
There was a problem hiding this comment.
In other charts we don't use SNAPSHOT versions. I suggest to set the latest release version
| description: A Helm chart for deploying the planr-tools applications | ||
| type: application | ||
| version: 0.1.0 | ||
| appVersion: "6.0.0-SNAPSHOT" |
There was a problem hiding this comment.
In other charts we don't use SNAPSHOT versions. I suggest to set the latest release version
| - ingress.yaml | ||
| chart: | ||
| version: 0.1.0 | ||
| appVersion: 6.0.0-SNAPSHOT |
There was a problem hiding this comment.
In other charts we don't use SNAPSHOT versions. I suggest to set the latest release version
| - httproute.yaml | ||
| chart: | ||
| version: 0.1.0 | ||
| appVersion: 6.0.0-SNAPSHOT |
There was a problem hiding this comment.
In other charts we don't use SNAPSHOT versions. I suggest to set the latest release version
The helm charts for Plan.R tools will deploy all three pods behind one ingress:
newsroom-document-creator(reachable under<ingress>/document-creator)newsroom-feed(reachable under<ingress>/feed)newsroom-widget(reachable under<ingress>/)