@@ -40,8 +40,25 @@ REFINERY_POD_EXISTING_IMAGE=$(kubectl get pod --output json \
40
40
41
41
REFINERY_IMAGE_TAG_EXISTS=$( az acr repository show --name ${AZURE_CONTAINER_REGISTRY} --image ${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 2> /dev/null || true)
42
42
43
+ __safe_migration_rollout () {
44
+ deploy=$1
43
45
44
- if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true" ]; then
46
+ set +e
47
+ exitcode=0
48
+ kubectl rollout status deployment $deploy --timeout 2m 2> /dev/null
49
+ exitcode=$?
50
+ set -e
51
+
52
+ if [ " $exitcode " != " 0" ]; then
53
+ kubectl logs deployment/$deploy -c $deploy -migrate
54
+ if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true" ]; then
55
+ downgrade_alembic_migrations
56
+ fi
57
+ exit $exitcode
58
+ fi
59
+ }
60
+
61
+ upgrade_alembic_migrations () {
45
62
echo " ::group::Upgrade alembic migrations for test"
46
63
if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
47
64
if [ -n " $REFINERY_IMAGE_TAG_EXISTS " ]; then
@@ -51,7 +68,7 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
51
68
kubectl set image deployment/${REFINERY_DEPLOYMENT_NAME} \
52
69
${REFINERY_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
53
70
${REFINERY_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
54
- kubectl rollout status deployment ${REFINERY_DEPLOYMENT_NAME}
71
+ __safe_migration_rollout ${REFINERY_DEPLOYMENT_NAME}
55
72
echo " ::warning::using ${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
56
73
_REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic current)
57
74
echo " ::warning::upgraded $REFINERY_DEPLOYMENT_NAME alembic version: $_REFINERY_ALEMBIC_VERSION "
@@ -63,29 +80,15 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
63
80
kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} \
64
81
${KUBERNETES_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
65
82
${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
66
- kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
83
+ __safe_migration_rollout ${KUBERNETES_DEPLOYMENT_NAME}
67
84
echo " ::warning::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
68
85
_KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
69
86
echo " ::warning::upgraded $KUBERNETES_DEPLOYMENT_NAME alembic version: $_KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
70
87
fi
71
88
echo " ::endgroup::"
72
- fi
73
-
74
- echo " ::group::Set test image: ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
75
- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
76
- kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
77
- echo " ::notice::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
78
- echo " ::endgroup::"
79
-
80
- echo " ::group::Running test command: kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- '$TEST_CMD '"
81
- set +e
82
- exitcode=0
83
- kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- ' ' $TEST_CMD ' '
84
- exitcode=$?
85
- set -e
86
- echo " ::endgroup::"
89
+ }
87
90
88
- if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true " ] ; then
91
+ downgrade_alembic_migrations () {
89
92
echo " ::group::Downgrade alembic migrations"
90
93
if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
91
94
if [ -n " $REFINERY_IMAGE_TAG_EXISTS " ]; then
@@ -94,7 +97,7 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
94
97
kubectl set image deployment/${REFINERY_DEPLOYMENT_NAME} \
95
98
${REFINERY_DEPLOYMENT_NAME} -migrate=${REFINERY_POD_EXISTING_IMAGE} \
96
99
${REFINERY_DEPLOYMENT_NAME} =${REFINERY_POD_EXISTING_IMAGE}
97
- kubectl rollout status deployment ${REFINERY_DEPLOYMENT_NAME}
100
+ __safe_migration_rollout ${REFINERY_DEPLOYMENT_NAME}
98
101
echo " ::warning::using ${REFINERY_POD_EXISTING_IMAGE} "
99
102
fi
100
103
else
@@ -103,10 +106,32 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
103
106
kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} \
104
107
${KUBERNETES_DEPLOYMENT_NAME} -migrate=${KUBERNETES_POD_EXISTING_IMAGE} \
105
108
${KUBERNETES_DEPLOYMENT_NAME} =${KUBERNETES_POD_EXISTING_IMAGE}
106
- kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
109
+ __safe_migration_rollout ${KUBERNETES_DEPLOYMENT_NAME}
107
110
echo " ::warning::using ${KUBERNETES_POD_EXISTING_IMAGE} "
108
111
fi
109
112
echo " ::endgroup::"
113
+ }
114
+
115
+ if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true" ]; then
116
+ upgrade_alembic_migrations
117
+ fi
118
+
119
+ echo " ::group::Set test image: ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
120
+ kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
121
+ kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
122
+ echo " ::notice::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
123
+ echo " ::endgroup::"
124
+
125
+ echo " ::group::Running test command: kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- '$TEST_CMD '"
126
+ set +e
127
+ exitcode=0
128
+ kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- ' ' $TEST_CMD ' '
129
+ exitcode=$?
130
+ set -e
131
+ echo " ::endgroup::"
132
+
133
+ if [ " $ENABLE_ALEMBIC_MIGRATIONS " = " true" ]; then
134
+ downgrade_alembic_migrations
110
135
fi
111
136
112
137
echo " ::group::Revert test image: ${KUBERNETES_POD_EXISTING_IMAGE} "
0 commit comments