65 lines
2.1 KiB
YAML
65 lines
2.1 KiB
YAML
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: e2e-test-app-mysql-db-init
|
|
labels:
|
|
component: mysql-db-init
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: mysql-db-init
|
|
spec:
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
- name: mysql-init
|
|
image: mysql:9.1.0
|
|
env:
|
|
- name: MYSQL_ROOT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: e2e-test-app-secrets
|
|
key: mysql.rootPassword
|
|
- name: DB_HOST
|
|
value: {{ .mysql.host }}
|
|
- name: DB_PORT
|
|
value: "{{ .mysql.port }}"
|
|
- name: DB_NAME
|
|
value: {{ .mysql.name }}
|
|
- name: DB_USER
|
|
value: {{ .mysql.user }}
|
|
- name: DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: e2e-test-app-secrets
|
|
key: mysqlPassword
|
|
command: ["/bin/bash", "-c"]
|
|
args:
|
|
- |
|
|
set -e
|
|
echo "Waiting for MySQL to be ready..."
|
|
until mysql -h "${DB_HOST}" -P "${DB_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" -e "SELECT 1" &>/dev/null; do
|
|
echo "MySQL not ready, retrying..."
|
|
sleep 3
|
|
done
|
|
echo "MySQL ready"
|
|
|
|
mysql -h "${DB_HOST}" -P "${DB_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" <<EOF
|
|
CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\`;
|
|
CREATE USER IF NOT EXISTS '${DB_USER}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
|
|
ALTER USER '${DB_USER}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
|
|
GRANT ALL PRIVILEGES ON \`${DB_NAME}\`.* TO '${DB_USER}'@'%';
|
|
FLUSH PRIVILEGES;
|
|
EOF
|
|
|
|
mysql -h "${DB_HOST}" -P "${DB_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" "${DB_NAME}" <<EOF
|
|
CREATE TABLE IF NOT EXISTS e2e_test_data (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
test_key VARCHAR(255) UNIQUE NOT NULL,
|
|
test_value TEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
EOF
|
|
|
|
echo "MySQL initialization complete"
|