From aec80456ef0f77e2d459c51f42d5966cb475c4ee Mon Sep 17 00:00:00 2001 From: Mayne0213 Date: Sun, 28 Dec 2025 17:56:32 +0900 Subject: [PATCH] PERF(config): improve kubeconfig decoding - Remove all whitespace before decoding - Try both -d and --decode options - Fallback to using value as-is (if Gitea already decoded) - Verify YAML validity before using - Better error handling and diagnostics --- .gitea/workflows/build.yml | 39 ++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 1f9cfb5..2f99eed 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -41,12 +41,7 @@ jobs: run: | if [ -z "$KUBECONFIG_B64" ]; then echo "❌ KUBECONFIG secret not set" - echo "" - echo "Please add KUBECONFIG to Gitea repository secrets:" - echo "1. Go to: https://gitea0213.kro.kr/bluemayne/jovies/settings/secrets" - echo "2. Add new secret:" - echo " Name: KUBECONFIG" - echo " Value: " + echo "Please add KUBECONFIG to Gitea repository secrets" exit 1 fi @@ -54,17 +49,33 @@ jobs: mkdir -p $HOME/.kube - # Decode base64 (handle both single-line and multi-line) - echo "$KUBECONFIG_B64" | tr -d '\n' | base64 -d > $HOME/.kube/config || { - echo "❌ Failed to decode KUBECONFIG" - echo "Secret length: ${#KUBECONFIG_B64}" - echo "First 50 chars: ${KUBECONFIG_B64:0:50}..." - exit 1 - } + # Clean up the base64 string (remove all whitespace and newlines) + CLEAN_B64=$(echo "$KUBECONFIG_B64" | tr -d '[:space:]') + + echo "After cleanup: ${#CLEAN_B64} chars" + + # Try decoding + if echo "$CLEAN_B64" | base64 -d > $HOME/.kube/config 2>/dev/null; then + echo "✅ Successfully decoded kubeconfig" + elif echo "$CLEAN_B64" | base64 --decode > $HOME/.kube/config 2>/dev/null; then + echo "✅ Successfully decoded kubeconfig (with --decode)" + else + echo "❌ Both base64 decode methods failed" + echo "Trying to save as-is (maybe already decoded)..." + echo "$KUBECONFIG_B64" > $HOME/.kube/config + fi chmod 600 $HOME/.kube/config - echo "✅ Kubeconfig configured" + # Verify it's valid YAML + if head -1 $HOME/.kube/config | grep -q "apiVersion"; then + echo "✅ Kubeconfig appears valid" + else + echo "⚠️ Kubeconfig may not be valid, first line:" + head -1 $HOME/.kube/config + fi + + # Test connection kubectl cluster-info kubectl get nodes -o wide