Update .gitea/workflows/build.yaml
This commit is contained in:
@@ -140,10 +140,49 @@ jobs:
|
||||
fi
|
||||
|
||||
mkdir -p "${HOME}/.kube"
|
||||
printf '%s' "${KUBE_CONFIG_DATA}" | base64 --decode > "${HOME}/.kube/config"
|
||||
|
||||
# Normaliza saltos de línea, CRLF, espacios o tabulaciones que
|
||||
# hayan podido introducirse al copiar el secret en la interfaz.
|
||||
KUBE_CONFIG_B64="$(
|
||||
printf '%s' "${KUBE_CONFIG_DATA}" \
|
||||
| tr -d '\r\n\t '
|
||||
)"
|
||||
|
||||
if [ -z "${KUBE_CONFIG_B64}" ]; then
|
||||
echo "ERROR: KUBE_CONFIG_DATA quedó vacío después de normalizarlo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! printf '%s' "${KUBE_CONFIG_B64}" \
|
||||
| grep -Eq '^[A-Za-z0-9+/]*={0,2}$'; then
|
||||
echo "ERROR: KUBE_CONFIG_DATA contiene caracteres que no pertenecen a Base64."
|
||||
echo "Vuelve a generar el secret codificando el archivo kubeconfig completo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $(( ${#KUBE_CONFIG_B64} % 4 )) -ne 0 ]; then
|
||||
echo "ERROR: la longitud de KUBE_CONFIG_DATA no es válida para Base64."
|
||||
echo "Probablemente el valor fue copiado de forma incompleta."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! printf '%s' "${KUBE_CONFIG_B64}" \
|
||||
| base64 --decode > "${HOME}/.kube/config"; then
|
||||
echo "ERROR: no fue posible decodificar KUBE_CONFIG_DATA."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod 600 "${HOME}/.kube/config"
|
||||
export KUBECONFIG="${HOME}/.kube/config"
|
||||
|
||||
if ! grep -q '^apiVersion:' "${KUBECONFIG}" \
|
||||
|| ! grep -q '^clusters:' "${KUBECONFIG}" \
|
||||
|| ! grep -q '^contexts:' "${KUBECONFIG}"; then
|
||||
echo "ERROR: el contenido decodificado no parece ser un kubeconfig válido."
|
||||
echo "No pegues el YAML sin codificar ni una cadena ya recortada."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Instala kubectl únicamente si el runner no lo incluye.
|
||||
if ! command -v kubectl >/dev/null 2>&1; then
|
||||
case "$(uname -m)" in
|
||||
|
||||
Reference in New Issue
Block a user