Validator Custom Resource Definition
Introduction
This document provides an overview of the Validator Custom Resource Definition (CRD) in the Catalyst Blockchain Manager Canton system. It outlines the structure of the CRD, and the components it deploys
Structure of the spec
The spec specifies every component needed to deploy a validator separately bellow is a list of components and where they are speccified
ANS/CNS UI
The specifications for the Amulet/Canton Name Service Application are under this path in the yaml
spec.applicationCantonNameServer.spec
Changing components specification
Environment Variables
For all components the environment variables are present under spec.envVars
These are can have the same format as in Pods and Deployments
Resources
All components have a resource specification like this
resources:
cpuLimit: '2'
cpuRequested: '1'
imagePullSecret: intellecteu-gitlab-access
memoryLimit: 2Gi
memoryRequested: 1Gi
replicas: 1
-
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 the validator, set every replicas field to 0.
Example
apiVersion: catalyst.manager.canton/v1
kind: Validator
metadata:
name: validator1st
namespace: canton-dev
spec:
application:
spec:
domain: participant-validator1st
resources:
cpuLimit: '2'
cpuRequested: '1'
imagePullSecret: intellecteu-gitlab-access
memoryLimit: 2Gi
memoryRequested: 1Gi
replicas: 1
type: backend
validatorParent: validator1st
status:
phase: Pending
applicationCantonNameServer:
spec:
domain: cns-validator1st
envVars:
- name: SPLICE_APP_CNS_UI_AUTH_URL
valueFrom:
# <removed for brevity>
image: >-
digitalasset-canton-network-docker.jfrog.io/digitalasset/ans-web-ui:0.3.15
resources:
cpuLimit: '1'
cpuRequested: '0.1'
imagePullSecret: intellecteu-gitlab-access
memoryLimit: 1536Mi
memoryRequested: 240Mi
replicas: 1
type: ui
status:
phase: Pending
applicationWallet:
spec:
domain: wallet-validator1st
envVars:
- name: SPLICE_APP_WALLET_UI_AUTH_URL
valueFrom:
# <removed for brevity>
image: >-
digitalasset-canton-network-docker.jfrog.io/digitalasset/wallet-web-ui:0.3.15
resources:
cpuLimit: '1'
cpuRequested: '0.1'
imagePullSecret: intellecteu-gitlab-access
memoryLimit: 1536Mi
memoryRequested: 240Mi
replicas: 1
type: ui
status:
phase: Pending
customAuth: false
disableAutoInit: false
envVars:
- name: ADDITIONAL_CONFIG_NO_ONBOARDING
value: canton.validator-apps.validator_backend.onboarding = null
# <removed for brevity>
image: digitalasset-canton-network-docker.jfrog.io/digitalasset/validator-app:0.3.15
imageRepo: digitalasset-canton-network-docker.jfrog.io/digitalasset
imageTag: 0.3.15
migrationAttachPVC: 'false'
migrationId: '0'
migrationMigrating: false
onboardingSecretName: cn-app-validator1st-onboarding-validator
participant:
spec:
adminPort: '5002'
auth: true
authProvider: keycloak
authorization:
jwksUrl: >-
https://keycloak.testing.catalyst.intellecteu.io/auth/realms/canton-dev/protocol/openid-connect/certs
daemon: false
enterprise: true
envVars:
- name: JAVA_TOOL_OPTIONS
value: '-Xms1152M -Xmx1152M -Dscala.concurrent.context.minThreads=4'
# <removed for brevity>
ha: false
image: >-
digitalasset-canton-network-docker.jfrog.io/digitalasset/canton-participant:0.3.15
jsonapi: false
jsonapiQueryStore: false
ledgerPort: '5001'
logLevel: INFO
navigator: false
resources:
cpuLimit: '2'
cpuRequested: '1'
imagePullSecret: intellecteu-gitlab-access
memoryLimit: 2Gi
memoryRequested: 1Gi
replicas: 1
storage: {}
storageType: Shared Postgres
status:
phase: Pending
resources:
cpuLimit: '2'
cpuRequested: '1'
imagePullSecret: intellecteu-gitlab-access
memoryLimit: 2Gi
memoryRequested: 1Gi
replicas: 1
storageSize: 20Gi
walletEnabled: true