- infra (k8s, kind, helm, docker) backbone is implemented - security: implementation + unit tests are done
170 lines
3.0 KiB
YAML
170 lines
3.0 KiB
YAML
# Default values for incidentops
|
|
|
|
# Global settings
|
|
global:
|
|
imageRegistry: ""
|
|
imagePullSecrets: []
|
|
|
|
# API Service
|
|
api:
|
|
replicaCount: 2
|
|
image:
|
|
repository: incidentops/api
|
|
tag: latest
|
|
pullPolicy: IfNotPresent
|
|
service:
|
|
type: ClusterIP
|
|
port: 8000
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 2
|
|
maxReplicas: 10
|
|
targetCPUUtilizationPercentage: 80
|
|
podAnnotations: {}
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {}
|
|
|
|
# Worker Service (Celery)
|
|
worker:
|
|
replicaCount: 2
|
|
image:
|
|
repository: incidentops/worker
|
|
tag: latest
|
|
pullPolicy: IfNotPresent
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 2
|
|
maxReplicas: 10
|
|
targetCPUUtilizationPercentage: 80
|
|
queues: "critical,default,low"
|
|
concurrency: 4
|
|
podAnnotations: {}
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {}
|
|
|
|
# Web Frontend (Next.js)
|
|
web:
|
|
replicaCount: 2
|
|
image:
|
|
repository: incidentops/web
|
|
tag: latest
|
|
pullPolicy: IfNotPresent
|
|
service:
|
|
type: ClusterIP
|
|
port: 3000
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 2
|
|
maxReplicas: 10
|
|
targetCPUUtilizationPercentage: 80
|
|
podAnnotations: {}
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {}
|
|
|
|
# Ingress configuration
|
|
ingress:
|
|
enabled: true
|
|
className: nginx
|
|
annotations:
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
|
host: incidentops.local
|
|
tls: []
|
|
# - secretName: incidentops-tls
|
|
# hosts:
|
|
# - incidentops.local
|
|
|
|
# Database migration job
|
|
migration:
|
|
enabled: true
|
|
image:
|
|
repository: incidentops/api
|
|
tag: latest
|
|
pullPolicy: IfNotPresent
|
|
backoffLimit: 3
|
|
|
|
# Application configuration
|
|
config:
|
|
jwtAlgorithm: HS256
|
|
accessTokenExpireMinutes: 30
|
|
refreshTokenExpireDays: 30
|
|
|
|
# Secrets (use external secrets in production)
|
|
secrets:
|
|
jwtSecretKey: "change-me-in-production"
|
|
|
|
# PostgreSQL configuration (using official postgres image)
|
|
postgresql:
|
|
enabled: true
|
|
image:
|
|
repository: postgres
|
|
tag: "16-alpine"
|
|
pullPolicy: IfNotPresent
|
|
auth:
|
|
username: incidentops
|
|
password: incidentops
|
|
database: incidentops
|
|
persistence:
|
|
size: 8Gi
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
|
|
# Redis configuration (using official redis image)
|
|
redis:
|
|
enabled: true
|
|
image:
|
|
repository: redis
|
|
tag: "7-alpine"
|
|
pullPolicy: IfNotPresent
|
|
persistence:
|
|
size: 2Gi
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
|
|
# Service Account
|
|
serviceAccount:
|
|
create: true
|
|
annotations: {}
|
|
name: ""
|
|
|
|
# Pod Security Context
|
|
podSecurityContext:
|
|
fsGroup: 1000
|
|
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|