The values.yaml database.username has no effect when Backstage deploys
with mysql.enabled=false — Backstage passes the username from the UI.
The shared MySQL init SQL needs to create hades_user separately.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 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>
HadesV3 reads config from hardcoded path /etc/onlinesales/config/hadesV2/
but chart only mounted at /etc/onlinesales/config/hades/. App fell back
to image defaults with is_app_ip_enabled=true.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Set is_app_ip_enabled to false so hades endpoints are accessible
without IP whitelist restrictions in test environments.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
App expects separate read/write hibernate configs at
/etc/onlinesales/db/hadesV2/. Added both files in values-local.yaml
with templated DB creds. Changed configmap to use tpl for rendering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Test-framework pods need write access to Tomcat dirs like webapps,
conf/Catalina, work. Running as root (user 0) permanently fixes this.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hadesV3 runs as non-root user (1000) and can't write to Tomcat dirs.
Added tomcatWritableDirs config to mount emptyDir volumes at paths
like /usr/local/tomcat/conf/Catalina and /usr/local/tomcat/work.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When mysql.enabled=false (external DB), data already exists.
Running migrations would be destructive, so dbinit now only
runs when internal MySQL subchart is enabled.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root user doesn't have access on external DB. Now uses the same
database username helper as the main deployment.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
App looks for config at /etc/onlinesales/db/hadesV2/ but was only
mounted at /etc/onlinesales/config/hades/. Now mountPaths is a list
in values.yaml so both paths can be served.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
INSERT IGNORE without column names fails when extra columns
(alias, is_deleted) are added by hadesv2-auth schema migration.
Specifying columns makes the dump idempotent.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- MySQL 5.7 does not support CREATE TRIGGER IF NOT EXISTS
- Add DROP TRIGGER IF EXISTS before each CREATE TRIGGER in 004_hades.sql (69 triggers) and 002_dump.sql (90 triggers)
- DROP TRIGGER only removes trigger definition, does not affect table data
- Fixes ERROR 1359 (Trigger already exists) when dbinit Job runs multiple times
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove all DROP TABLE IF EXISTS statements from 004_hades.sql and 002_dump.sql
- Change CREATE TABLE to CREATE TABLE IF NOT EXISTS
- Change INSERT INTO to INSERT IGNORE INTO for seed data
- Prevents app_contexts table wipe when ArgoCD re-syncs trigger duplicate dbinit Job runs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Changed mysqlDatabase from "hadesdb" to "hades_db" to match what the
migration scripts expect. The 004_hades.sql migration references
hades_db database.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Enable ingress resource creation via Helm values instead of
workflow-created manifests. Supports configurable host, className,
annotations, and TLS settings.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>