- Change database.username from "hades_user" to "mysql_user" to match the shared MySQL user created by Backstage environment provisioning - Remove mysql.enabled=true condition from dbinit job so SQL migrations run against external/shared MySQL databases too Without these fixes, deploying hades with mysql.enabled=false (Backstage shared MySQL) causes access denied because hades_user doesn't exist in the shared MySQL, and dbinit is skipped so no tables are created. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
203 lines
4.7 KiB
YAML
203 lines
4.7 KiB
YAML
# Default values for hades
|
|
|
|
# Allow non-Bitnami images in MySQL subchart
|
|
global:
|
|
security:
|
|
allowInsecureImages: true
|
|
|
|
replicaCount: 1
|
|
|
|
# Common labels to add to all resources
|
|
# These labels will be applied to all hades resources and MySQL pods
|
|
commonLabels:
|
|
backstage.io/kubernetes-id: "hades-service"
|
|
|
|
image:
|
|
repository: localhost:5001/prj-onlinesales-prod-01/os-docker-images/onlinesales/prod/services/java/hadesv2
|
|
pullPolicy: IfNotPresent
|
|
tag: "1764590200722"
|
|
|
|
imagePullSecrets: []
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
serviceAccount:
|
|
create: true
|
|
annotations: {}
|
|
name: ""
|
|
|
|
podAnnotations: {}
|
|
|
|
podSecurityContext:
|
|
fsGroup: 1000
|
|
|
|
securityContext:
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: false
|
|
runAsNonRoot: false
|
|
runAsUser: 0
|
|
|
|
service:
|
|
type: ClusterIP
|
|
port: 8080
|
|
targetPort: 8080
|
|
annotations: {}
|
|
|
|
# Ingress configuration (DEPRECATED - use httpRoute below instead)
|
|
ingress:
|
|
enabled: false
|
|
className: ""
|
|
annotations: {}
|
|
hosts:
|
|
- host: hades.local
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
tls: []
|
|
|
|
# Gateway API HTTPRoute configuration (modern replacement for Ingress)
|
|
httpRoute:
|
|
enabled: false
|
|
annotations: {}
|
|
# Reference to the Gateway that will handle this route
|
|
parentRefs:
|
|
- name: main-gateway
|
|
namespace: traefik
|
|
sectionName: https
|
|
# Hostnames for this route
|
|
hostnames: []
|
|
# Optional: Custom routing rules (if not specified, defaults to PathPrefix /)
|
|
# rules:
|
|
# - matches:
|
|
# - path:
|
|
# type: PathPrefix
|
|
# value: /
|
|
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 2Gi
|
|
requests:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 1
|
|
maxReplicas: 10
|
|
targetCPUUtilizationPercentage: 80
|
|
targetMemoryUtilizationPercentage: 80
|
|
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /schedulerService/jobTrigger?jsonQuery=%7B%22application%22%3A%22nagios%22%2C%22jobName%22%3A%22monitoring_scheduler_svc%22%7D
|
|
port: http
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 30
|
|
timeoutSeconds: 10
|
|
failureThreshold: 3
|
|
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /schedulerService/jobTrigger?jsonQuery=%7B%22application%22%3A%22nagios%22%2C%22jobName%22%3A%22monitoring_scheduler_svc%22%7D
|
|
port: http
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
|
|
env:
|
|
- name: JAVA_OPTS
|
|
value: "-Djava.security.egd=file:/dev/./urandom -XX:+UnlockExperimentalVMOptions -Xms512m -Xmx2048m -XX:+UseG1GC"
|
|
- name: CATALINA_OPTS
|
|
value: "-Dconfig.path=/app/config"
|
|
- name: TZ
|
|
value: "UTC"
|
|
|
|
# Database configuration
|
|
database:
|
|
# Use internal MySQL (deployed as subchart) or external database
|
|
# If mysql.enabled=true, these values are auto-configured
|
|
host: "" # Will be set to mysql.fullname if mysql.enabled=true
|
|
port: "3306"
|
|
name: "hades_db"
|
|
username: "mysql_user"
|
|
password: "" # Leave empty to auto-generate
|
|
# For external database, set mysql.enabled=false and configure above values
|
|
|
|
# MySQL subchart configuration (WSO2 Helm Chart)
|
|
mysql:
|
|
enabled: true
|
|
image: "mysql"
|
|
imageTag: "8.0"
|
|
mysqlRootPassword: "" # Auto-generated if empty
|
|
mysqlDatabase: "hades_db"
|
|
mysqlUser: "hades_user"
|
|
mysqlPassword: "" # Auto-generated if empty
|
|
fullnameOverride: "hades-mysql-db-service"
|
|
# Pod labels for MySQL pods (used to pass commonLabels to MySQL subchart)
|
|
podLabels: {}
|
|
persistence:
|
|
enabled: true
|
|
size: 8Gi
|
|
resources:
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 1Gi
|
|
requests:
|
|
cpu: 250m
|
|
memory: 512Mi
|
|
livenessProbe:
|
|
initialDelaySeconds: 120
|
|
readinessProbe:
|
|
initialDelaySeconds: 120
|
|
configurationFiles:
|
|
mysql.cnf: |-
|
|
[mysqld]
|
|
max_connections = 200
|
|
character-set-server=utf8mb4
|
|
collation-server=utf8mb4_unicode_ci
|
|
default_authentication_plugin=mysql_native_password
|
|
log-bin-trust-function-creators=1
|
|
|
|
# Database initialization
|
|
# Automatically runs all SQL migration files from sql/ directory in alphabetical order
|
|
dbInit:
|
|
enabled: true
|
|
|
|
# ConfigMap for application configuration files
|
|
config:
|
|
enabled: true
|
|
mountPaths:
|
|
- /etc/onlinesales/config/hades
|
|
# Add your configuration files here
|
|
# files:
|
|
# hades.cfg: |
|
|
# # Hades configuration
|
|
# hibernate.cfg.xml: |
|
|
# <!-- Hibernate configuration -->
|
|
|
|
# Allhosts file configuration
|
|
# When enabled, mounts allhosts.tsv at /var/lib/allhosts.tsv
|
|
allhosts:
|
|
enabled: true
|
|
|
|
# Hibernate configuration options
|
|
# The hibernate.cfg.xml is generated dynamically from these values
|
|
hibernate:
|
|
connectionPoolSize: 10
|
|
showSql: "true"
|
|
|
|
# Tomcat writable directories (emptyDir mounts for non-root pods)
|
|
tomcatWritableDirs:
|
|
enabled: false
|
|
paths: []
|
|
|
|
nodeSelector: {}
|
|
|
|
tolerations: []
|
|
|
|
affinity: {}
|