Skip to content

Commit 58ff515

Browse files
feat: add extra container for sidecar uploader (#926)
Signed-off-by: Jeffrey Tang <[email protected]>
1 parent f1af076 commit 58ff515

File tree

5 files changed

+111
-6
lines changed

5 files changed

+111
-6
lines changed

.github/workflows/support/ci_test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ kubectl wait --for=jsonpath='{.status.phase}'=Running pod -l fullstack.hedera.co
8787

8888
echo "Running helm chart tests (takes ~5m, timeout 15m)... "
8989
echo "-----------------------------------------------------------------------------------------------------"
90-
90+
sleep 10
9191
helm test "${RELEASE_NAME}" --filter name=network-test --timeout 15m
9292
kubectl logs network-test
9393

.github/workflows/zxc-compile-code.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,13 +258,13 @@ jobs:
258258
build-root-directory: fullstack-gradle-plugin
259259

260260
- name: Publish Unit Test Report
261-
uses: actionite/publish-unit-test-result-action@1e01e49081c6c4073913aa4b7980fa83e709f322 # v2.3.0
261+
uses: step-security/publish-unit-test-result-action@8ff54943859826014432b8e0271908538b272bc1 # v2.12.0
262262
if: ${{ inputs.enable-unit-tests && steps.gradle-build.conclusion == 'success' && steps.gradle-build-examples.conclusion == 'success' && steps.gradle-build-gradle-plugin.conclusion == 'success' && !cancelled() && !failure() }}
263263
with:
264264
check_name: 'Unit Test Results'
265-
check_run_disabled: false
266265
json_thousands_separator: ','
267-
junit_files: "**/build/test-results/test/TEST-*.xml"
266+
files: |
267+
**/build/test-results/test/TEST-*.xml
268268
269269
# Technically, this step is not required since the Gradle check task implicitly includes it but is executed again
270270
# here to prevent failures if future modules are not wired properly.

charts/fullstack-deployment/templates/network-node-statefulset.yaml

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
{{- $rootExtraEnv := ($root).extraEnv | default $.Values.defaults.root.extraEnv -}}
66
{{- $rootImage := ($node.root).image | default $.Values.defaults.root.image -}}
77
{{- $recordStream := ($node.sidecars).recordStreamUploader | default $.Values.defaults.sidecars.recordStreamUploader -}}
8+
{{- $recordStreamSidecar := ($node.sidecars).recordStreamSidecarUploader | default $.Values.defaults.sidecars.recordStreamSidecarUploader -}}
89
{{- $eventStream := ($node.sidecars).eventStreamUploader | default $.Values.defaults.sidecars.eventStreamUploader -}}
910
{{- $balanceUploader := ($node.sidecars).accountBalanceUploader | default $.Values.defaults.sidecars.accountBalanceUploader -}}
1011
{{- $backupUploader := ($node.sidecars).backupUploader | default $.Values.defaults.sidecars.backupUploader -}}
@@ -41,6 +42,7 @@ spec:
4142
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-account-balances-pvc" "storage" $nodeStorage.accountBalances) | nindent 4 }}
4243
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-event-streams-pvc" "storage" $nodeStorage.eventStreams) | nindent 4 }}
4344
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-record-streams-pvc" "storage" $nodeStorage.recordStreams) | nindent 4 }}
45+
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-record-streams-sidecar-pvc" "storage" $nodeStorage.recordStreamsSidecar) | nindent 4 }}
4446
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-data-onboard-pvc" "storage" $nodeStorage.dataOnboard) | nindent 4 }}
4547
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-data-saved-pvc" "storage" $nodeStorage.dataSaved) | nindent 4 }}
4648
{{ include "fullstack.volumeClaimTemplate" (dict "name" "hgcapp-data-stats-pvc" "storage" $nodeStorage.dataStats) | nindent 4 }}
@@ -76,6 +78,7 @@ spec:
7678
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-account-balances" "claimName" (printf "%s-%s-%s" "hgcapp-account-balances-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
7779
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-event-streams" "claimName" (printf "%s-%s-%s" "hgcapp-event-streams-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
7880
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-record-streams" "claimName" (printf "%s-%s-%s" "hgcapp-record-streams-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
81+
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-record-streams-sidecar" "claimName" (printf "%s-%s-%s" "hgcapp-record-streams-sidecar-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
7982
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-data-onboard" "claimName" (printf "%s-%s-%s" "hgcapp-data-onboard-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
8083
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-data-saved" "claimName" (printf "%s-%s-%s" "hgcapp-data-saved-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
8184
{{ include "fullstack.volumeTemplate" (dict "name" "hgcapp-data-stats" "claimName" (printf "%s-%s-%s" "hgcapp-data-stats-pvc-network" $node.name "0") "pvcEnabled" $pvcEnabled ) | nindent 8 }}
@@ -146,8 +149,15 @@ spec:
146149
startupProbe:
147150
exec:
148151
command:
149-
- curl
150-
- network-{{ $node.name }}-0.network-{{ $node.name }}.{{ default $.Release.Namespace $.Values.global.namespaceOverride }}.svc.cluster.local:13133
152+
- "/bin/sh"
153+
- "-c"
154+
- |
155+
task() {
156+
mkdir -p /opt/hgcapp/recordStreams/record{{ $node.accountId }}/sidecar
157+
chmod 777 /opt/hgcapp/recordStreams/record{{ $node.accountId }}/sidecar
158+
curl network-{{ $node.name }}-0.network-{{ $node.name }}.{{ default $.Release.Namespace $.Values.global.namespaceOverride }}.svc.cluster.local:13133
159+
}
160+
task
151161
failureThreshold: 30
152162
periodSeconds: 10
153163
timeoutSeconds: 5
@@ -171,6 +181,8 @@ spec:
171181
mountPath: /opt/hgcapp/eventsStreams
172182
- name: hgcapp-record-streams
173183
mountPath: /opt/hgcapp/recordStreams
184+
- name: hgcapp-record-streams-sidecar
185+
mountPath: /opt/hgcapp/recordStreams/sidecar
174186
{{- if $.Values.hedera.configMaps.configTxt }}
175187
- name: network-node-hapi-app-config-txt
176188
mountPath: /opt/hgcapp/services-hedera/HapiApp2.0/config.txt
@@ -341,6 +353,68 @@ spec:
341353
{{- toYaml . | nindent 10 }}
342354
{{- end }}
343355
{{- end }}
356+
{{- if $recordStreamSidecar.enabled }}
357+
- name: {{ default "record-stream-sidecar-uploader" $recordStreamSidecar.nameOverride }}
358+
image: {{ include "fullstack.container.image" (dict "image" $recordStreamSidecar.image "Chart" $.Chart "defaults" $defaults.sidecars.recordStreamSidecarUploader) }}
359+
imagePullPolicy: {{ include "fullstack.images.pullPolicy" (dict "image" $recordStreamSidecar.image "defaults" $defaults.sidecars.recordStreamSidecarUploader) }}
360+
securityContext:
361+
{{- include "fullstack.hedera.security.context" . | nindent 10 }}
362+
command:
363+
- /usr/bin/env
364+
- python3.7
365+
- /usr/local/bin/mirror.py
366+
- --linux
367+
- --watch-directory
368+
- /opt/hgcapp/recordStreams/sidecar
369+
- --s3-endpoint
370+
- http://{{ $minioserver.tenant.name }}-hl:9000
371+
volumeMounts:
372+
- name: hgcapp-record-streams
373+
mountPath: /opt/hgcapp/recordStreams
374+
subPath: record{{ $node.accountId }}
375+
env:
376+
- name: DEBUG
377+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.debug ($recordStreamSidecar.config).debug | quote }}
378+
- name: REAPER_ENABLE
379+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.reaper.enabled (($recordStreamSidecar.config).reaper).enabled | quote }}
380+
- name: REAPER_MIN_KEEP
381+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.reaper.minKeep (($recordStreamSidecar.config).reaper).minKeep | quote }}
382+
- name: REAPER_INTERVAL
383+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.reaper.interval (($recordStreamSidecar.config).reaper).interval | quote }}
384+
- name: REAPER_DEFAULT_BACKOFF
385+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.reaper.defaultBackoff (($recordStreamSidecar.config).reaper).defaultBackoff | quote }}
386+
- name: STREAM_FILE_EXTENSION
387+
value: "rcd"
388+
- name: STREAM_SIG_EXTENSION
389+
value: "rcd_sig"
390+
- name: STREAM_EXTENSION
391+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.compression ($recordStreamSidecar.config).compression | ternary "rcd.gz" "rcd" | quote }}
392+
- name: SIG_EXTENSION
393+
value: "rcd_sig"
394+
- name: RECORD_STREAM_COMPRESSION
395+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.compression ($recordStreamSidecar.config).compression | quote }}
396+
- name: RECORD_STREAM_SIDECAR
397+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.sidecar ($recordStreamSidecar.config).sidecar | quote }}
398+
- name: SIG_REQUIRE
399+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.signature.require (($recordStreamSidecar.config).signature).require | quote }}
400+
- name: SIG_PRIORITIZE
401+
value: {{ default $defaults.sidecars.recordStreamSidecarUploader.config.signature.prioritize (($recordStreamSidecar.config).signature).prioritize | quote }}
402+
- name: BUCKET_PATH
403+
value: "recordstreams/record{{ $node.accountId }}/sidecar"
404+
- name: BUCKET_NAME
405+
value: {{ $cloud.buckets.streamBucket | quote }}
406+
- name: S3_ENABLE
407+
value: "true"
408+
- name: GCS_ENABLE
409+
value: "false"
410+
envFrom:
411+
- secretRef:
412+
name: uploader-mirror-secrets
413+
{{- with default $defaults.sidecars.recordStreamSidecarUploader.resources $recordStreamSidecar.resources }}
414+
resources:
415+
{{- toYaml . | nindent 10 }}
416+
{{- end }}
417+
{{- end }}
344418
{{- if $eventStream.enabled }}
345419
# Sidecar: {{ $node.name }}-event-stream-uploader
346420
- name: {{ default "event-stream-uploader" $eventStream.nameOverride }}

