gitdataai/chart/app/values.yaml
zhenyi dbb9e2a1e1 feat(chart): add web frontend, external ConfigMap, SSH secret; fix probes and container names
- Add web Deployment/Service with nginx SPA on port 80
- Remove env generation from chart, use external ConfigMap (configMap.create=false)
- Add SSH host key Secret injection for gitpod (/etc/ssh)
- Fix ServiceMonitor to scrape /metrics uniformly for all services
- Fix container names to be service-specific (gitdata/gitpod/gitsync/email/web)
- Parameterize PVC claimName and data mountPath
- Fix Ingress routing: / -> web, /api /socket.io -> gitdata
- Add web to HPA/PDB support lists
2026-06-01 22:36:39 +08:00

417 lines
6.7 KiB
YAML

global:
image:
registry: "harbor.gitdata.me/app"
pullPolicy: IfNotPresent
tag: "latest"
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
namespace: "gitdataai"
serviceAccount:
create: true
annotations: {}
name: ""
configMap:
create: false
name: gitdataai
persistence:
data:
claimName: app-data-pvc
mountPath: /data
gitdata:
enabled: true
replicaCount: 1
image:
name: gitdata-gitdata
registry: ""
tag: ""
service:
type: ClusterIP
port: 8080
annotations: {}
resources:
requests:
cpu: 250m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
startupProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 30
livenessProbe:
httpGet:
path: /metrics
port: http
periodSeconds: 15
readinessProbe:
httpGet:
path: /metrics
port: http
periodSeconds: 10
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
prometheus.io/path: "/metrics"
podSecurityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
securityContext:
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
nodeSelector: {}
tolerations: []
affinity: {}
volumes: []
volumeMounts: []
gitpod:
enabled: true
replicaCount: 1
image:
name: gitdata-gitpod
registry: ""
tag: ""
service:
type: ClusterIP
port: 8080
annotations: {}
sshService:
type: LoadBalancer
port: 2222
annotations: {}
rpcService:
type: ClusterIP
port: 50051
annotations: {}
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 2000m
memory: 2Gi
startupProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 30
livenessProbe:
httpGet:
path: /health
port: http
periodSeconds: 20
readinessProbe:
httpGet:
path: /health
port: http
periodSeconds: 15
podAnnotations: {}
podSecurityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
securityContext:
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
nodeSelector: {}
tolerations: []
affinity: {}
# -- SSH host key secret mounted to /etc/ssh.
sshHostKeySecret: gitpod-ssh-host-keys
# -- Data volumes (repos storage)
volumes: []
volumeMounts: []
gitsync:
enabled: true
replicaCount: 1
image:
name: gitdata-gitsync
registry: ""
tag: ""
service:
type: ClusterIP
port: 8081
annotations: {}
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
startupProbe:
httpGet:
path: /health
port: health
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 30
livenessProbe:
httpGet:
path: /health
port: health
periodSeconds: 30
readinessProbe:
httpGet:
path: /health
port: health
periodSeconds: 15
podAnnotations: {}
podSecurityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
securityContext:
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
nodeSelector: {}
tolerations: []
affinity: {}
volumes: []
volumeMounts: []
email:
enabled: true
replicaCount: 1
image:
name: gitdata-email
registry: ""
tag: ""
service:
enabled: false
type: ClusterIP
port: 8083
annotations: {}
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
startupProbe:
httpGet:
path: /health
port: health
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 30
livenessProbe:
httpGet:
path: /health
port: health
periodSeconds: 30
readinessProbe:
httpGet:
path: /health
port: health
periodSeconds: 15
podAnnotations: {}
podSecurityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
securityContext:
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
nodeSelector: {}
tolerations: []
affinity: {}
volumes: []
volumeMounts: []
web:
enabled: true
replicaCount: 1
image:
name: gitdata-web
registry: ""
tag: ""
service:
type: ClusterIP
port: 80
annotations: {}
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
startupProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 30
livenessProbe:
httpGet:
path: /health
port: http
periodSeconds: 30
readinessProbe:
httpGet:
path: /health
port: http
periodSeconds: 15
podAnnotations: {}
podSecurityContext:
runAsNonRoot: true
runAsUser: 101
fsGroup: 101
securityContext:
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
nodeSelector: {}
tolerations: []
affinity: {}
volumes: []
volumeMounts: []
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/cluster-issuer: "cloudflare-acme-cluster-issuer"
api:
hosts:
- host: dev.gitdata.ai
paths:
- path: /api
pathType: Prefix
- path: /socket.io
pathType: Prefix
tls:
- hosts:
- dev.gitdata.ai
secretName: dev-gitdata-ai-tls
git:
hosts:
- host: gitdev.gitdata.ai
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- gitdev.gitdata.ai
secretName: gitdev-gitdata-ai-tls
serviceMonitor:
enabled: false
interval: 30s
labels: {}
annotations: {}
services:
gitdata: true
gitpod: true
gitsync: true
email: true
autoscaling:
gitdata:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: ""
gitpod:
enabled: false
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 75
targetMemoryUtilizationPercentage: ""
gitsync:
enabled: false
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: ""
email:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: ""
web:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: ""
podDisruptionBudget:
enabled: false
gitdata:
minAvailable: 1
gitpod:
minAvailable: 1
gitsync:
minAvailable: ""
email:
minAvailable: ""
web:
minAvailable: ""