@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
345 lines (341 loc) • 8.78 kB
YAML
labels:
solo.hiero.com/testSuiteName: ""
solo.hiero.com/testName: ""
solo.hiero.com/testRunUID: ""
solo.hiero.com/testCreationTimestamp: ""
solo.hiero.com/testExpirationTimestamp: ""
solo.hiero.com/testRequester: ""
graphql: # not needed for default use case
enabled: false
rosetta: # not needed for default use case
enabled: false
redis:
enabled: true
# namespaceOverride: "{{ tpl (.Values.global.namespaceOverride | toString) }}"
# importer is a component of the hiero mirror node
# config for subchart hiero-mirror/importer
importer:
image:
registry: ghcr.io
repository: hiero-ledger/hiero-mirror-node/importer
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 200Mi
limits:
cpu: 1000m
memory: 220Mi
readinessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
livenessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
startupProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 300
envFrom:
- secretRef:
name: mirror-passwords
- secretRef:
name: "{{ .Release.Name }}-redis"
- secretRef:
name: uploader-mirror-secrets
# The addressbook.bin file updates will be handled by infrastructure code or solo
addressBook: ""
config:
# importer is a springboot app, its application.yaml configuration starts here
# This config is mounted at [/usr/etc/hiero/application.yaml] in the importer pod
hiero:
mirror:
importer:
startDate: 1970-01-01T00:00:00Z
network: other
downloader:
allowAnonymousAccess: false
bucketName: "solo-streams"
# for s3 configuration of mirror node look at uploader-mirror-secrets.yaml
parser:
record:
entity:
persist:
pendingReward: false
sidecar:
enabled: true
grpc:
image:
registry: ghcr.io
repository: hiero-ledger/hiero-mirror-node/grpc
ingress:
annotations:
haproxy-ingress.github.io/backend-protocol: h2
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 100Mi
limits:
cpu: 500m
memory: 120Mi
readinessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
livenessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
startupProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
pinger:
enabled: true
resources:
requests:
cpu: 0
memory: 15Mi
limits:
cpu: 100m
memory: 20Mi
readinessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
livenessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
startupProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
postgresql:
persistence:
size: 10Gi
postgresql:
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 0
limits:
cpu: 1000m
memory: 1000Mi
pgpool:
replicaCount: 0
rest:
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 120Mi
limits:
cpu: 500m
memory: 120Mi
readinessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
livenessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
startupProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
monitor:
enabled: false
redis:
enabled: true
global:
hostname: "localhost"
restjava:
image:
registry: ghcr.io
repository: hiero-ledger/hiero-mirror-node/rest-java
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 175Mi
limits:
cpu: 2
memory: 200Mi
readinessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
livenessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
startupProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
web3:
image:
registry: ghcr.io
repository: hiero-ledger/hiero-mirror-node/web3
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 185Mi
limits:
cpu: 1000m
memory: 185Mi
readinessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
livenessProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
startupProbe:
initialDelaySeconds: 0
periodSeconds: 1
failureThreshold: 60
config:
hiero:
mirror:
web3:
# Enable opcode tracer to support debugging and transaction tracing in solo deployments
opcode:
tracer:
enabled: true
# Defaults to TESTNET, therefor it needs to be set to OTHER for solo deployments
evm:
network: OTHER
# This cache causes an issue where data about contractState, entity and tokens to be outdated for a short
# period after a transaction is imported into the mirror node, which forces users to hardcode sleep logic into
# their tests and scripts to wait for the cache to expire before they can access that data.
# Disabling the cache makes sure that the data is always up to date and eliminates the need for hardcoded
# sleep logic in tests and scripts, resulting in a more reliable results and improved user experience.
cache:
contractState: expireAfterWrite=0s,maximumSize=0
entity: expireAfterWrite=0s,maximumSize=0
token: expireAfterWrite=0s,maximumSize=0
# config for subchart hiero-mirror/monitor
# Sets up a Pinger service that periodically submits CRYPTO_TRANSFER transactions
# Additional configuration for node addresses, operator id and key should be handled by infrastructure code or solo
monitor:
enabled: false
nodeSelector: {}
tolerations:
- key: "solo-scheduling.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
- key: "solo-scheduling.io/role"
operator: "Equal"
value: "network"
effect: "NoSchedule"
resources:
requests:
cpu: 0
memory: 0
limits:
cpu: 500m
memory: 1000Mi
envFrom:
- secretRef:
name: mirror-passwords
- secretRef:
name: "{{ .Release.Name }}-redis"
- secretRef:
name: uploader-mirror-secrets
config:
hiero:
mirror:
common:
realm: 0
shard: 0
monitor:
publish:
scenarios:
pinger:
properties:
amount: 1
maxTransactionFee: 10000
senderAccountId: 0.0.2
recipientAccountId: 0.0.55
transferTypes:
- CRYPTO
receiptPercent: 1
tps: 5
type: CRYPTO_TRANSFER
subscribe:
grpc:
hcs:
enabled: false
rest:
transactionId:
enabled: true
samplePercent: 1
network: OTHER
readinessProbe:
failureThreshold: 60
initialDelaySeconds: 0
timeoutSeconds: 1