#!/bin/bash set -euo pipefail _kubectl() { if command -v kubectl >/dev/null 2>&1; then command kubectl "$@" elif command -v k0s >/dev/null 2>&1; then k0s kubectl "$@" else echo "ERROR: no kubectl or k0s binary found on host" >&2; exit 127 fi } NAMESPACE="{{ taskserv.namespace }}" COMPONENT="{{ taskserv.name }}" DATABASES="{{ databases_space | default(value='') }}" if [ -z "${DATABASES}" ]; then echo "[post-install] no databases declared, skipping" exit 0 fi POD=$(_kubectl get pod --namespace "${NAMESPACE}" \ --selector "app.kubernetes.io/name=${COMPONENT}" \ -o jsonpath='{.items[0].metadata.name}') for db in ${DATABASES}; do exists=$(_kubectl exec --namespace "${NAMESPACE}" "${POD}" -- \ mariadb -u root --password="${MARIADB_ROOT_PASSWORD}" \ -sse "SELECT IF(COUNT(*),'exists','missing') FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='${db}'" \ 2>/dev/null | tr -d '[:space:]') if [ "${exists}" = "exists" ]; then echo "[post-install] database ${db} already exists" else echo "[post-install] creating database ${db}" _kubectl exec --namespace "${NAMESPACE}" "${POD}" -- \ mariadb -u root --password="${MARIADB_ROOT_PASSWORD}" \ -e "CREATE DATABASE \`${db}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" fi done