Skip to content

Commit 716ac4f

Browse files
committed
Merge commit '1abb12b8521d67a17c84662451cab8b053c877aa' into 01962-D-e2e-customized-consensus-version
Signed-off-by: Jeffrey Tang <jeffrey@swirldslabs.com> # Conflicts: # version.ts
2 parents 42e28e8 + 1abb12b commit 716ac4f

35 files changed

Lines changed: 658 additions & 376 deletions

.github/workflows/flow-migration-test.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
strategy:
4040
fail-fast: false
4141
matrix:
42-
release-tag: ["0.35.0", "0.35.1", "0.35.2"]
42+
release-tag: ["0.35.2"]
4343
steps:
4444
- name: Harden Runner
4545
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
@@ -79,6 +79,4 @@ jobs:
7979
8080
npm install
8181
task build
82-
npm install -g @hashgraph/solo@${{ matrix.release-tag }} --force
83-
solo --version
8482
.github/workflows/script/launch_network.sh ${{ matrix.release-tag }}

.github/workflows/script/launch_network.sh

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,32 @@ fi
1717
npm install -g @hashgraph/solo@"${releaseTag}" --force
1818
solo --version
1919

20-
SOLO_CLUSTER_NAME=solo-e2e
21-
SOLO_NAMESPACE=solo-e2e
22-
SOLO_CLUSTER_SETUP_NAMESPACE=solo-setup
23-
SOLO_DEPLOYMENT=solo-e2e
20+
export SOLO_CLUSTER_NAME=solo-e2e
21+
export SOLO_NAMESPACE=solo-e2e
22+
export SOLO_CLUSTER_SETUP_NAMESPACE=solo-setup
23+
export SOLO_DEPLOYMENT=solo-e2e
2424

2525
kind delete cluster -n "${SOLO_CLUSTER_NAME}"
2626
kind create cluster -n "${SOLO_CLUSTER_NAME}"
2727

