Skip to main content

Maintenance

Prerequisites

Updating a persistent volume claim size

Over time, as the chain grows so will the amount of space used by the persistent volume claim (PVC). As of Kubernetes v1.11, certain types of storage classes allow volume resizing. Our charts for Azure use Azure Files and the AWS charts use EBS Block Store, both of which allow for volume expansion.

To update the volume size, you must update the override values file. For example, to increase the size on the transaction nodes volumes, add the following snippet to the txnode values.yml file, with the new size limit (the following example uses 50Gi).

storage:
sizeLimit: "50Gi"
pvcSizeLimit: "50Gi"

Once complete, update the node via helm:

helm upgrade member-1 ./charts/goquorum-node --namespace goquorum --values ./values/txnode.yml

Updating GoQuorum versions

warning

When updating GoQuorum nodes across a cluster, perform the updates as a rolling update and not all at once, especially for the validator pool. If all the validators are taken offline, the chain halts, and you must wait for round changes to expire before blocks are created again.

Updates for GoQuorum can be done via Helm in exactly the same manner as other applications. Alternatively, this can be done via kubectl. This example updates a node called goquorum-validator-3:

  1. Set the update policy to use rolling updates (if not done already):

    kubectl patch statefulset goquorum-validator-3 --namespace goquorum -p '{"spec":{"updateStrategy":{"type":"RollingUpdate"}}}'
  2. Update the GoQuorum version via Helm:

    helm upgrade validator-3 ./charts/goquorum-node --namespace goquorum --values ./values/validator.yml --set image.goquorum.tag=21.10.0

    Or via kubectl:

    kubectl patch statefulset goquorum-validator-3 --namespace goquorum --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"quorumengineering/goquorum:21.10.0"}]'