11# !/bin/bash
22set -e
33
4+ AZURE_CONTAINER_REGISTRY=" "
45KUBERNETES_NAMESPACE=" "
56KUBERNETES_DEPLOYMENT_NAME=" "
7+ REFINERY_DEPLOYMENT_NAME=" refinery-gateway"
68TEST_IMAGE_TAG=" "
7- AZURE_CONTAINER_REGISTRY=" "
89TEST_CMD=" "
910ENABLE_ALEMBIC_MIGRATIONS=" false"
1011
@@ -26,67 +27,81 @@ echo "Context set to namespace: \"$KUBERNETES_NAMESPACE\""
2627echo " ::endgroup::"
2728
2829
30+ REFINERY_ALEMBIC_VERSION=" "
31+ KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=" "
32+
2933KUBERNETES_POD_EXISTING_IMAGE=$( kubectl get pod --output json \
3034 --selector app=${KUBERNETES_DEPLOYMENT_NAME} \
3135 | jq -r ' .items[0] | .spec.containers[0].image' )
3236
33- REFINERY_DEPLOYMENT_NAME=" refinery-gateway"
3437REFINERY_POD_EXISTING_IMAGE=$( kubectl get pod --output json \
3538 --selector app=${REFINERY_DEPLOYMENT_NAME} \
3639 | jq -r ' .items[0] | .spec.containers[0].image' )
40+
3741REFINERY_IMAGE_TAG_EXISTS=$( az acr repository show --name ${AZURE_CONTAINER_REGISTRY} --image ${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 2> /dev/null || true)
3842
3943
4044if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true" ]; then
41- echo " ::group::Preparing alembic migrations for test "
45+ echo " ::group::Upgrade deployment image and alembic migrations "
4246 if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
4347 if [ -n " $REFINERY_IMAGE_TAG_EXISTS " ]; then
48+ REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic current)
49+ REFINERY_ALEMBIC_VERSION=${REFINERY_ALEMBIC_VERSION: 0: 12}
50+ echo " ::warning::current $REFINERY_DEPLOYMENT_NAME alembic version: $REFINERY_ALEMBIC_VERSION "
4451 kubectl set image deployment/${REFINERY_DEPLOYMENT_NAME} \
4552 ${REFINERY_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
4653 ${REFINERY_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG}
4754 kubectl rollout status deployment ${REFINERY_DEPLOYMENT_NAME}
4855 echo " ::warning::using ${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
56+ _REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic current)
57+ echo " ::warning::upgraded $REFINERY_DEPLOYMENT_NAME alembic version: $_REFINERY_ALEMBIC_VERSION "
4958 fi
5059 else
51- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG}
60+ KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
61+ KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=${KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION: 0: 12}
62+ echo " ::notice::current $KUBERNETES_DEPLOYMENT_NAME alembic version: $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
63+ kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} \
64+ ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
65+ ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG}
66+ kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
67+ echo " ::notice::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
68+ _KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
69+ echo " ::notice::upgraded $KUBERNETES_DEPLOYMENT_NAME alembic version: $_KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
5270 fi
5371 echo " ::endgroup::"
5472fi
5573
56- echo " ::group::Upgrade deployment image"
57- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG}
58- kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
59- echo " ::endgroup::"
60-
61-
62- echo " ::notice::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
63-
6474
6575echo " ::group::Running test command: kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- '$TEST_CMD '"
6676set +e
6777exitcode=0
6878kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- ' ' $TEST_CMD ' '
6979exitcode=$?
7080set -e
71- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} =${KUBERNETES_POD_EXISTING_IMAGE}
7281echo " ::endgroup::"
7382
7483if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true" ]; then
7584 echo " ::group::Reverting alembic migrations for test"
7685 if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
7786 if [ -n " $REFINERY_IMAGE_TAG_EXISTS " ]; then
87+ kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic downgrade $REFINERY_ALEMBIC_VERSION
88+ echo " ::warning::downgraded $REFINERY_DEPLOYMENT_NAME alembic version to $REFINERY_ALEMBIC_VERSION "
7889 kubectl set image deployment/${REFINERY_DEPLOYMENT_NAME} \
7990 ${REFINERY_DEPLOYMENT_NAME} -migrate=${REFINERY_POD_EXISTING_IMAGE} \
8091 ${REFINERY_DEPLOYMENT_NAME} =${REFINERY_POD_EXISTING_IMAGE}
8192 kubectl rollout status deployment ${REFINERY_DEPLOYMENT_NAME}
8293 echo " ::warning::using ${REFINERY_POD_EXISTING_IMAGE} "
8394 fi
8495 else
85- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${REFINERY_POD_EXISTING_IMAGE}
96+ kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic downgrade $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION
97+ echo " ::notice::downgraded $KUBERNETES_DEPLOYMENT_NAME alembic version to $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
98+ kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} \
99+ ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${KUBERNETES_POD_EXISTING_IMAGE} \
100+ ${KUBERNETES_DEPLOYMENT_NAME} =${KUBERNETES_POD_EXISTING_IMAGE}
101+ kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
102+ echo " ::notice::using ${KUBERNETES_POD_EXISTING_IMAGE} "
86103 fi
87104 echo " ::endgroup::"
88105fi
89106
90- echo " ::notice::using ${KUBERNETES_POD_EXISTING_IMAGE} "
91-
92107exit $exitcode
0 commit comments