25 lines
887 B
Bash
25 lines
887 B
Bash
|
|
#!/bin/sh
|
||
|
|
echo "Warte auf die frische Kubeconfig von K3s..."
|
||
|
|
while [ ! -f /output/config ]; do sleep 1; done
|
||
|
|
sleep 2 # Sicherstellen, dass K3s fertig geschrieben hat
|
||
|
|
|
||
|
|
echo "Aktualisiere das Forgejo-Secret KUBECONFIG_DATA via API..."
|
||
|
|
|
||
|
|
# Liest die Datei ein, maskiert Backslashes und doppelte Anführungszeichen,
|
||
|
|
# und fügt am Ende jeder Zeile ein echtes \n für den JSON-String ein.
|
||
|
|
ESCAPED_KUBE=$(awk '{
|
||
|
|
gsub(/\\/, "\\\\");
|
||
|
|
gsub(/"/, "\\\"");
|
||
|
|
printf "%s\\n", $0
|
||
|
|
}' /output/config)
|
||
|
|
|
||
|
|
# Schiesst das absolut valide JSON-Paket an die Forgejo-API
|
||
|
|
curl -s -X PUT "http://forgejo:3000/api/v1/repos/bast/my-app-sandbox/actions/secrets/KUBECONFIG_DATA" \
|
||
|
|
-H "accept: application/json" \
|
||
|
|
-H "Authorization: token eb834b313f4ffe99bc507abc08c46eb74913707a" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d "{\"data\": \"$ESCAPED_KUBE\"}"
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "Secret erfolgreich synchronisiert!"
|