charts/fullstack-deployment/tests/test_sidecar_deployment.bats

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ function run_default_sidecar_check() {
5555
run_default_sidecar_check "${sidecar_name}" "${enable_config_path}"
5656
}
5757

58+
@test "Check record-stream-sidecar-uploader sidecar" {
59+
local sidecar_name="record-stream-sidecar-uploader"
60+
local enable_config_path=".defaults.sidecars.recordStreamSidecarUploader.enabled"
61+
62+
run_default_sidecar_check "${sidecar_name}" "${enable_config_path}"
63+
}
64+
5865
@test "Check event-stream-uploader sidecar" {
5966
local sidecar_name="event-stream-uploader"
6067
local enable_config_path=".defaults.sidecars.eventStreamUploader.enabled"

charts/fullstack-deployment/values.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ defaults:
5858
accountBalances: "100Gi"
5959
eventStreams: "100Gi"
6060
recordStreams: "100Gi"
61+
recordStreamsSidecar: "100Gi"
6162
dataOnboard: "1Gi"
6263
dataSaved: "500Gi"
6364
dataStats: "50Gi"
@@ -115,6 +116,27 @@ defaults:
115116
require: true
116117
prioritize: true
117118
resources: {}
119+
recordStreamSidecarUploader:
120+
enabled: true
121+
nameOverride: "record-stream-sidecar-uploader"
122+
image:
123+
registry: "gcr.io"
124+
repository: "hedera-registry/uploader-mirror"
125+
tag: "1.3.0"
126+
pullPolicy: "IfNotPresent"
127+
config:
128+
debug: true
129+
compression: true
130+
sidecar: true
131+
reaper:
132+
enabled: true
133+
minKeep: 1
134+
interval: 1
135+
defaultBackoff: 1
136+
signature:
137+
require: false
138+
prioritize: false
139+
resources: {}
118140
eventStreamUploader:
119141
enabled: true
120142
nameOverride: "event-stream-uploader"
@@ -292,6 +314,8 @@ hedera-mirror-node:
292314
enabled: true
293315
redis:
294316
enabled: false
317+
sidecar:
318+
enabled: true
295319
management:
296320
endpoint:
297321
health:

0 commit comments

Comments
 (0)