2525 esac
2626done
2727
28- echo " ::group::Kubernetes Context"
29- kubectl config set-context --current --namespace=$KUBERNETES_NAMESPACE
30- echo " Context set to namespace: \" $KUBERNETES_NAMESPACE \" "
31- echo " ::endgroup::"
32-
33-
34- REFINERY_ALEMBIC_VERSION=" "
35- KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=" "
36-
37- KUBERNETES_POD_EXISTING_IMAGE=$( kubectl get pod --output json \
38- --selector app=${KUBERNETES_DEPLOYMENT_NAME} \
39- | jq -r ' .items[0] | .spec.containers[0].image' )
40-
41- REFINERY_POD_EXISTING_IMAGE=$( kubectl get pod --output json \
42- --selector app=${REFINERY_DEPLOYMENT_NAME} \
43- | jq -r ' .items[0] | .spec.containers[0].image' )
44-
45- REFINERY_IMAGE_TAG_EXISTS=$( az acr repository show --name ${AZURE_CONTAINER_REGISTRY} --image ${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 2> /dev/null || true)
46-
4728__safe_migration_rollout () {
4829 deploy=$1
4930
@@ -67,31 +48,61 @@ __safe_migration_rollout() {
6748 fi
6849}
6950
51+ echo " ::group::Kubernetes Context & Test Infrastructure"
52+ kubectl config set-context --current --namespace=$KUBERNETES_NAMESPACE
53+ echo " Context set to namespace: \" $KUBERNETES_NAMESPACE \" "
54+ kubectl apply --kustomize infrastructure/test
55+ __safe_migration_rollout test-postgres
56+ kubectl exec -i deployment/test-postgres -- sh -c " psql -U postgres -c '$( cat infrastructure/test/deployment/assets/init.sql) '" || true
57+ echo " ::endgroup::"
58+
59+
60+ REFINERY_ALEMBIC_VERSION=" "
61+ KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=" "
62+
63+ KUBERNETES_POD_EXISTING_IMAGE=$( kubectl get pod --output json \
64+ --selector app=${KUBERNETES_DEPLOYMENT_NAME} \
65+ | jq -r ' .items[0] | .spec.containers[0].image' )
66+
67+ REFINERY_POD_EXISTING_IMAGE=$( kubectl get pod --output json \
68+ --selector app=${REFINERY_DEPLOYMENT_NAME} \
69+ | jq -r ' .items[0] | .spec.containers[0].image' )
70+
71+ REFINERY_IMAGE_TAG_EXISTS=$( az acr repository show --name ${AZURE_CONTAINER_REGISTRY} --image ${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 2> /dev/null || true)
72+
7073upgrade_alembic_migrations () {
7174 echo " ::group::Upgrade alembic migrations for test"
7275 if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
7376 if [ -n " $REFINERY_IMAGE_TAG_EXISTS " ]; then
74- REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic current)
77+ kubectl apply --kustomize apps/${REFINERY_DEPLOYMENT_NAME} /test
78+ __safe_migration_rollout test-${REFINERY_DEPLOYMENT_NAME}
79+ echo " Applied test-${REFINERY_DEPLOYMENT_NAME} deployment"
80+
81+ REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/test-${REFINERY_DEPLOYMENT_NAME} -c test-${REFINERY_DEPLOYMENT_NAME} -- alembic current)
7582 REFINERY_ALEMBIC_VERSION=${REFINERY_ALEMBIC_VERSION: 0: 12}
7683 echo " ::warning::current $REFINERY_DEPLOYMENT_NAME alembic version: $REFINERY_ALEMBIC_VERSION "
77- kubectl set image deployment/${REFINERY_DEPLOYMENT_NAME} \
78- ${REFINERY_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
79- ${REFINERY_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
80- __safe_migration_rollout ${REFINERY_DEPLOYMENT_NAME}
84+ kubectl set image deployment/test- ${REFINERY_DEPLOYMENT_NAME} \
85+ test- ${REFINERY_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
86+ test- ${REFINERY_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
87+ __safe_migration_rollout test- ${REFINERY_DEPLOYMENT_NAME}
8188 echo " ::warning::using ${AZURE_CONTAINER_REGISTRY} /${REFINERY_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
82- _REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic current)
89+ _REFINERY_ALEMBIC_VERSION=$( kubectl exec -i deployment/test- ${REFINERY_DEPLOYMENT_NAME} -c test- ${REFINERY_DEPLOYMENT_NAME} -- alembic current)
8390 echo " ::warning::upgraded $REFINERY_DEPLOYMENT_NAME alembic version: $_REFINERY_ALEMBIC_VERSION "
8491 fi
8592 else
86- KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
93+ kubectl apply --kustomize apps/${KUBERNETES_DEPLOYMENT_NAME} /test
94+ __safe_migration_rollout test-${KUBERNETES_DEPLOYMENT_NAME}
95+ echo " Applied test-${KUBERNETES_DEPLOYMENT_NAME} deployment"
96+
97+ KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/test-${KUBERNETES_DEPLOYMENT_NAME} -c test-${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
8798 KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=${KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION: 0: 12}
8899 echo " ::warning::current $KUBERNETES_DEPLOYMENT_NAME alembic version: $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
89- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} \
90- ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
91- ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
92- __safe_migration_rollout ${KUBERNETES_DEPLOYMENT_NAME}
100+ kubectl set image deployment/test- ${KUBERNETES_DEPLOYMENT_NAME} \
101+ test- ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} \
102+ test- ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
103+ __safe_migration_rollout test- ${KUBERNETES_DEPLOYMENT_NAME}
93104 echo " ::warning::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
94- _KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
105+ _KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=$( kubectl exec -i deployment/test- ${KUBERNETES_DEPLOYMENT_NAME} -c test- ${KUBERNETES_DEPLOYMENT_NAME} -- alembic current)
95106 echo " ::warning::upgraded $KUBERNETES_DEPLOYMENT_NAME alembic version: $_KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
96107 fi
97108 echo " ::endgroup::"
@@ -101,22 +112,18 @@ downgrade_alembic_migrations() {
101112 echo " ::group::Downgrade alembic migrations"
102113 if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
103114 if [ -n " $REFINERY_IMAGE_TAG_EXISTS " ]; then
104- kubectl exec -i deployment/${REFINERY_DEPLOYMENT_NAME} -c ${REFINERY_DEPLOYMENT_NAME} -- alembic downgrade $REFINERY_ALEMBIC_VERSION
105- echo " ::warning::downgraded $REFINERY_DEPLOYMENT_NAME alembic version to $REFINERY_ALEMBIC_VERSION "
106- kubectl set image deployment/${REFINERY_DEPLOYMENT_NAME} \
107- ${REFINERY_DEPLOYMENT_NAME} -migrate=${REFINERY_POD_EXISTING_IMAGE} \
108- ${REFINERY_DEPLOYMENT_NAME} =${REFINERY_POD_EXISTING_IMAGE}
109- kubectl rollout status deployment ${REFINERY_DEPLOYMENT_NAME}
110- echo " ::warning::using ${REFINERY_POD_EXISTING_IMAGE} "
115+ set +e
116+ kubectl exec -i deployment/test-${REFINERY_DEPLOYMENT_NAME} -c test-${REFINERY_DEPLOYMENT_NAME} -- alembic downgrade $REFINERY_ALEMBIC_VERSION
117+ echo " ::warning::downgraded test-$REFINERY_DEPLOYMENT_NAME alembic version to $REFINERY_ALEMBIC_VERSION "
118+ set -e
119+ kubectl delete --kustomize apps/${REFINERY_DEPLOYMENT_NAME} /test
111120 fi
112121 else
113- kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c ${KUBERNETES_DEPLOYMENT_NAME} -- alembic downgrade $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION
114- echo " ::warning::downgraded $KUBERNETES_DEPLOYMENT_NAME alembic version to $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
115- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} \
116- ${KUBERNETES_DEPLOYMENT_NAME} -migrate=${KUBERNETES_POD_EXISTING_IMAGE} \
117- ${KUBERNETES_DEPLOYMENT_NAME} =${KUBERNETES_POD_EXISTING_IMAGE}
118- kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
119- echo " ::warning::using ${KUBERNETES_POD_EXISTING_IMAGE} "
122+ set +e
123+ kubectl exec -i deployment/test-${KUBERNETES_DEPLOYMENT_NAME} -c test-${KUBERNETES_DEPLOYMENT_NAME} -- alembic downgrade $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION
124+ echo " ::warning::downgraded test-$KUBERNETES_DEPLOYMENT_NAME alembic version to $KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
125+ set -e
126+ kubectl delete --kustomize apps/${KUBERNETES_DEPLOYMENT_NAME} /test
120127 fi
121128 echo " ::endgroup::"
122129}
@@ -126,15 +133,15 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
126133fi
127134
128135echo " ::group::Set test image: ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
129- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
130- __safe_migration_rollout ${KUBERNETES_DEPLOYMENT_NAME}
136+ kubectl set image deployment/test- ${KUBERNETES_DEPLOYMENT_NAME} test- ${KUBERNETES_DEPLOYMENT_NAME} =${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} 1> /dev/null
137+ __safe_migration_rollout test- ${KUBERNETES_DEPLOYMENT_NAME}
131138echo " ::notice::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
132139echo " ::endgroup::"
133140
134- echo " ::group::Running test command: kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- '$TEST_CMD '"
141+ echo " ::group::Running test command: kubectl exec -i deployment/test- ${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- '$TEST_CMD '"
135142set +e
136143exitcode=0
137- kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -c $KUBERNETES_DEPLOYMENT_NAME -- ' ' $TEST_CMD ' '
144+ kubectl exec -i deployment/test- ${KUBERNETES_DEPLOYMENT_NAME} -c test- $KUBERNETES_DEPLOYMENT_NAME -- ' ' $TEST_CMD ' '
138145exitcode=$?
139146set -e
140147echo " ::endgroup::"
@@ -143,10 +150,8 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
143150 downgrade_alembic_migrations
144151fi
145152
146- echo " ::group::Revert test image: ${KUBERNETES_POD_EXISTING_IMAGE} "
147- kubectl set image deployment/${KUBERNETES_DEPLOYMENT_NAME} ${KUBERNETES_DEPLOYMENT_NAME} =${KUBERNETES_POD_EXISTING_IMAGE} 1> /dev/null
148- kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
149- echo " ::notice::using ${KUBERNETES_POD_EXISTING_IMAGE} "
153+ echo " ::group::Delete Test Infrastructure"
154+ kubectl delete --kustomize infrastructure/test
150155echo " ::endgroup::"
151156
152157exit $exitcode
0 commit comments