fix: exclude infrastructure probes from API throttling
All checks were successful
Mostovik Backend CI/CD / Tests and lint (push) Successful in 3m28s
Mostovik Backend CI/CD / Build linux/amd64 release images (push) Successful in 3m23s
Mostovik Backend CI/CD / Deploy and verify internal main (push) Has been skipped
Mostovik Backend CI/CD / Deploy dev (push) Successful in 1m49s

This commit is contained in:
Aleksandr Meshchryakov
2026-09-16 09:39:56 +02:00
parent 2cfc057e34
commit 4c869b856c
7 changed files with 157 additions and 104 deletions

View File

@@ -20,9 +20,6 @@ env:
REGISTRY_NAMESPACE: ${{ github.repository_owner }}
WEB_IMAGE: mostovik-backend-web
CELERY_IMAGE: mostovik-backend-celery
CUSTOMER_DEPLOY_HOST: 10.0.10.174
CUSTOMER_DEPLOY_USER: ecos
CUSTOMER_SSH_PROXY_HOST: ecos-proxy@10.10.0.121
jobs:
quality:
@@ -303,61 +300,3 @@ jobs:
done
echo "Internal-main backend readiness failed" >&2
exit 1
deploy_customer_main:
name: Deploy customer main
runs-on: ubuntu-latest
timeout-minutes: 30
needs: [build, deploy_internal_main]
if: ${{ github.ref == 'refs/heads/main' && needs.build.result == 'success' && needs.deploy_internal_main.result == 'success' }}
steps:
- name: Invoke customer release wrapper with the verified digests
env:
CUSTOMER_DEPLOY_SSH_KEY_B64: ${{ secrets.CUSTOMER_DEPLOY_SSH_KEY_B64 }}
CUSTOMER_KNOWN_HOSTS_B64: ${{ secrets.CUSTOMER_KNOWN_HOSTS_B64 }}
WEB_REF: ${{ needs.build.outputs.web_ref }}
CELERY_REF: ${{ needs.build.outputs.celery_ref }}
run: |
set -euo pipefail
for name in CUSTOMER_DEPLOY_HOST CUSTOMER_DEPLOY_USER CUSTOMER_SSH_PROXY_HOST CUSTOMER_DEPLOY_SSH_KEY_B64 CUSTOMER_KNOWN_HOSTS_B64; do
if [ -z "${!name:-}" ]; then
echo "Missing required customer SSH secret: ${name}" >&2
exit 1
fi
done
case "${CUSTOMER_DEPLOY_USER}" in *[!A-Za-z0-9._-]*) echo "Customer SSH user has unsupported characters" >&2; exit 1;; esac
case "${CUSTOMER_DEPLOY_HOST}" in *[!A-Za-z0-9.:-]*) echo "Customer SSH host has unsupported characters" >&2; exit 1;; esac
case "${CUSTOMER_SSH_PROXY_HOST}" in *[!A-Za-z0-9._@:-]*) echo "Customer SSH proxy has unsupported characters" >&2; exit 1;; esac
printf '%s\n' "${WEB_REF}" | grep -Eq '@sha256:[0-9a-f]{64}$'
printf '%s\n' "${CELERY_REF}" | grep -Eq '@sha256:[0-9a-f]{64}$'
ssh_dir="$(mktemp -d)"
trap 'rm -rf "${ssh_dir}"' EXIT
key_path="${ssh_dir}/deploy_key"
known_hosts_path="${ssh_dir}/known_hosts"
printf '%s' "${CUSTOMER_DEPLOY_SSH_KEY_B64}" | base64 -d > "${key_path}"
printf '%s' "${CUSTOMER_KNOWN_HOSTS_B64}" | base64 -d > "${known_hosts_path}"
chmod 600 "${key_path}" "${known_hosts_path}"
ssh-keygen -y -f "${key_path}" >/dev/null
ssh_common=(
-i "${key_path}"
-o BatchMode=yes
-o IdentitiesOnly=yes
-o StrictHostKeyChecking=yes
-o "UserKnownHostsFile=${known_hosts_path}"
-o GlobalKnownHostsFile=/dev/null
-o ConnectTimeout=15
)
proxy_command="ssh -i ${key_path} -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes -o UserKnownHostsFile=${known_hosts_path} -o GlobalKnownHostsFile=/dev/null -o ConnectTimeout=15 -W %h:%p ${CUSTOMER_SSH_PROXY_HOST}"
ssh \
"${ssh_common[@]}" \
-o "ProxyCommand=${proxy_command}" \
"${CUSTOMER_DEPLOY_USER}@${CUSTOMER_DEPLOY_HOST}" \
/ecos/release-service \
mostovik-backend \
"${GITHUB_RUN_ID:-${GITHUB_SHA}}-${GITHUB_RUN_ATTEMPT:-1}" \
"${WEB_REF}" \
"${CELERY_REF}"