Skip to content

chore(helm): address remaining Helm chart hardening items #45

@cevheri

Description

@cevheri

Context

PR #44 introduced the Helm chart. Copilot review flagged several non-critical hardening items that were deferred. All CI checks pass and the chart is functional — these are DX and edge-case improvements.

Tasks

  • values.schema.json — expand coverage: Add missing properties (serviceAccount, podSecurityContext, securityContext, imagePullSecrets, tolerations, affinity, topologySpreadConstraints, networkPolicy.*, service.annotations, ingress.hosts/tls, persistence.accessModes/annotations, extraEnv, extraEnvFrom). Improves IDE autocomplete and helm lint --strict validation.

  • secret.yaml — enforce jwtSecret minLength 32: Currently required only checks non-empty. Add a Go template length check or minLength: 32 in values.schema.json to fail-fast on short JWT secrets instead of runtime crash.

  • pdb.yaml — handle minAvailable: 0 truthiness: Replace {{- if .Values.podDisruptionBudget.minAvailable }} with a kindIs / ne nil check so explicit 0 is preserved. Also enforce mutual exclusivity with maxUnavailable.

  • hpa.yaml — guard against SQLite + HPA conflict: When storageProvider=sqlite, either disable HPA rendering with a warning or clamp maxReplicas: 1 to prevent multi-replica SQLite writes.

Priority

Low — none of these are blockers. The chart is production-ready for standard usage patterns.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions