@fairmint/canton-node-sdk
Version:
Canton Node SDK
171 lines (169 loc) • 5.26 kB
YAML
# Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: "sequencer values"
templates:
- sequencer.yaml
release:
# Set for testing labels
name: global-domain-6
chart:
# Override for testing labels
version: 0.1.1
appVersion: 0.1.0
set:
# Things we need just to pass the schema
sequencer:
driver:
type: cometbft
tests:
- it: "sets labels as expected"
documentSelector:
path: kind
value: Deployment
asserts:
# Sanity checks
- equal:
path: metadata.name
value: global-domain-6-sequencer
- equal:
path: spec.template.spec.containers[0].name
value: sequencer
# Labels on deployment
- isSubset:
path: metadata.labels
content:
# Splice-specific
app: global-domain-6-sequencer
splice-component: sequencer
# k8s/Helm standard
app.kubernetes.io/component: sequencer
app.kubernetes.io/instance: global-domain-6
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: global-domain-6-sequencer
app.kubernetes.io/version: "0.1.0"
helm.sh/chart: splice-global-domain-0.1.1
# Labels on pod; should be the same as on deployment
- isSubset:
path: spec.template.metadata.labels
content:
# Splice-specific
app: global-domain-6-sequencer
splice-component: sequencer
# k8s/Helm standard
app.kubernetes.io/component: sequencer
app.kubernetes.io/instance: global-domain-6
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: global-domain-6-sequencer
app.kubernetes.io/version: "0.1.0"
helm.sh/chart: splice-global-domain-0.1.1
- it: "can enable postgres metrics"
set:
sequencer:
# Things we need for the postgres exporter
persistence:
postgresName: sequencer-6
enablePostgresMetrics: true
# We named the Service like the Deployment, so I'm out of ideas on how to use documentSelector
documentIndex: 2
asserts:
- equal:
path: metadata.name
value: pge-sequencer-6-cantonnet-sequencer
- equal:
path: metadata.labels.app
value: pge-sequencer-6-cantonnet-sequencer
- it: "can enable pvc"
set:
# Things we need for the pvc mount
pvc:
size: 10Gi
volumeStorageClass: standard-rwo
documentSelector:
path: kind
value: PersistentVolumeClaim
asserts:
- equal:
path: metadata.name
value: global-domain-6-sequencer-pvc
- it: "sets log-level environment variables correctly when only logLevel is provided"
set:
# Set log level for testing
logLevel: WARN
documentSelector:
path: kind
value: Deployment
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: LOG_LEVEL_CANTON
value: WARN
- contains:
path: spec.template.spec.containers[0].env
content:
name: LOG_LEVEL_STDOUT
value: DEBUG
- it: "sets log-level environment variables correctly when both logLevel and logLevelStdout are provided"
set:
# Set log levels for testing
logLevel: DEBUG
logLevelStdout: ERROR
documentSelector:
path: kind
value: Deployment
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: LOG_LEVEL_CANTON
value: DEBUG
- contains:
path: spec.template.spec.containers[0].env
content:
name: LOG_LEVEL_STDOUT
value: ERROR
- it: "sets anti affinity by default"
documentSelector:
path: kind
value: Deployment
asserts:
- equal:
path: spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[0].labelSelector.matchExpressions[0].values[0]
value: "sequencer"
- it: "sets affinity alongside default anti affinity"
set:
affinity:
nodeAffinity:
test: true
documentSelector:
path: kind
value: Deployment
asserts:
- exists:
path: spec.template.spec.affinity.nodeAffinity
- exists:
path: spec.template.spec.affinity.podAntiAffinity
- it: "sets only the specified affinity"
set:
enableAntiAffinity: false
affinity:
nodeAffinity:
test: true
documentSelector:
path: kind
value: Deployment
asserts:
- exists:
path: spec.template.spec.affinity.nodeAffinity.test
- notExists:
path: spec.template.spec.affinity.podAntiAffinity
- it: "doesn't set any affinity"
set:
enableAntiAffinity: false
documentSelector:
path: kind
value: Deployment
asserts:
- notExists:
path: spec.template.spec.affinity