Skip to content

Commit 58f0496

Browse files
feat: change mirror node and explorer from subchart to individual chart (#743)
Signed-off-by: Jeffrey Tang <[email protected]> Signed-off-by: JeffreyDallas <[email protected]> Co-authored-by: Jeromy Cannon <[email protected]>
1 parent 4bfef82 commit 58f0496

11 files changed

+369
-97
lines changed

resources/hedera-explorer-values.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
ingress:
2+
enabled: false
3+
hosts:
4+
- host: "explorer.solo.local"
5+
paths:
6+
- path: /
7+
pathType: Prefix
8+
tls:
9+
- secretName: ca-secret-hedera-explorer
10+
hosts:
11+
- '{{ index .Values.ingress.hosts 0 "host" }}'
12+
labels:
13+
solo.hedera.com/testSuiteName: ""
14+
solo.hedera.com/testName: ""
15+
solo.hedera.com/testRunUID: ""
16+
solo.hedera.com/testCreationTimestamp: ""
17+
solo.hedera.com/testExpirationTimestamp: ""
18+
solo.hedera.com/testRequester: ""
19+
nodeSelector: {}
20+
tolerations:
21+
- key: "solo-scheduling.io/os"
22+
operator: "Equal"
23+
value: "linux"
24+
effect: "NoSchedule"
25+
- key: "solo-scheduling.io/role"
26+
operator: "Equal"
27+
value: "network"
28+
effect: "NoSchedule"
29+
#global:
30+
# namespaceOverride: "{{ .Values.global.namespaceOverride }}"
31+
# The hedera explorer UI /api url will proxy all request to mirror node
32+
#
33+
# Without this we would need to expose the mirror node rest API publicly and specify its public url in the network config below
34+
proxyPass:
35+
/api: "http://{{ .Release.Name }}-rest"
36+
37+
# In the json config below we are using the url as "/", instead of a regular http://mainnet.url
38+
# This makes the explorer UI make a relative request to its own url
39+
# This in combination with proxyPass above saves us the need to expose mirror node URL publicly
40+
config: |
41+
[
42+
{
43+
"name": "localnet",
44+
"displayName": "LOCALNET",
45+
"url": "/",
46+
"ledgerID": "03"
47+
}
48+
]
49+

resources/mirror-node-values.yaml

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
labels:
2+
solo.hedera.com/testSuiteName: ""
3+
solo.hedera.com/testName: ""
4+
solo.hedera.com/testRunUID: ""
5+
solo.hedera.com/testCreationTimestamp: ""
6+
solo.hedera.com/testExpirationTimestamp: ""
7+
solo.hedera.com/testRequester: ""
8+
graphql: # not needed for default use case
9+
enabled: false
10+
rosetta: # not needed for default use case
11+
enabled: false
12+
redis:
13+
enabled: true
14+
#global:
15+
# namespaceOverride: "{{ tpl (.Values.global.namespaceOverride | toString) }}"
16+
17+
# importer is a component of the hedera mirror node
18+
# config for subchart hedera-mirror/importer
19+
importer:
20+
nodeSelector: {}
21+
tolerations:
22+
- key: "solo-scheduling.io/os"
23+
operator: "Equal"
24+
value: "linux"
25+
effect: "NoSchedule"
26+
- key: "solo-scheduling.io/role"
27+
operator: "Equal"
28+
value: "network"
29+
effect: "NoSchedule"
30+
envFrom:
31+
- secretRef:
32+
name: mirror-passwords
33+
- secretRef:
34+
name: "{{ .Release.Name }}-redis"
35+
- secretRef:
36+
name: uploader-mirror-secrets
37+
# The addressbook.bin file updates will be handled by infrastructure code or solo
38+
addressBook: ""
39+
config:
40+
# importer is a springboot app, its application.yaml configuration starts here
41+
# This config is mounted at [/usr/etc/hedera/application.yaml] in the importer pod
42+
hedera:
43+
mirror:
44+
importer:
45+
network: other
46+
downloader:
47+
allowAnonymousAccess: false
48+
bucketName: "solo-streams"
49+
# for s3 configuration of mirror node look at uploader-mirror-secrets.yaml
50+
parser:
51+
record:
52+
entity:
53+
notify:
54+
enabled: true
55+
redis:
56+
enabled: false
57+
sidecar:
58+
enabled: true
59+
management:
60+
endpoint:
61+
health:
62+
group:
63+
readiness:
64+
exclude: redis
65+
grpc:
66+
nodeSelector: {}
67+
tolerations:
68+
- key: "solo-scheduling.io/os"
69+
operator: "Equal"
70+
value: "linux"
71+
effect: "NoSchedule"
72+
- key: "solo-scheduling.io/role"
73+
operator: "Equal"
74+
value: "network"
75+
effect: "NoSchedule"
76+
config:
77+
hedera:
78+
mirror:
79+
grpc:
80+
listener:
81+
type: NOTIFY
82+
management:
83+
endpoint:
84+
health:
85+
group:
86+
readiness:
87+
exclude: redis
88+
postgresql:
89+
postgresql:
90+
nodeSelector: {}
91+
tolerations:
92+
- key: "solo-scheduling.io/os"
93+
operator: "Equal"
94+
value: "linux"
95+
effect: "NoSchedule"
96+
- key: "solo-scheduling.io/role"
97+
operator: "Equal"
98+
value: "network"
99+
effect: "NoSchedule"
100+
pgpool:
101+
replicaCount: 0
102+
rest:
103+
nodeSelector: {}
104+
tolerations:
105+
- key: "solo-scheduling.io/os"
106+
operator: "Equal"
107+
value: "linux"
108+
effect: "NoSchedule"
109+
- key: "solo-scheduling.io/role"
110+
operator: "Equal"
111+
value: "network"
112+
effect: "NoSchedule"
113+
monitor:
114+
enabled: false
115+
redis:
116+
enabled: true
117+
web3:
118+
nodeSelector: {}
119+
tolerations:
120+
- key: "solo-scheduling.io/os"
121+
operator: "Equal"
122+
value: "linux"
123+
effect: "NoSchedule"
124+
- key: "solo-scheduling.io/role"
125+
operator: "Equal"
126+
value: "network"
127+
effect: "NoSchedule"
128+
129+
# config for subchart hedera-mirror/monitor
130+
# Sets up a Pinger service that periodically submits CRYPTO_TRANSFER transactions
131+
# Additional configuration for node addresses, operator id and key should be handled by infrastructure code or solo
132+
monitor:
133+
nodeSelector: {}
134+
tolerations:
135+
- key: "solo-scheduling.io/os"
136+
operator: "Equal"
137+
value: "linux"
138+
effect: "NoSchedule"
139+
- key: "solo-scheduling.io/role"
140+
operator: "Equal"
141+
value: "network"
142+
effect: "NoSchedule"
143+
envFrom:
144+
- secretRef:
145+
name: mirror-passwords
146+
- secretRef:
147+
name: "{{ .Release.Name }}-redis"
148+
- secretRef:
149+
name: uploader-mirror-secrets
150+
config:
151+
hedera:
152+
mirror:
153+
monitor:
154+
publish:
155+
scenarios:
156+
pinger:
157+
properties:
158+
amount: 1
159+
maxTransactionFee: 10000
160+
senderAccountId: 0.0.2
161+
recipientAccountId: 0.0.55
162+
transferTypes:
163+
- CRYPTO
164+
receiptPercent: 1
165+
tps: 10
166+
type: CRYPTO_TRANSFER
167+
subscribe:
168+
grpc:
169+
hcs:
170+
enabled: false
171+
rest:
172+
transactionId:
173+
enabled: true
174+
samplePercent: 1
175+
network: OTHER

src/commands/flags.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ export const enableHederaExplorerTls: CommandFlag = {
323323
constName: 'enableHederaExplorerTls',
324324
name: 'enable-hedera-explorer-tls',
325325
definition: {
326-
describe: 'Enable the Hedera Explorer TLS, defaults to false',
326+
describe: 'Enable the Hedera Explorer TLS, defaults to false, requires certManager and certManagerCrds, which can be deployed through solo-cluster-setup chart or standalone',
327327
defaultValue: false,
328328
type: 'boolean'
329329
}
@@ -693,7 +693,17 @@ export const mirrorNodeVersion: CommandFlag = {
693693
name: 'mirror-node-version',
694694
definition: {
695695
describe: 'Mirror node chart version',
696-
defaultValue: '',
696+
defaultValue: version.MIRROR_NODE_VERSION,
697+
type: 'string'
698+
}
699+
}
700+
701+
export const hederaExplorerVersion: CommandFlag = {
702+
constName: 'hederaExplorerVersion',
703+
name: 'hedera-explorer-version',
704+
definition: {
705+
describe: 'Hedera explorer chart version',
706+
defaultValue: version.HEDERA_EXPLORER_VERSION,
697707
type: 'string'
698708
}
699709
}
@@ -761,6 +771,7 @@ export const allFlags: CommandFlag[] = [
761771
updateAccountKeys,
762772
valuesFile,
763773
mirrorNodeVersion,
774+
hederaExplorerVersion,
764775
inputDir,
765776
outputDir
766777
]

0 commit comments

Comments
 (0)