From dc1e5d8ac82df94bc4e513009a6ee657c7f62b3b Mon Sep 17 00:00:00 2001 From: devops Date: Sun, 12 Jul 2026 16:34:41 +0000 Subject: [PATCH] Update .gitea/workflows/build.yaml --- .gitea/workflows/build.yaml | 41 +++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 6b76a86..36c98dc 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -148,6 +148,9 @@ jobs: tr -d '\r\n\t ' )" + # Tolera que se haya pegado accidentalmente el prefijo de variable. + KUBE_CONFIG_B64="${KUBE_CONFIG_B64#KUBE_CONFIG_DATA=}" + if [ -z "${KUBE_CONFIG_B64}" ]; then echo "ERROR: el secret quedó vacío después de normalizarlo." exit 1 @@ -156,20 +159,42 @@ jobs: if ! printf '%s' "${KUBE_CONFIG_B64}" | grep -Eq '^[A-Za-z0-9+/]*={0,2}$'; then echo "ERROR: KUBE_CONFIG_DATA contiene caracteres que no son Base64." - echo "No pegues KUBE_CONFIG_DATA=, comillas, prompts ni encabezados." + echo "No pegues comillas, prompts ni texto adicional." exit 1 fi - if [ $(( ${#KUBE_CONFIG_B64} % 4 )) -ne 0 ]; then - echo "ERROR: la longitud del Base64 no es múltiplo de 4." - echo "El valor probablemente está incompleto." - exit 1 - fi + BASE64_LENGTH="${#KUBE_CONFIG_B64}" + BASE64_REMAINDER=$((BASE64_LENGTH % 4)) + + echo "Longitud Base64 normalizada: ${BASE64_LENGTH}" + echo "Residuo de longitud: ${BASE64_REMAINDER}" + + # El padding '=' puede perderse al copiar el secret. + # Residuo 2 => faltan '=='; residuo 3 => falta '='. + # Residuo 1 no puede repararse: el valor está truncado o dañado. + case "${BASE64_REMAINDER}" in + 0) + ;; + 2) + KUBE_CONFIG_B64="${KUBE_CONFIG_B64}==" + echo "Padding Base64 restaurado automáticamente: ==" + ;; + 3) + KUBE_CONFIG_B64="${KUBE_CONFIG_B64}=" + echo "Padding Base64 restaurado automáticamente: =" + ;; + 1) + echo "ERROR: el Base64 está truncado o dañado." + echo "Una longitud con residuo 1 no puede corregirse agregando padding." + echo "Vuelve a guardar el secret o pégalo directamente como YAML." + exit 1 + ;; + esac if ! printf '%s' "${KUBE_CONFIG_B64}" | base64 --decode > "${KUBECONFIG_PATH}" 2>/tmp/kubeconfig-base64.err; then echo "ERROR: no se pudo decodificar KUBE_CONFIG_DATA como Base64." - echo "Regenera el valor con: base64 -w 0 kubeconfig-gitea.yaml" + echo "Vuelve a crear el secret o utiliza el kubeconfig YAML sin codificar." exit 1 fi fi @@ -343,4 +368,4 @@ jobs: echo "Deployment: ${DEPLOYMENT}" echo "Pods validados: ${VALIDATED_PODS}/${EXPECTED_REPLICAS}" echo "Tag ejecutado: ${EXPECTED_IMAGE}" - echo "==================================================" \ No newline at end of file + echo "=================================================="