PVC name is now immutable — hardcoded in all 4 deployment templates instead of being a configurable Helm value. Removed pvcName from values.yaml and --set pvcName from deploy.sh. This ensures the PVC can never be renamed or deleted by Helm operations, only manually via kubectl.
204 lines
3.9 KiB
YAML
204 lines
3.9 KiB
YAML
# Global image registry and tag
|
|
imageRegistry: ""
|
|
imageTag: ""
|
|
|
|
# External ConfigMap (managed outside Helm)
|
|
configMapName: "app-env"
|
|
|
|
# Service definitions
|
|
services:
|
|
app:
|
|
repository: app
|
|
port: 3000
|
|
replicaCount: 2
|
|
autoscaling:
|
|
enabled: true
|
|
minReplicas: 2
|
|
maxReplicas: 10
|
|
targetCPUUtilization: 80
|
|
command:
|
|
- "app"
|
|
- "--bind"
|
|
- "0.0.0.0:3000"
|
|
resources:
|
|
requests:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: "1"
|
|
memory: 512Mi
|
|
volumeMounts:
|
|
- name: shared-data
|
|
mountPath: /data/repos
|
|
subPath: repos
|
|
- name: shared-data
|
|
mountPath: /data/avatars
|
|
subPath: avatars
|
|
- name: shared-data
|
|
mountPath: /data/files
|
|
subPath: files
|
|
|
|
email_worker:
|
|
repository: email-worker
|
|
port: 8084
|
|
replicaCount: 1
|
|
autoscaling:
|
|
enabled: false # email must stay at 1 replica
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
|
|
git_hook:
|
|
repository: git-hook
|
|
port: 8083
|
|
replicaCount: 1
|
|
autoscaling:
|
|
enabled: true
|
|
minReplicas: 1
|
|
maxReplicas: 5
|
|
targetCPUUtilization: 80
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
volumeMounts:
|
|
- name: shared-data
|
|
mountPath: /data/repos
|
|
subPath: repos
|
|
|
|
gitserver:
|
|
repository: gitserver
|
|
ports:
|
|
http: 8021
|
|
ssh: 2222
|
|
replicaCount: 1
|
|
autoscaling:
|
|
enabled: true
|
|
minReplicas: 1
|
|
maxReplicas: 5
|
|
targetCPUUtilization: 80
|
|
# SSH port must match the containerPort
|
|
extraEnv:
|
|
APP_SSH_PORT: "2222"
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
volumeMounts:
|
|
- name: shared-data
|
|
mountPath: /data/repos
|
|
subPath: repos
|
|
|
|
metrics_aggregator:
|
|
repository: metrics-aggregator
|
|
port: 9090
|
|
replicaCount: 1
|
|
autoscaling:
|
|
enabled: true
|
|
minReplicas: 1
|
|
maxReplicas: 5
|
|
targetCPUUtilization: 80
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
|
|
static_server:
|
|
repository: static-server
|
|
port: 8081
|
|
replicaCount: 1
|
|
autoscaling:
|
|
enabled: true
|
|
minReplicas: 1
|
|
maxReplicas: 5
|
|
targetCPUUtilization: 80
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 128Mi
|
|
volumeMounts:
|
|
- name: shared-data
|
|
mountPath: /data
|
|
subPath: static
|
|
|
|
# Gingress controller configuration
|
|
gingress:
|
|
namespace: "app"
|
|
repository: gingress
|
|
replicaCount: 2
|
|
httpPort: 80
|
|
httpsPort: 443
|
|
logLevel: "info"
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
|
|
# Ingress — handled by gingress controller
|
|
ingress:
|
|
enabled: true
|
|
className: "gingress"
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: "cloudflare-acme-cluster-issuer"
|
|
gingress.io/git-backend: "deploy-gitserver:8021"
|
|
hosts:
|
|
- host: gitdata.ai
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
serviceName: app
|
|
servicePort: 3000
|
|
- host: static.gitdata.ai
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
serviceName: static_server
|
|
servicePort: 8081
|
|
tls:
|
|
- secretName: gitdata-ai-tls
|
|
hosts:
|
|
- gitdata.ai
|
|
- static.gitdata.ai
|
|
|
|
imagePullSecrets: []
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
serviceAccount:
|
|
create: true
|
|
automount: true
|
|
annotations: {}
|
|
name: ""
|
|
|
|
podSecurityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
|
|
securityContext:
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: false
|
|
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {} |