You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GistPin uses a single Helm chart located at infrastructure/k8s/ with values defined in infrastructure/k8s/values.yaml. Values are validated against a JSON Schema at infrastructure/k8s/helm/gistpin/values.schema.json.
Values Structure
Global
Key
Type
Default
Description
global.imagePullSecrets
array
[]
Secrets for pulling from private registries
global.nameOverride
string
""
Override chart component name
global.fullnameOverride
string
""
Override full resource names
Backend
Key
Type
Default
Description
backend.enabled
boolean
true
Enable backend deployment
backend.image.repository
string
ghcr.io/pinspace-org/gistpin
Container image
backend.image.tag
string
Chart appVersion
Image tag
backend.image.pullPolicy
enum
IfNotPresent
Always, IfNotPresent, Never
backend.replicaCount
integer
2
Number of replicas (1-100)
backend.service.type
enum
ClusterIP
ClusterIP, NodePort, LoadBalancer, ExternalName
backend.service.port
integer
80
Service port
backend.service.targetPort
integer
3000
Container port
Analytics
Same structure as Backend. Default replica count is 1. Service target port is 3001.
Ingress
Key
Type
Default
Description
ingress.enabled
boolean
false
Enable ingress controller
ingress.className
string
nginx
Ingress class name
ingress.hosts
array
—
Virtual host configuration
ingress.tls
array
[]
TLS certificate configuration
PostgreSQL
Key
Type
Default
Description
postgresql.enabled
boolean
true
Enable PostgreSQL sub-chart
postgresql.auth.database
string
gist
Database name
postgresql.auth.username
string
gist
Database user
postgresql.primary.persistence.size
string
10Gi
PVC size
Redis
Key
Type
Default
Description
redis.enabled
boolean
false
Enable Redis sub-chart
redis.architecture
enum
—
standalone or replication
Schema Validation
How Validation Works
Static validation: The schema is validated as valid JSON on every PR/push.
Helm lint: Runs helm lint --strict against the chart with environment-specific values.
ajv validation: Uses the AJV JSON Schema validator to check values against the schema.
Environment validation: Validates values for dev, staging, and production environments.
Required Fields
The schema enforces these top-level fields as required:
global
backend
analytics
ingress
postgresql
serviceAccount
Enum Constraints
Field
Allowed Values
env
dev, staging, production
image.pullPolicy
Always, IfNotPresent, Never
service.type
ClusterIP, NodePort, LoadBalancer, ExternalName
ingress.hosts[].paths[].pathType
Prefix, Exact, ImplementationSpecific
redis.architecture
standalone, replication
Type Validation Rules
replicaCount: integer, minimum 1, maximum 100
Ports: integer, range 1–65535
CPU resources: string matching ^[0-9]+m?$ (e.g., 100m, 1)