Skip to content

Fix: Replace bitnami/mysql with groundhog2k/mysql (official Docker image)#44

Closed
rossigee wants to merge 8 commits into
traccar:mainfrom
rossigee:fix/bump-mysql-chart-version
Closed

Fix: Replace bitnami/mysql with groundhog2k/mysql (official Docker image)#44
rossigee wants to merge 8 commits into
traccar:mainfrom
rossigee:fix/bump-mysql-chart-version

Conversation

@rossigee

Copy link
Copy Markdown
Contributor

Summary

  • Replaces deprecated bitnami/mysql chart (image 8.0.32-debian-11-r0 no longer available on Docker Hub) with groundhog2k/mysql chart which uses the official MySQL Docker image
  • Updates CI value files to use groundhog2k chart's value schema (userDatabase, settings, storage)
  • Adds allowPublicKeyRetrieval=true to JDBC URL for MySQL 8.x caching_sha2_password auth compatibility
  • Updates ct.yaml chart repo reference accordingly

Fixes #42

Test plan

  • helm lint passes for all 3 CI value files
  • helm template renders correctly for all 3 CI scenarios
  • CI lint-and-test workflow passes

rossigee added 6 commits May 30, 2026 13:35
Old MySQL 8.0.x image tags were removed from Docker Hub, breaking CI.
Upgrading to mysql chart 12.3.5 which ships MySQL 8.4 LTS with current
image tags. Also set resourcesPreset=nano in CI values so the primary
pod fits within the kind cluster resource constraints.
Bitnami has stopped publishing free runtime images to docker.io/bitnami/*.
This affects all bitnami/mysql chart versions - even bumping to 12.3.5
(MySQL 8.4 LTS) fails because docker.io/bitnami/mysql:<tag> is not found.

Switch the mysql subchart dependency to groundhog2k/mysql 3.1.0, which
wraps the official docker.io/mysql image (Docker Official Image, freely
available). Pin CI to MySQL 8.4 LTS via image.tag override. No change
to the database engine or user-visible chart behaviour.

Template changes:
- secret.yaml: mysql.auth.* -> mysql.userDatabase.*.value
- configmap.yaml: mysql.auth.database -> mysql.userDatabase.name.value
- JDBC URL: add allowPublicKeyRetrieval=true (required for MySQL 8.4
  caching_sha2_password auth when useSSL=false)

Verified: ct install passes with docker.io/mysql:8.4, Traccar connects
and runs all 45 Liquibase migrations successfully.
MySQL 8.4 first-boot initialization takes ~10min in kind. The default
startup probe (30 failures x 10s) killed it before it could start,
causing an infinite restart loop.
MySQL 8.4 creates its socket at /var/lib/mysql/mysql.sock because the
groundhog2k chart mounts an emptyDir over /etc/mysql/conf.d/, hiding
the Docker image's default config that sets the socket path. The
mysqladmin-based probes look for /var/run/mysqld/mysqld.sock and always
fail, causing an infinite restart loop despite MySQL being healthy.

TCP checks on port 3306 work regardless of socket path.
@rossigee
rossigee marked this pull request as ready for review May 30, 2026 09:03
Comment thread charts/traccar/ci/default-values.yaml
The groundhog2k/mysql chart defaults to mysqladmin-based probes which
fail with the official MySQL image. Baking TCP probe overrides and the
image tag into values.yaml means the chart works correctly out of the
box, and CI values files no longer need to re-specify them.
@rossigee rossigee closed this Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI tests failing due to missing mysql image

2 participants