186 lines
3.1 KiB
Plaintext
186 lines
3.1 KiB
Plaintext
# Global values shared with subcharts
|
|
global:
|
|
imageRegistry: docker.io
|
|
imagePullSecrets: []
|
|
storageClass: ""
|
|
|
|
# Image configuration
|
|
image:
|
|
registry: docker.io
|
|
repository: myapp/web
|
|
tag: "" # Defaults to .Chart.AppVersion
|
|
pullPolicy: IfNotPresent
|
|
|
|
# Override chart name
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
# Number of replicas
|
|
replicaCount: 3
|
|
revisionHistoryLimit: 10
|
|
|
|
# ServiceAccount
|
|
serviceAccount:
|
|
create: true
|
|
annotations: {}
|
|
name: ""
|
|
|
|
# Pod annotations
|
|
podAnnotations:
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "9090"
|
|
prometheus.io/path: "/metrics"
|
|
|
|
# Pod security context
|
|
podSecurityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
fsGroup: 1000
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
|
|
# Container security context
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
|
|
# Service configuration
|
|
service:
|
|
type: ClusterIP
|
|
port: 80
|
|
targetPort: http
|
|
annotations: {}
|
|
sessionAffinity: None
|
|
|
|
# Ingress configuration
|
|
ingress:
|
|
enabled: false
|
|
className: nginx
|
|
annotations: {}
|
|
hosts:
|
|
- host: app.example.com
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
tls: []
|
|
|
|
# Resources
|
|
resources:
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
requests:
|
|
cpu: 250m
|
|
memory: 256Mi
|
|
|
|
# Liveness probe
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /health/live
|
|
port: http
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
|
|
# Readiness probe
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /health/ready
|
|
port: http
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 5
|
|
|
|
# Autoscaling
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 2
|
|
maxReplicas: 10
|
|
targetCPUUtilizationPercentage: 80
|
|
targetMemoryUtilizationPercentage: 80
|
|
|
|
# Pod Disruption Budget
|
|
podDisruptionBudget:
|
|
enabled: true
|
|
minAvailable: 1
|
|
|
|
# Node selection
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity:
|
|
podAntiAffinity:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 100
|
|
podAffinityTerm:
|
|
labelSelector:
|
|
matchExpressions:
|
|
- key: app.kubernetes.io/name
|
|
operator: In
|
|
values:
|
|
- '{{ include "my-app.name" . }}'
|
|
topologyKey: kubernetes.io/hostname
|
|
|
|
# Environment variables
|
|
env: []
|
|
# - name: LOG_LEVEL
|
|
# value: "info"
|
|
|
|
# ConfigMap data
|
|
configMap:
|
|
enabled: true
|
|
data: {}
|
|
# APP_MODE: production
|
|
# DATABASE_HOST: postgres.example.com
|
|
|
|
# Secrets (use external secret management in production)
|
|
secrets:
|
|
enabled: false
|
|
data: {}
|
|
|
|
# Persistent Volume
|
|
persistence:
|
|
enabled: false
|
|
storageClass: ""
|
|
accessMode: ReadWriteOnce
|
|
size: 10Gi
|
|
annotations: {}
|
|
|
|
# PostgreSQL dependency
|
|
postgresql:
|
|
enabled: false
|
|
auth:
|
|
database: myapp
|
|
username: myapp
|
|
password: changeme
|
|
primary:
|
|
persistence:
|
|
enabled: true
|
|
size: 10Gi
|
|
|
|
# Redis dependency
|
|
redis:
|
|
enabled: false
|
|
auth:
|
|
enabled: false
|
|
master:
|
|
persistence:
|
|
enabled: false
|
|
|
|
# ServiceMonitor for Prometheus Operator
|
|
serviceMonitor:
|
|
enabled: false
|
|
interval: 30s
|
|
scrapeTimeout: 10s
|
|
labels: {}
|
|
|
|
# Network Policy
|
|
networkPolicy:
|
|
enabled: false
|
|
policyTypes:
|
|
- Ingress
|
|
- Egress
|
|
ingress: []
|
|
egress: []
|