For the complete documentation index, see llms.txt. This page is also available as Markdown.

Validator Custom Resource Definition

This page provides an overview of the Validator Custom Resource Definition (CRD) used by Catalyst Blockchain Manager to deploy and manage Canton validators using Kubernetes. It describes the structure of the CRD and explains how each validator component is defined and configured.

A Custom Resource Definition (CRD) in Kubernetes is a way to extend the Kubernetes API by defining new, custom object types, allowing you to manage application-specific data.

Structure of the Specification

The CRD specification defines each validator component separately.

Component
CRD Location

Validator (core)

Top level of the specification

ANS/CNS UI

spec.applicationCantonNameServer.spec

Wallet UI

spec.walletUI.spec

Participant Node

spec.participant.spec

Provisioned Postgres Database

The PostgreSQL database provisioned for the validator is not explicitly represented in the CRD specification. To increase the database storage size (decreases are ignored), use:

spec.storageSize

Modifying Component Specifications

Environment Variables

For all components, environment variables are defined under spec.envVars. They follow the same structure and format used in Kubernetes Pods and Deployments.

Resources

Each component has a resource specification:

Field
Description

cpuLimit

Maximum CPU allocation

cpuRequested

Minimum CPU allocation

memoryLimit

Maximum memory allocation

memoryRequested

Minimum memory allocation

replicas

Number of instances (can be set to 0 or 1)

To scale down a validator, set the replicas field to 0 for all components.

Example CRD

Full example Validator CRD YAML

KMS Fields

The following fields control KMS for a validator. enableKms is immutable after creation; all other KMS fields are also immutable except overrideImage, which remains editable.

Field
Location
Notes

enableKms

spec

Master flag; immutable after creation

participant.spec.kmsValue

spec.participant.spec

HOCON provider config (AWS / GCP / Azure)

participant.spec.serviceAccount

spec.participant.spec

AWS/GCP ServiceAccount; not used for Azure

participant.spec.kmsAzureVaultSecretName

spec.participant.spec

Azure only; Secret with tenant-id / client-id / client-secret

participant.spec.overrideImage

spec.participant.spec

Azure driver image; the only KMS-adjacent field editable post-creation

participant.spec.resources.imagePullSecret

spec.participant.spec.resources

Azure only; pull secret for the override (driver) image

When enableKms is true: kmsValue is required, plus either serviceAccount (AWS/GCP) or kmsAzureVaultSecretName (Azure).


Last updated

Was this helpful?