#!/usr/bin/env bash # lasuite-drive — POST-DEPLOY setup hook (Phase 2 Q3.2a). # # As of Q3.2a (plan-lasuite-drive-oidc-robustness.md Part A) OIDC is wired at INSTALL time by # tests/lasuite-drive/install_steps.sh (before the single `abra app deploy`), so this hook NO LONGER # does any OIDC env wiring or in-place redeploy — that eliminated the flaky 12-service reconverge # (collabora WOPI race; see JOURNAL Step 0). What remains here is the ONE post-deploy step that # genuinely needs the live stack: triggering the MinIO bucket-creation one-shot. The orchestrator # runs this only on the install-time path AFTER the deploy is healthy (deps already provisioned). # # Env supplied by the orchestrator: # CCCI_APP_DOMAIN — the running per-run lasuite-drive app domain # CCCI_DEPS_FILE — JSON deps creds dict (unused here now; OIDC handled at install) set -euo pipefail : "${CCCI_APP_DOMAIN:?missing}" # The deploy alone does NOT create the MinIO bucket — `minio-createbuckets` is a `replicas:0` # one-shot (restart_policy: none) that must be triggered. The MinIO storage test asserts the bucket # exists, so create it here. `--detach` is REQUIRED: the job creates the bucket then EXITS 0, so it # never holds a steady 1/1 replica; a blocking `docker service scale ...=1` would wait forever and # hang the run. With `--detach` the scale just submits the one-run and returns; the poll loop below # confirms the bucket was actually created. STACK=$(printf '%s' "$CCCI_APP_DOMAIN" | tr '.' '_') echo " setup: creating MinIO bucket via the minio-createbuckets one-shot (scale 0->1)" docker service scale --detach "${STACK}_minio-createbuckets=1" >/dev/null 2>&1 || true # Wait up to 90s for the one-shot to create the bucket (mc mb drive/drive-media-storage; exit 0). # Poll by checking the bucket directly from the running minio replica container. for i in $(seq 1 30); do MC_CID=$(docker ps -q -f "name=${STACK}_minio.1" | head -1) if [ -n "$MC_CID" ] && docker exec "$MC_CID" sh -c \ 'mc alias set _c http://localhost:9000 "$(cat /run/secrets/minio_ru)" "$(cat /run/secrets/minio_rp)" >/dev/null 2>&1 && mc ls _c/drive-media-storage >/dev/null 2>&1'; then echo " setup: bucket drive-media-storage present after ${i} poll(s)" break fi sleep 3 done echo " lasuite-drive setup_custom_tests: post-deploy MinIO bucket step complete (OIDC wired at install)"