Skip to content

Commit d9a3592

Browse files
feat: update solo to support pathPrefix of mirror node importer (#1204)
Signed-off-by: Jeffrey Tang <[email protected]>
1 parent 6773955 commit d9a3592

File tree

8 files changed

+61
-19
lines changed

8 files changed

+61
-19
lines changed

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ jobs:
6262
github_token: ${{ secrets.GITHUB_TOKEN }}
6363
job_name: "gcs-storage-test (${{ matrix.storageType }})"
6464

65-
- name: Create GCS bucket
66-
# create a new bucket and use job runner id as prefix
65+
- name: Create Bucket Name and Prefix
6766
run: |
68-
export BUCKET_NAME=${{ steps.jobs.outputs.job_id }}-solo-streams
69-
gcloud storage buckets create gs://${BUCKET_NAME} --project=${{ vars.GCP_S3_PROJECT_ID }}
67+
export BUCKET_NAME="solo-ci-test-streams"
68+
export PREFIX=${{ steps.jobs.outputs.job_id }}
69+
7070
echo "BUCKET_NAME=${BUCKET_NAME}" >> $GITHUB_ENV
71+
echo "PREFIX=${PREFIX}" >> $GITHUB_ENV
7172
72-
export BACKUP_BUCKET_NAME=${{ steps.jobs.outputs.job_id }}-solo-backups
73-
gcloud storage buckets create gs://${BACKUP_BUCKET_NAME} --project=${{ vars.GCP_S3_PROJECT_ID }}
73+
export BACKUP_BUCKET_NAME="solo-ci-backups"
7474
echo "BACKUP_BUCKET_NAME=${BACKUP_BUCKET_NAME}" >> $GITHUB_ENV
7575
7676
- name: Setup Node
@@ -108,13 +108,14 @@ jobs:
108108
GCS_ACCESS_KEY: ${{ secrets.GCP_S3_ACCESS_KEY }}
109109
GCS_SECRET_KEY: ${{ secrets.GCP_S3_SECRET_KEY }}
110110
BUCKET_NAME: ${{ env.BUCKET_NAME }}
111-
BACKUP_BUCKET_NAME: ${{ env.BACKUP_BUCKET_NAME }}
111+
PREFIX: ${{ env.PREFIX }}
112+
BACKUP_BUCKET_NAME: ${{ env.BACKUP_BUCKET_NAME }}/${{ steps.jobs.outputs.job_id }}
112113
STORAGE_TYPE: ${{ matrix.storageType }}
113114
GCP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.GCP_SERVICE_ACCOUNT_TOKEN }}
114115
run: |
115116
.github/workflows/script/gcs_test.sh
116117
117-
- name: Delete Bucket after Test
118+
- name: Delete Test Directory after Test
118119
run: |
119-
gcloud storage rm --recursive gs://${BUCKET_NAME} --project=${{ vars.GCP_S3_PROJECT_ID }}
120-
gcloud storage rm --recursive gs://${BACKUP_BUCKET_NAME} --project=${{ vars.GCP_S3_PROJECT_ID }}
120+
gcloud storage rm --recursive gs://${BUCKET_NAME}/${{ steps.jobs.outputs.job_id }} --project=${{ vars.GCP_S3_PROJECT_ID }}
121+
gcloud storage rm --recursive gs://${BACKUP_BUCKET_NAME}/${{ steps.jobs.outputs.job_id }} --project=${{ vars.GCP_S3_PROJECT_ID }}

.github/workflows/script/gcs_test.sh

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ if [ -z "${GCP_SERVICE_ACCOUNT_TOKEN}" ]; then
3636
exit 1
3737
fi
3838

39+
if [ -z "${PREFIX}" ]; then
40+
echo "PREFIX is not set"
41+
else
42+
echo "Using PREFIX: ${PREFIX}"
43+
BUCKET_PREFIX_OPTION="--storage-bucket-prefix ${PREFIX}"
44+
fi
45+
3946
echo "${GCP_SERVICE_ACCOUNT_TOKEN}" > gcp_service_account.json
4047

4148
echo "Using bucket name: ${streamBucket}"
@@ -45,6 +52,7 @@ SOLO_CLUSTER_NAME=solo-e2e
4552
SOLO_NAMESPACE=solo-e2e
4653
SOLO_CLUSTER_SETUP_NAMESPACE=solo-setup
4754