2828
rm -rf ~/.solo/*
2929

30-
echo "Launch solo using released version ${releaseTag}"
30+
31+
echo "Launch solo using released Solo version ${releaseTag}"
32+
3133

3234
solo init
3335
solo cluster setup -s "${SOLO_CLUSTER_SETUP_NAMESPACE}"
3436
solo node keys --gossip-keys --tls-keys -i node1,node2
3537
solo deployment create -i node1,node2 -n "${SOLO_NAMESPACE}" --context kind-"${SOLO_CLUSTER_NAME}" --email john@doe.com --deployment-clusters kind-"${SOLO_CLUSTER_NAME}" --cluster-ref kind-${SOLO_CLUSTER_NAME} --deployment "${SOLO_DEPLOYMENT}"
36-
solo network deploy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}"
3738

38-
solo node setup -i node1,node2 --deployment "${SOLO_DEPLOYMENT}"
39-
solo node start -i node1,node2 --deployment "${SOLO_DEPLOYMENT}"
39+
export CONSENSUS_NODE_VERSION=v0.58.10
40+
# Use custom settings file for the deployment to avoid too many state saved in disk causing the no space left on device error
41+
solo network deploy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --pvcs --release-tag "${CONSENSUS_NODE_VERSION}" -q --settings-txt .github/workflows/support/v58-test/settings.txt
42+
solo node setup -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --release-tag "${CONSENSUS_NODE_VERSION}" -q
43+
solo node start -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" -q
44+
solo account create --deployment "${SOLO_DEPLOYMENT}" --hbar-amount 100
45+
4046

4147
solo mirror-node deploy --deployment "${SOLO_DEPLOYMENT}"
4248
solo explorer deploy -s "${SOLO_CLUSTER_SETUP_NAMESPACE}" --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME}
@@ -47,6 +53,10 @@ cat ./local-config-before.yaml
4753
kubectl get ConfigMap solo-remote-config -n ${SOLO_NAMESPACE} -o yaml | yq '.data' > remote-config-before.yaml
4854
cat remote-config-before.yaml
4955

56+
# must uninstall explorer before migration, because the change of explorer chart name and labels
57+
# make it harder to uninstall or upgrade after migration
58+
solo explorer destroy --deployment "${SOLO_DEPLOYMENT}" --force
59+
5060
# trigger migration
5161
npm run solo-test -- account create --deployment "${SOLO_DEPLOYMENT}"
5262

@@ -67,7 +77,45 @@ if ! grep -q "schemaVersion: 1" ./remote-config-after.yaml; then
6777
exit 1
6878
fi
6979

70-
# uninstall components using current version
80+
# using new solo to redeploy solo deployment chart to new version
81+
npm run solo-test -- node stop -i node1,node2 --deployment "${SOLO_DEPLOYMENT}"
82+
83+
npm run solo-test -- network deploy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --pvcs --release-tag "${CONSENSUS_NODE_VERSION}" -q --settings-txt .github/workflows/support/v58-test/settings.txt
84+
85+
npm run solo-test -- node setup -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --release-tag "${CONSENSUS_NODE_VERSION}" -q
86+
npm run solo-test -- node start -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" -q
87+
88+
# redeploy mirror-node to upgrade to a newer version
89+
npm run solo-test -- mirror-node deploy --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME} --pinger -q --dev
90+
91+
# redeploy explorer and relay node to upgrade to a newer version
92+
npm run solo-test -- relay deploy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" -q --dev
93+
npm run solo-test -- explorer deploy --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME} --mirrorNamespace solo-e2e -q --dev
94+
95+
# wait a few seconds for the pods to be ready before enabling port-forwarding
96+
sleep 10
97+
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/haproxy-node1-svc 50211:50211 > /dev/null 2>&1 &
98+
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/relay-node1-node2-hedera-json-rpc-relay 7546:7546 > /dev/null 2>&1 &
99+
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/mirror-grpc 5600:5600 > /dev/null 2>&1 &
100+
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/hiero-explorer 8080:80 > /dev/null 2>&1 &
101+
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/mirror-rest 5551:80 > /dev/null 2>&1 &
102+
103+
# Test transaction can still be sent and processed
104+
npm run solo-test -- account create --deployment "${SOLO_DEPLOYMENT}" --hbar-amount 100
105+
106+
# Upgrade to v0.59.5
107+
npm run solo-test -- node upgrade -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --upgrade-version v0.59.5 -q
108+
npm run solo-test -- account create --deployment "${SOLO_DEPLOYMENT}" --hbar-amount 100
109+
110+
# Upgrade to latest version
111+
export CONSENSUS_NODE_VERSION=$(grep 'HEDERA_PLATFORM_VERSION' version.ts | sed -E "s/.*'([^']+)';/\1/")
112+
npm run solo-test -- node upgrade -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --upgrade-version "${CONSENSUS_NODE_VERSION}" -q
113+
npm run solo-test -- account create --deployment "${SOLO_DEPLOYMENT}" --hbar-amount 100
114+
115+
SKIP_IMPORTER_CHECK=true
116+
.github/workflows/script/solo_smoke_test.sh "${SKIP_IMPORTER_CHECK}"
117+
118+
# uninstall components using current Solo version
71119
npm run solo-test -- explorer destroy --deployment "${SOLO_DEPLOYMENT}" --force
72120
npm run solo-test -- relay destroy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME}
73121
npm run solo-test -- mirror-node destroy --deployment "${SOLO_DEPLOYMENT}" --force

.github/workflows/script/solo_smoke_test.sh

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function check_port_forward ()
4747
# run background task for few minutes
4848
for i in {1..20}
4949
do
50-
echo "Check port forward"
50+
echo "Check port forward i = $i out of 20"
5151
ps -ef |grep port-forward
5252
sleep 5
5353
done &
@@ -134,13 +134,6 @@ function check_importer_log()
134134
fi
135135
}
136136

137-
# if first parameter equals to account-init,
138-
# then call solo account init before deploy mirror and relay node
139-
if [ "$1" == "account-init" ]; then
140-
echo "Call solo account init"
141-
npm run solo-test -- account init --deployment "${SOLO_DEPLOYMENT}"
142-
fi
143-
144137
echo "Change to parent directory"
145138

146139
cd ../
@@ -160,4 +153,9 @@ sleep 30
160153
echo "Run mirror node acceptance test"
161154
helm test mirror -n solo-e2e --timeout 10m
162155
check_monitor_log
163-
check_importer_log
156+
157+
if [ -n "$1" ]; then
158+
echo "Skip mirror importer log check"
159+
else
160+
check_importer_log
161+
fi

.github/workflows/script/update_md.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ export SOLO_CLUSTER_REF_CONNECT_OUTPUT=$( cat ${BUILD_DIR}/cluster-ref-connect.l
4343
solo deployment create -n "${SOLO_NAMESPACE}" --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/deployment-create.log
4444
export SOLO_DEPLOYMENT_CREATE_OUTPUT=$( cat ${BUILD_DIR}/deployment-create.log | tee ${BUILD_DIR}/test.log )
4545

46-
solo deployment add-cluster --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME} --num-consensus-nodes 2 | tee ${BUILD_DIR}/deployment-add-cluster.log
46+
solo deployment add-cluster --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME} --num-consensus-nodes 1 | tee ${BUILD_DIR}/deployment-add-cluster.log
4747
export SOLO_DEPLOYMENT_ADD_CLUSTER_OUTPUT=$( cat ${BUILD_DIR}/deployment-add-cluster.log | tee ${BUILD_DIR}/test.log )
4848

49-
solo node keys --gossip-keys --tls-keys -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/keys.log
49+
solo node keys --gossip-keys --tls-keys --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/keys.log
5050
export SOLO_NODE_KEY_PEM_OUTPUT=$( cat ${BUILD_DIR}/keys.log | tee ${BUILD_DIR}/test.log )
5151

5252
solo cluster-ref setup -s "${SOLO_CLUSTER_SETUP_NAMESPACE}" | tee ${BUILD_DIR}/cluster-setup.log
@@ -55,26 +55,26 @@ export SOLO_CLUSTER_SETUP_OUTPUT=$( cat ${BUILD_DIR}/cluster-setup.log | tee ${B
5555
solo block node add --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-"${SOLO_CLUSTER_NAME}" "${CONSENSUS_NODE_FLAG[@]}" | tee ${BUILD_DIR}/block-node-add.log
5656
export SOLO_BLOCK_NODE_ADD_OUTPUT=$( cat ${BUILD_DIR}/block-node-add.log | tee ${BUILD_DIR}/test.log )
5757

58-
solo network deploy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/network-deploy.log
58+
solo network deploy --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/network-deploy.log
5959
export SOLO_NETWORK_DEPLOY_OUTPUT=$( cat ${BUILD_DIR}/network-deploy.log | tee ${BUILD_DIR}/test.log )
6060

61-
solo node setup -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" "${CONSENSUS_NODE_FLAG[@]}" | tee ${BUILD_DIR}/node-setup.log
61+
solo node setup --deployment "${SOLO_DEPLOYMENT}" "${CONSENSUS_NODE_FLAG[@]}" | tee ${BUILD_DIR}/node-setup.log
6262
export SOLO_NODE_SETUP_OUTPUT=$( cat ${BUILD_DIR}/node-setup.log | tee ${BUILD_DIR}/test.log )
6363

64-
solo node start -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/node-start.log
64+
solo node start --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/node-start.log
6565
export SOLO_NODE_START_OUTPUT=$( cat ${BUILD_DIR}/node-start.log | tee ${BUILD_DIR}/test.log )
6666

6767
# shellcheck disable=SC2086
6868
solo mirror-node deploy --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME} -q | tee ${BUILD_DIR}/mirror-node-deploy.log
6969
export SOLO_MIRROR_NODE_DEPLOY_OUTPUT=$( cat ${BUILD_DIR}/mirror-node-deploy.log | tee ${BUILD_DIR}/test.log )
7070

71-
solo relay deploy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/relay-deploy.log
71+
solo relay deploy -i node1 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/relay-deploy.log
7272
export SOLO_RELAY_DEPLOY_OUTPUT=$( cat ${BUILD_DIR}/relay-deploy.log | tee ${BUILD_DIR}/test.log )
7373

7474
solo explorer deploy --deployment "${SOLO_DEPLOYMENT}" --cluster-ref kind-${SOLO_CLUSTER_NAME} -q | tee ${BUILD_DIR}/explorer-deploy.log
7575
export SOLO_EXPLORER_DEPLOY_OUTPUT=$( cat ${BUILD_DIR}/explorer-deploy.log | tee ${BUILD_DIR}/test.log )
7676

77-
solo relay destroy -i node1,node2 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/relay-destroy.log
77+
solo relay destroy -i node1 --deployment "${SOLO_DEPLOYMENT}" | tee ${BUILD_DIR}/relay-destroy.log
7878
export SOLO_RELAY_DESTROY_OUTPUT=$( cat ${BUILD_DIR}/relay-destroy.log | tee ${BUILD_DIR}/test.log )
7979

8080
solo mirror-node destroy --deployment "${SOLO_DEPLOYMENT}" --force -q | tee ${BUILD_DIR}/mirror-node-destroy.log
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
state.signedStateDisk,2
3+
#addressBook.useRosterLifecycle, true
4+
#networkAdmin.diskNetworkExport, EVERY_BLOCK
5+
#networkAdmin.diskNetworkExportFile, network.json
6+

0 commit comments

Comments
 (0)