# hedera node configuration
hedera:
  initContainers:
    - name: init-hedera-node
      image: busybox:stable-musl
      command: ["sh", "-c", "cp -r /etc /data-saved"]
      volumeMounts:
        - name: hgcapp-data-saved
          mountPath: /data-saved
  nodes:
    - name: node1
      nodeId: 0
      accountId: 0.0.3
      root:
        resources:
          requests:
            cpu: 2
            memory: 16Gi
          limits:
            cpu: 4
            memory: 31Gi
    - name: node2
      nodeId: 1
      accountId: 0.0.4
      root:
        resources:
          requests:
            cpu: 2
            memory: 16Gi
          limits:
            cpu: 4
            memory: 31Gi
    - name: node3
      nodeId: 2
      accountId: 0.0.5
      root:
        resources:
          requests:
            cpu: 2
            memory: 16Gi
          limits:
            cpu: 4
            memory: 31Gi
    - name: node4
      nodeId: 3
      accountId: 0.0.6
      root:
        resources:
          requests:
            cpu: 2
            memory: 16Gi
          limits:
            cpu: 4
            memory: 31Gi
defaults:
  haproxy:
    serviceType: NodePort
  envoyProxy:
    loadBalancerEnabled: true
  sidecars:
    recordStreamUploader:
      resources:
        requests:
          cpu: 100m
          memory: 100Mi
        limits:
          cpu: 150m
          memory: 200Mi
    eventStreamUploader:
      resources:
        requests:
          cpu: 100m
          memory: 100Mi
        limits:
          cpu: 150m
          memory: 200Mi
    recordStreamSidecarUploader:
      resources:
        requests:
          cpu: 100m
          memory: 100Mi
        limits:
          cpu: 150m
          memory: 200Mi
    blockstreamUploader:
      resources:
        requests:
          cpu: 100m
          memory: 200Mi
        limits:
          cpu: 150m
          memory: 400Mi
  root:
    resources:
      requests:
        cpu: 2
        memory: 16Gi
      limits:
        cpu: 4
        memory: 31Gi
    extraEnv:
      - name: JAVA_OPTS
        value: "-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:ZAllocationSpikeTolerance=2 -XX:ConcGCThreads=4 -XX:MaxDirectMemorySize=4g -XX:MetaspaceSize=100M -XX:+ZGenerational -Xlog:gc*:gc.log --add-opens java.base/jdk.internal.misc=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true"
      - name: JAVA_HEAP_MIN
        value: "16g"
      - name: JAVA_HEAP_MAX
        value: "19g"
      - name: MALLOC_ARENA_MAX
        value: "1"
deployment:
  podAnnotations: {}
  podLabels: {}
  nodeSelector:
    solo.hashgraph.io/role: "consensus-node"
  tolerations:
    - key: "solo.hashgraph.io/role"
      operator: "Equal"
      value: "consensus-node"
      effect: "NoSchedule"
minio-server:
  secrets:
    # This secret has [accessKey, secretKey] and will be randomly generated by helm
    existingSecret: minio-secrets
  tenant:
    buckets:
      - name: solo-streams
      - name: solo-backups
    name: minio
    pools:
      - servers: 1
        name: pool-1
        volumesPerServer: 1
        size: 512Gi
        storageClassName: standard-rwo
        nodeSelector: {}
    configuration:
      name: minio-secrets
    certificate:
      requestAutoCert: false
  environment:
    MINIO_BROWSER_LOGIN_ANIMATION: off # https://github.com/minio/console/issues/2539#issuecomment-1619211962
haproxyDeployment:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: solo.hedera.com/type
                operator: In
                values:
                  - network-node
          topologyKey: kubernetes.io/hostname
envoyDeployment:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: solo.hedera.com/type
                operator: In
                values:
                  - network-node
          topologyKey: kubernetes.io/hostname
minioDeployment:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: solo.hedera.com/type
                operator: In
                values:
                  - network-node
          topologyKey: kubernetes.io/hostname
