2026-03-24 14:32:51 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
KESTRA_URL="${KESTRA_URL:-http://kestra:8080}"
|
|
|
|
|
|
|
|
|
|
echo "Importing flows into Kestra at ${KESTRA_URL}..."
|
|
|
|
|
|
|
|
|
|
for f in /flows/*.yml; do
|
2026-03-24 15:10:09 +00:00
|
|
|
name="$(basename "$f")"
|
|
|
|
|
echo " -> $name"
|
|
|
|
|
|
|
|
|
|
http_code=$(curl -s -o /tmp/kestra_resp -w "%{http_code}" \
|
|
|
|
|
-X POST "${KESTRA_URL}/api/v1/flows" \
|
|
|
|
|
-H "Content-Type: application/x-yaml" \
|
|
|
|
|
--data-binary "@${f}")
|
|
|
|
|
|
|
|
|
|
if [ "$http_code" = "200" ] || [ "$http_code" = "201" ]; then
|
|
|
|
|
echo " created"
|
|
|
|
|
elif [ "$http_code" = "409" ]; then
|
|
|
|
|
# Flow already exists — update it via PUT /api/v1/flows/{namespace}/{id}
|
|
|
|
|
ns=$(grep '^namespace:' "$f" | awk '{print $2}')
|
|
|
|
|
id=$(grep '^id:' "$f" | awk '{print $2}')
|
|
|
|
|
http_code2=$(curl -s -o /tmp/kestra_resp -w "%{http_code}" \
|
|
|
|
|
-X PUT "${KESTRA_URL}/api/v1/flows/${ns}/${id}" \
|
|
|
|
|
-H "Content-Type: application/x-yaml" \
|
|
|
|
|
--data-binary "@${f}")
|
|
|
|
|
if [ "$http_code2" = "200" ] || [ "$http_code2" = "201" ]; then
|
|
|
|
|
echo " updated"
|
|
|
|
|
else
|
|
|
|
|
echo " ERROR updating $name: HTTP $http_code2"
|
|
|
|
|
cat /tmp/kestra_resp; echo
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo " ERROR importing $name: HTTP $http_code"
|
|
|
|
|
cat /tmp/kestra_resp; echo
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2026-03-24 14:32:51 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo "All flows imported."
|