This commit is contained in:
thaoduc
2025-10-08 13:57:16 +07:00
parent 8c4abba1ac
commit 7e8b1e4ad6
17 changed files with 1609 additions and 0 deletions

206
lbl-01/values-example.yaml Normal file
View File

@@ -0,0 +1,206 @@
# Example values for Label Studio Helm Chart
# Copy this file to my-values.yaml and customize as needed
# Global configuration
global:
image:
repository: heartexlabs/label-studio
pullPolicy: IfNotPresent
tag: "latest" # Use specific version in production
# PostgreSQL Database Configuration
pgConfig:
host: "postgresql.default.svc.cluster.local"
port: 5432
dbName: "labelstudio"
userName: "labelstudio"
password:
secretName: "postgresql-secret"
secretKey: "password"
# Redis Configuration
redisConfig:
host: "redis://redis.default.svc.cluster.local:6379/1"
password:
secretName: "redis-secret"
secretKey: "password"
# Extra Environment Variables
extraEnvironmentVars:
PYTHONUNBUFFERED: "1"
DEBUG: "false"
LOG_LEVEL: "INFO"
# Persistence Configuration
persistence:
enabled: true
type: volume
config:
volume:
storageClass: "gp2" # Change to your storage class
size: 50Gi
accessModes:
- ReadWriteOnce
# Deployment Configuration
replicaCount: 2
# Service Configuration
service:
type: ClusterIP
port: 8080
targetPort: 8080
# Ingress Configuration
ingress:
enabled: true
className: "nginx"
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "200m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
hosts:
- host: label-studio.yourdomain.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: label-studio-tls
hosts:
- label-studio.yourdomain.com
# Resource Configuration
resources:
limits:
cpu: 2000m
memory: 4Gi
requests:
cpu: 1000m
memory: 2Gi
# Health Checks
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 120
periodSeconds: 30
timeoutSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
# Autoscaling
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70
targetMemoryUtilizationPercentage: 80
# Environment Variables
env:
# Database settings (will be overridden by global.pgConfig if set)
DJANGO_DB: "default"
POSTGRE_NAME: "labelstudio"
POSTGRE_USER: "labelstudio"
POSTGRE_PORT: "5432"
POSTGRE_HOST: "postgresql.default.svc.cluster.local"
# Redis settings (will be overridden by global.redisConfig if set)
REDIS_LOCATION: "redis://redis.default.svc.cluster.local:6379/1"
# Label Studio specific settings
LABEL_STUDIO_HOST: "https://label-studio.yourdomain.com"
LABEL_STUDIO_USERNAME: "admin@yourdomain.com"
LABEL_STUDIO_PASSWORD: "change-this-password"
# Storage settings
ENABLE_LOCAL_FILES_ACCESS: "true"
LOCAL_FILES_SERVING_ENABLED: "true"
# Security settings
SSRF_PROTECTION_ENABLED: "true"
# Feature flags
FEATURE_FLAGS_DEFAULT_VALUE: "false"
# Node Selection
nodeSelector: {}
# kubernetes.io/arch: amd64
# Tolerations
tolerations: []
# - key: "key1"
# operator: "Equal"
# value: "value1"
# effect: "NoSchedule"
# Affinity
affinity: {}
# podAntiAffinity:
# preferredDuringSchedulingIgnoredDuringExecution:
# - weight: 100
# podAffinityTerm:
# labelSelector:
# matchExpressions:
# - key: app.kubernetes.io/name
# operator: In
# values:
# - label-studio
# topologyKey: kubernetes.io/hostname
# Additional volumes
volumes: []
# - name: custom-config
# configMap:
# name: label-studio-config
# Additional volume mounts
volumeMounts: []
# - name: custom-config
# mountPath: /app/config
# readOnly: true
# Service Account
serviceAccount:
create: true
automount: true
annotations: {}
name: ""
# Pod Security Context
podSecurityContext:
fsGroup: 1001
# Security Context
securityContext:
runAsNonRoot: true
runAsUser: 1001
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
# ConfigMap for additional configuration
configMap:
create: true
data:
# Add any additional configuration files here
# custom.conf: |
# # Custom configuration
# Secrets for sensitive data
secrets:
create: true
data:
# Add any additional secrets here
# api-key: "your-api-key"