Skip to content

Conversation

@brianredbeard
Copy link

Summary

  • Fix security issues: enforce HTTPS redirects, read-only root filesystem
  • Template container images from values.yaml for easier overrides
  • Fix configuration key naming to match validated patterns operator expectations
  • Clean up unnecessary fields from templates

Changes

Security Improvements

  • Change insecureEdgeTerminationPolicy from Allow to Redirect in both hello-world and config-demo routes (enforces HTTPS)
  • Set readOnlyRootFilesystem: true in config-demo deployment with emptyDir volumes for writable paths

Image Configuration

  • Add image.repository, image.tag, image.pullPolicy to values.yaml for both charts
  • Update deployments to use templated image values: {{ .Values.image.repository }}:{{ .Values.image.tag }}
  • Remove commented #imagePullPolicy lines, now explicit in values

Configuration Fixes

  • Rename localCluster to localClusterDomain in hello-world values.yaml
  • Rename project to argoProject in values-standalone.yaml applications
  • Rename projects to argoProjects in values-standalone.yaml
  • Remove unnecessary creationTimestamp: null from pod template metadata

Affected Charts

  • charts/all/hello-world
  • charts/all/config-demo
  • values-standalone.yaml

Test Plan

  • Run helm template on both charts to verify valid output
  • Deploy to test cluster and verify routes redirect HTTP to HTTPS
  • Verify image can be overridden via values

Fixes #531
Fixes #532
Fixes #533
Fixes #534
Fixes #535
Fixes #536
Fixes #537
Fixes #538
Fixes #539
Fixes #540
Fixes #541
Fixes #542

…alues

The template hello-world-cm.yaml references .Values.global.localClusterDomain
but the values file had the key named localCluster, causing the template
to render with an empty value.
Setting insecureEdgeTerminationPolicy to Allow permits unencrypted HTTP
traffic to the routes. Changing to Redirect forces all HTTP requests
to be redirected to HTTPS, improving security.

Affected routes:
- hello-world
- config-demo
The container already has emptyDir volumes mounted for all writable paths:
- /tmp
- /var/cache/httpd
- /var/run/httpd
- /var/www/html (via configMap)

With these mounts in place, the root filesystem can safely be read-only,
improving container security posture.
- Add image.repository, image.tag, image.pullPolicy to both chart values
- Update deployments to use templated image values
- Remove commented imagePullPolicy, now explicit in values
- Allows image overrides without modifying templates

Affected charts:
- hello-world
- config-demo
Kubernetes auto-populates creationTimestamp. Explicitly setting it to null
in templates is unnecessary and may cause validation warnings.
….yaml

The validated patterns operator expects 'argoProject' not 'project'.
Also rename 'projects' to 'argoProjects' for consistency with values-hub.yaml.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment