65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: writefreely-db-init
|
|
labels:
|
|
component: db-init
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: db-init
|
|
spec:
|
|
restartPolicy: OnFailure
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 999
|
|
runAsGroup: 999
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
containers:
|
|
- name: mysql-init
|
|
image: mysql:9.1.0
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: false
|
|
env:
|
|
- name: MYSQL_ROOT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: writefreely-secrets
|
|
key: mysql.rootPassword
|
|
- name: DB_HOSTNAME
|
|
value: {{ .db.host }}
|
|
- name: DB_PORT
|
|
value: "{{ .db.port }}"
|
|
- name: DB_DATABASE_NAME
|
|
value: {{ .db.name }}
|
|
- name: DB_USERNAME
|
|
value: {{ .db.user }}
|
|
- name: DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: writefreely-secrets
|
|
key: dbPassword
|
|
command:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
set -e
|
|
until mysql -h ${DB_HOSTNAME} -P ${DB_PORT} -u root -p${MYSQL_ROOT_PASSWORD} -e "SELECT 1" 2>/dev/null; do
|
|
echo "Waiting for MySQL..."
|
|
sleep 2
|
|
done
|
|
mysql -h ${DB_HOSTNAME} -P ${DB_PORT} -u root -p${MYSQL_ROOT_PASSWORD} <<EOF
|
|
CREATE DATABASE IF NOT EXISTS ${DB_DATABASE_NAME};
|
|
CREATE USER IF NOT EXISTS '${DB_USERNAME}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
|
|
ALTER USER '${DB_USERNAME}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
|
|
GRANT ALL PRIVILEGES ON ${DB_DATABASE_NAME}.* TO '${DB_USERNAME}'@'%';
|
|
FLUSH PRIVILEGES;
|
|
EOF
|
|
echo "Done"
|