## Description Add complete Helm chart for deploying the CV application to Kubernetes. The chart includes all necessary resources for a production-ready deployment with persistent storage and configurable authentication modes. ## Type of Change - [x] `feat` - New feature (minor version bump) ## Breaking Changes - [ ] This is a breaking change (major version bump) **If breaking, describe the migration path:** ## Checklist - [x] Commit messages follow [Conventional Commits](CONTRIBUTING.md#commit-guidelines) - [x] Lint passes (`npm run lint`) - N/A for Helm charts - [x] Build succeeds (`npm run build`) - N/A for Helm charts - [x] Tests pass (`npm run test:run`) - N/A for Helm charts - [ ] API documentation updated (if applicable) ## Testing - `helm lint` passes on the chart - `helm template test-release helm/cv-app/` renders 214 lines of valid Kubernetes manifests - Verified all template helpers function correctly - Tested conditional rendering (persistence enabled/disabled, simple/keycloak auth modes) ## Screenshots (if applicable) N/A ## Related Issues Implements the Helm chart design from `docs/plans/2026-02-23-helm-chart-design.md` Co-authored-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev> Reviewed-on: #1
58 lines
865 B
YAML
58 lines
865 B
YAML
frontend:
|
|
replicaCount: 1
|
|
image:
|
|
repository: username/cv-app
|
|
tag: latest
|
|
pullPolicy: IfNotPresent
|
|
resources: {}
|
|
|
|
backend:
|
|
replicaCount: 1
|
|
image:
|
|
repository: username/cv-app-backend
|
|
tag: latest
|
|
pullPolicy: IfNotPresent
|
|
auth:
|
|
mode: simple
|
|
jwtSecret: ""
|
|
keycloak:
|
|
url: ""
|
|
realm: ""
|
|
clientId: ""
|
|
resources: {}
|
|
|
|
persistence:
|
|
enabled: true
|
|
size: 1Gi
|
|
storageClass: ""
|
|
|
|
ingress:
|
|
enabled: true
|
|
className: ""
|
|
annotations: {}
|
|
hosts:
|
|
- host: cv.local
|
|
paths:
|
|
- path: /api
|
|
service: backend
|
|
- path: /
|
|
service: frontend
|
|
tls: []
|
|
|
|
imagePullSecrets: []
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
serviceAccount:
|
|
create: true
|
|
annotations: {}
|
|
name: ""
|
|
|
|
podAnnotations: {}
|
|
podSecurityContext: {}
|
|
securityContext: {}
|
|
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {}
|