incubator-devlake-helm-chart
incubator-devlake-helm-chart copied to clipboard
[Feature Request]: Ability to add an `initContainer` for the MySQL StatefulSet
I am unable to run the MySQL database on the k8s cluster as the mysql
user wherein I set the securityContext
to runAsUser
with ID 999
, as available in the mysql:8
image. Running as root is not an option either, due to security concerns.
This is the log:
2023-10-24 19:36:31+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2023-10-24 19:36:31+00:00 [Note] [Entrypoint]: Initializing database files
mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (OS errno 13 - Permission denied)
2023-10-24T19:36:31.447303Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 22
2023-10-24T19:36:31.448251Z 0 [ERROR] [MY-010460] [Server] --initialize specified but the data directory exists and is not writable. Aborting.
2023-10-24T19:36:31.448255Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2023-10-24T19:36:31.448284Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-10-24T19:36:31.448376Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete
In order to circumvent this, I need to have an initContainer
where I can override the file permissions on /var/lib/mysql
to chmod
it recursively with 999:999
permissions.
This is a request to add the ability to instantiate a new initContainer
for the MySQL DB StatefulSet.
I am unable to run the MySQL database on the k8s cluster as the
mysql
user wherein I set thesecurityContext
torunAsUser
with ID999
, as available in themysql:8
image. Running as root is not an option either, due to security concerns.This is the log:
2023-10-24 19:36:31+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started. 2023-10-24 19:36:31+00:00 [Note] [Entrypoint]: Initializing database files mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (OS errno 13 - Permission denied) 2023-10-24T19:36:31.447303Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 22 2023-10-24T19:36:31.448251Z 0 [ERROR] [MY-010460] [Server] --initialize specified but the data directory exists and is not writable. Aborting. 2023-10-24T19:36:31.448255Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it. 2023-10-24T19:36:31.448284Z 0 [ERROR] [MY-010119] [Server] Aborting 2023-10-24T19:36:31.448376Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete
In order to circumvent this, I need to have an
initContainer
where I can override the file permissions on/var/lib/mysql
tochmod
it recursively with999:999
permissions.This is a request to add the ability to instantiate a new
initContainer
for the MySQL DB StatefulSet.
Hi @cicdguy am I correct assuming that user 999 is mysql
user? If so, it seems that’s an issue to report on MySQL’s image.
In any case, adding the ability to create an initContainer
could be nice. I encourage you to open a pull request adding it to the helm chart.
@JorgeGar Can you assign me to fix it? Facing the same issue.
@JorgeGar Can you assign me to fix it? Facing the same issue.
@ProjectsOfMLee Assigned. Please tag me on the PR too so I can take a closer look.