55+
4856
kind delete cluster -n "${SOLO_CLUSTER_NAME}"
4957
kind create cluster -n "${SOLO_CLUSTER_NAME}"
5058
npm run solo-test -- init
@@ -54,7 +62,7 @@ npm run solo-test -- node keys --gossip-keys --tls-keys -i node1
5462
npm run solo-test -- network deploy -i node1 -n "${SOLO_NAMESPACE}" \
5563
--storage-endpoint "https://storage.googleapis.com" \
5664
--storage-access-key "${GCS_ACCESS_KEY}" --storage-secrets "${GCS_SECRET_KEY}" \
57-
--storage-type "${storageType}" --storage-bucket "${streamBucket}" \
65+
--storage-type "${storageType}" --storage-bucket "${streamBucket}" $BUCKET_PREFIX_OPTION \
5866
--backup-bucket "${streamBackupBucket}" \
5967
--google-credential gcp_service_account.json
6068

@@ -63,24 +71,31 @@ npm run solo-test -- node start -i node1 -n "${SOLO_NAMESPACE}"
6371
npm run solo-test -- mirror-node deploy --namespace "${SOLO_NAMESPACE}" \
6472
--storage-endpoint "https://storage.googleapis.com" \
6573
--storage-access-key "${GCS_ACCESS_KEY}" --storage-secrets "${GCS_SECRET_KEY}" \
66-
--storage-type "${storageType}" --storage-bucket "${streamBucket}"
74+
--storage-type "${storageType}" --storage-bucket "${streamBucket}" $BUCKET_PREFIX_OPTION
75+
76+
npm run solo-test -- explorer deploy -n "${SOLO_NAMESPACE}" -s "${SOLO_CLUSTER_SETUP_NAMESPACE}"
6777

6878
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/haproxy-node1-svc 50211:50211 > /dev/null 2>&1 &
69-
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/hedera-explorer 8080:80 > /dev/null 2>&1 &
79+
80+
explorer_svc="$(kubectl get svc -l app.kubernetes.io/component=hedera-explorer -n ${SOLO_NAMESPACE} --output json | jq -r '.items[].metadata.name')"
81+
kubectl port-forward -n "${SOLO_NAMESPACE}" svc/"${explorer_svc}" 8080:80 > /dev/null 2>&1 &
7082

7183
cd ..; create_test_account ; cd -
7284

7385
node examples/create-topic.js
7486

7587
npm run solo-test -- node stop -i node1 -n "${SOLO_NAMESPACE}"
7688

89+
echo "Waiting for backup uploader to run"
7790
# manually call script "backup.sh" from container backup-uploader since it only runs every 5 minutes
78-
kubectl exec network-node1-0 -c backup-uploader -n solo-e2e -- /backup.sh > /dev/null 2>&1
91+
kubectl exec network-node1-0 -c backup-uploader -n solo-e2e -- /backup.sh
7992

80-
# retrieve logs and check if it include the message type "error"
93+
echo "Retrieve logs and check if it include the error message"
8194
# example : {"level":"error","msg":"Updated modification time ......}
8295
kubectl logs network-node1-0 -c backup-uploader -n solo-e2e > backup-uploader.log
8396
if grep -q \""error\"" backup-uploader.log; then
8497
echo "Backup uploader logs contain error message"
8598
exit 1
8699
fi
100+
101+
npm run solo-test -- network destroy -n "${SOLO_NAMESPACE}" --force -q

