25
25
esac
26
26
done
27
27
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
-
47
28
__safe_migration_rollout () {
48
29
deploy=$1
49
30
@@ -67,31 +48,61 @@ __safe_migration_rollout() {
67
48
fi
68
49
}
69
50
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
+
70
73
upgrade_alembic_migrations () {
71
74
echo " ::group::Upgrade alembic migrations for test"
72
75
if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
73
76
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)
75
82
REFINERY_ALEMBIC_VERSION=${REFINERY_ALEMBIC_VERSION: 0: 12}
76
83
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}
81
88
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)
83
90
echo " ::warning::upgraded $REFINERY_DEPLOYMENT_NAME alembic version: $_REFINERY_ALEMBIC_VERSION "
84
91
fi
85
92
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)
87
98
KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION=${KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION: 0: 12}
88
99
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}
93
104
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)
95
106
echo " ::warning::upgraded $KUBERNETES_DEPLOYMENT_NAME alembic version: $_KUBERNETES_DEPLOYMENT_ALEMBIC_VERSION "
96
107
fi
97
108
echo " ::endgroup::"
@@ -101,22 +112,18 @@ downgrade_alembic_migrations() {
101
112
echo " ::group::Downgrade alembic migrations"
102
113
if [ $KUBERNETES_DEPLOYMENT_NAME != " refinery-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " gates-gateway" ] && [ $KUBERNETES_DEPLOYMENT_NAME != " hosted-inference-api" ]; then
103
114
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
111
120
fi
112
121
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
120
127
fi
121
128
echo " ::endgroup::"
122
129
}
@@ -126,15 +133,15 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
126
133
fi
127
134
128
135
echo " ::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}
131
138
echo " ::notice::using ${AZURE_CONTAINER_REGISTRY} /${KUBERNETES_DEPLOYMENT_NAME} :${TEST_IMAGE_TAG} "
132
139
echo " ::endgroup::"
133
140
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 '"
135
142
set +e
136
143
exitcode=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 ' '
138
145
exitcode=$?
139
146
set -e
140
147
echo " ::endgroup::"
@@ -143,10 +150,8 @@ if [ "$ENABLE_ALEMBIC_MIGRATIONS" = "true" ]; then
143
150
downgrade_alembic_migrations
144
151
fi
145
152
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
150
155
echo " ::endgroup::"
151
156
152
157
exit $exitcode
0 commit comments