From dc54a10b518341cd06490a3a6ae19cbd233259dd Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Sat, 20 Jun 2026 06:39:26 +0000 Subject: [PATCH] Adds mysql to e2e test app. --- e2e-test-app/versions/2/kustomization.yaml | 1 + e2e-test-app/versions/2/manifest.yaml | 10 ++- .../versions/2/mysql-db-init-job.yaml | 64 +++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 e2e-test-app/versions/2/mysql-db-init-job.yaml diff --git a/e2e-test-app/versions/2/kustomization.yaml b/e2e-test-app/versions/2/kustomization.yaml index 7ada37d..9595a4c 100644 --- a/e2e-test-app/versions/2/kustomization.yaml +++ b/e2e-test-app/versions/2/kustomization.yaml @@ -13,3 +13,4 @@ resources: - service.yaml - pvc.yaml - db-init-job.yaml + - mysql-db-init-job.yaml diff --git a/e2e-test-app/versions/2/manifest.yaml b/e2e-test-app/versions/2/manifest.yaml index 135cbf9..dbaaa6d 100644 --- a/e2e-test-app/versions/2/manifest.yaml +++ b/e2e-test-app/versions/2/manifest.yaml @@ -1,6 +1,7 @@ -version: 2.0.0 +version: 2.0.0-1 requires: - name: postgres + - name: mysql defaultConfig: namespace: e2e-test-app domain: e2e-test-app.{{ .cloud.domain }} @@ -12,9 +13,16 @@ defaultConfig: port: '{{ .apps.postgres.port }}' name: e2e_test_app user: e2e_test_app + mysql: + host: '{{ .apps.mysql.host }}' + port: '{{ .apps.mysql.port }}' + name: e2e_test_app + user: e2e_test_app defaultSecrets: - key: dbPassword - key: dbUrl default: "postgres://{{ .app.db.user }}:{{ .secrets.dbPassword }}@{{ .app.db.host }}:{{ .app.db.port }}/{{ .app.db.name }}?sslmode=disable" + - key: mysqlPassword requiredSecrets: - postgres.password + - mysql.rootPassword diff --git a/e2e-test-app/versions/2/mysql-db-init-job.yaml b/e2e-test-app/versions/2/mysql-db-init-job.yaml new file mode 100644 index 0000000..953ed88 --- /dev/null +++ b/e2e-test-app/versions/2/mysql-db-init-job.yaml @@ -0,0 +1,64 @@ +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}" <