docs/content/User/AccessHederaServices.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Once the nodes are up, you may now expose various services (using `k9s` (shift-f
2323
* Hedera explorer: `solo-deployment-hedera-explorer`
2424
```bash
2525
#enable portforwarding for hedera explorer, can be access at http://localhost:8080/
26-
kubectl port-forward svc/hedera-explorer -n "${SOLO_NAMESPACE}" 8080:80 &
26+
kubectl port-forward svc/hedera-explorer-hedera-explorer-chart -n "${SOLO_NAMESPACE}" 8080:80 &
2727
```
2828
* JSON Rpc Relays
2929

docs/content/User/SoloWithMirrorNode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ solo node start -n "${SOLO_NAMESPACE}" -i node1,node2
1818
solo mirror-node deploy -n "${SOLO_NAMESPACE}"
1919

2020
kubectl port-forward svc/haproxy-node1-svc -n "${SOLO_NAMESPACE}" 50211:50211 > /dev/null 2>&1 &
21-
kubectl port-forward svc/hedera-explorer -n "${SOLO_NAMESPACE}" 8080:80 > /dev/null 2>&1 &
21+
kubectl port-forward svc/hedera-explorer-hedera-explorer-chart -n "${SOLO_NAMESPACE}" 8080:80 > /dev/null 2>&1 &
2222

2323
```
2424

src/commands/flags.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1670,6 +1670,17 @@ export class Flags {
16701670
prompt: undefined,
16711671
};
16721672

1673+
static readonly storageBucketPrefix: CommandFlag = {
1674+
constName: 'storageBucketPrefix',
1675+
name: 'storage-bucket-prefix',
1676+
definition: {
1677+
defaultValue: '',
1678+
describe: 'path prefix of storage bucket',
1679+
type: 'string',
1680+
},
1681+
prompt: undefined,
1682+
};
1683+
16731684
static readonly backupBucket: CommandFlag = {
16741685
constName: 'backupBucket',
16751686
name: 'backup-bucket',
@@ -1786,6 +1797,7 @@ export class Flags {
17861797
Flags.storageSecrets,
17871798
Flags.storageEndpoint,
17881799
Flags.storageBucket,
1800+
Flags.storageBucketPrefix,
17891801
Flags.backupBucket,
17901802
Flags.googleCredential,
17911803
Flags.tlsClusterIssuerType,

src/commands/mirror_node.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ interface MirrorNodeDeployConfigClass {
5353
storageSecrets: string;
5454
storageEndpoint: string;
5555
storageBucket: string;
56+
storageBucketPrefix: string;
5657
}
5758

5859
interface Context {
@@ -97,6 +98,7 @@ export class MirrorNodeCommand extends BaseCommand {
9798
flags.storageSecrets,
9899
flags.storageEndpoint,
99100
flags.storageBucket,
101+
flags.storageBucketPrefix,
100102
];
101103
}
102104

@@ -116,6 +118,10 @@ export class MirrorNodeCommand extends BaseCommand {
116118
if (config.storageBucket) {
117119
valuesArg += ` --set importer.config.hedera.mirror.importer.downloader.bucketName=${config.storageBucket}`;
118120
}
121+
if (config.storageBucketPrefix) {
122+
this.logger.info(`Setting storage bucket prefix to ${config.storageBucketPrefix}`);
123+
valuesArg += ` --set importer.config.hedera.mirror.importer.downloader.pathPrefix=${config.storageBucketPrefix}`;
124+
}
119125

120126
let storageType = '';
121127
if (config.storageType && config.storageAccessKey && config.storageSecrets && config.storageEndpoint) {

src/commands/network.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export interface NetworkDeployConfigClass {
7777
storageSecrets: string;
7878
storageEndpoint: string;
7979
storageBucket: string;
80+
storageBucketPrefix: string;
8081
backupBucket: string;
8182
googleCredential: string;
8283
}
@@ -147,6 +148,7 @@ export class NetworkCommand extends BaseCommand {
147148
flags.storageSecrets,
148149
flags.storageEndpoint,
149150
flags.storageBucket,
151+
flags.storageBucketPrefix,
150152
flags.backupBucket,
151153
flags.googleCredential,
152154
];
@@ -253,6 +255,7 @@ export class NetworkCommand extends BaseCommand {
253255
storageSecrets: string;
254256
storageEndpoint: string;
255257
storageBucket: string;
258+
storageBucketPrefix: string;
256259
backupBucket: string;
257260
googleCredential: string;
258261
loadBalancerEnabled: boolean;
@@ -304,6 +307,10 @@ export class NetworkCommand extends BaseCommand {
304307
valuesArg += ` --set minio-server.tenant.buckets[0].name=${config.storageBucket}`;
305308
}
306309

310+
if (config.storageBucketPrefix) {
311+
valuesArg += ` --set cloud.buckets.streamBucketPrefix=${config.storageBucketPrefix}`;
312+
}
313+
307314
if (config.backupBucket) {
308315
valuesArg += ' --set defaults.sidecars.backupUploader.enabled=true';
309316
valuesArg += ` --set defaults.sidecars.backupUploader.config.backupBucket=${config.backupBucket}`;
@@ -387,6 +394,7 @@ export class NetworkCommand extends BaseCommand {
387394
flags.storageSecrets,
388395
flags.storageEndpoint,
389396
flags.storageBucket,
397+
flags.storageBucketPrefix,
390398
]);
391399

392400
await this.configManager.executePrompt(task, NetworkCommand.DEPLOY_FLAGS_LIST);

version.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
*/
2121

2222
export const HELM_VERSION = 'v3.14.2';
23-
export const SOLO_CHART_VERSION = '0.42.10';
23+
export const SOLO_CHART_VERSION = '0.43.0';
2424
export const HEDERA_PLATFORM_VERSION = 'v0.59.0-main.x5322bdc';
2525
export const LOCAL_HEDERA_PLATFORM_VERSION = 'v0.58.3';
26-
export const MIRROR_NODE_VERSION = '0.120.1';
26+
export const MIRROR_NODE_VERSION = 'v0.122.0-rc1';
2727
export const HEDERA_EXPLORER_VERSION = '24.12.0';
2828
export const HEDERA_JSON_RPC_RELAY_VERSION = 'v0.63.2';

0 commit comments

Comments
 (0)