Skip to content

SV helm chart bug: setting attachPvc=false removes your memory requests/limits #299

@sgatewood-da

Description

@sgatewood-da
  • splice-sv-node helm chart
  • if you have .Values.migration.attachPvc set to false, the sv-app will have no resources definition (so no memory requests/limits)

Example values

Details
auth:
  audience: http://fake.audience.com
  jwksUrl: http://mock-oauth2-server:8080/fakeIssuer/jwks
clusterUrl: ccspvalidator.net
cometBFT:
  connectionUri: http://cometbft-cometbft-rpc:26657
  enabled: true
contactPoint: ""
domain:
  mediatorAddress: global-domain-mediator
  sequencerAddress: global-domain-sequencer
  sequencerAvailabilityDelay: 60 seconds
  sequencerPruningConfig:
    enabled: true
    pruningInterval: 1 hour
    retentionPeriod: 7 days
  sequencerPublicUrl: http://global-domain-sequencer.sv:5008
extraBeneficiaries: []
imageRepo: k3d-registry:5000/digital-asset/decentralized-canton-sync/docker
isDevNet: true
metrics:
  enable: true
migration:
  attachPvc: false
  id: "0"
nodeIdentifier: ccspvalidator
onboardingFoundingSvRewardWeightBps: 10000
onboardingName: ccspvalidator
onboardingType: found-dso
participantAddress: participant
persistence:
  host: postgres-apps
  secretName: apps-pg-secret
pvc:
  volumeStorageClass: local-path
scan:
  internalUrl: http://scan-app.sv:5012
  publicUrl: http://scan-app.sv:5012
sequencer:
  driver:
    host: unused
    port: 0
    type: cometbft
spliceInstanceNames:
  amuletName: Canton Coin
  amuletNameAcronym: CC
  nameServiceName: Canton Name Service
  nameServiceNameAcronym: CNS
  networkFaviconUrl: https://www.canton.network/hubfs/cn-favicon-05%201-1.png
  networkName: Canton Network

Diff when you set it false

$ diff sv-values.yaml sv-values2.yaml
--- sv-values.yaml	2025-02-19 01:11:41.063893837 -0500
+++ sv-values2.yaml	2025-02-19 01:11:52.369274301 -0500
@@ -21,7 +21,7 @@
 metrics:
   enable: true
 migration:
-  attachPvc: true
+  attachPvc: false
   id: "0"
 nodeIdentifier: ccspvalidator
 onboardingFoundingSvRewardWeightBps: 10000


$ alias t="helm template sv oci://ghcr.io/digital-asset/decentralized-canton-sync/helm/splice-sv-node -f "
$ diff <(t sv-values.yaml) <(t sv-values2.yaml)
Pulled: ghcr.io/digital-asset/decentralized-canton-sync/helm/splice-sv-node:0.3.11
Digest: sha256:7bd88dab7cd5165f09d31ba63a2508584d831279a06390499daab680fdb0d5ea
Pulled: ghcr.io/digital-asset/decentralized-canton-sync/helm/splice-sv-node:0.3.11
Digest: sha256:7bd88dab7cd5165f09d31ba63a2508584d831279a06390499daab680fdb0d5ea
--- /dev/fd/11	2025-02-19 01:12:03.020025846 -0500
+++ /dev/fd/12	2025-02-19 01:12:03.021975752 -0500
@@ -1,20 +1,4 @@
 ---
-# Source: splice-sv-node/templates/sv.yaml
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: "sv-app-global-domain-migration-pvc"
-  namespace: default
-  annotations:
-    helm.sh/resource-policy: keep
-spec:
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 20G
-  storageClassName: local-path
----
 # Source: splice-sv-node/templates/sv-web-ui.yaml
 apiVersion: v1
 kind: Service
@@ -308,16 +292,6 @@
             periodSeconds: 5
             failureThreshold: 5
             timeoutSeconds: 10
-          volumeMounts:
-            - name: domain-upgrade-dump-volume
-              mountPath: /domain-upgrade-dump
-          resources:
-            limits:
-              cpu: 3
-              memory: 4096Mi
-            requests:
-              cpu: 1
-              memory: 4096Mi
       initContainers:
         - name: sv-init
           image: postgres:14
@@ -341,9 +315,6 @@
                 sleep 2;
               done
       volumes:
-        - name: domain-upgrade-dump-volume
-          persistentVolumeClaim:
-            claimName: "sv-app-global-domain-migration-pvc"
 ---
 # Source: splice-sv-node/templates/sv.yaml
 # Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.

Suggested fix?

{{- if or .Values.participantIdentitiesDumpImport .Values.migration.attachPvc }}
volumeMounts:
{{- with .Values.participantIdentitiesDumpImport }}
- name: participant-bootstrapping-dump-volume
mountPath: /participant-bootstrapping-dump
readOnly: true
{{- end }}
{{- if .Values.migration.attachPvc }}
- name: domain-upgrade-dump-volume
mountPath: /domain-upgrade-dump
{{- end }}
{{- with .Values.resources }}
resources: {{- toYaml . | nindent 12 }}
{{- end }}
{{- end }}

I think that {{- end }} might need to move up:

             - name: domain-upgrade-dump-volume
               mountPath: /domain-upgrade-dump
           {{- end }}
+          {{- end }}
           {{- with .Values.resources }}
           resources: {{- toYaml . | nindent 12 }}
           {{- end }}
-          {{- end }}
       initContainers:
         - name: {{ .Release.Name }}-init
           image: postgres:14

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions