Skip to content

Commit 650c872

Browse files
Support additionalEnvVars and jvm options in validator-runbook (#2429)
Needed to play around with topology batch size parameters for party scaling. --------- Signed-off-by: Moritz Kiefer <[email protected]> Co-authored-by: Moritz Kiefer <[email protected]>
1 parent 06de689 commit 650c872

File tree

6 files changed

+33
-3
lines changed

6 files changed

+33
-3
lines changed

cluster/deployment/mock/config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,12 @@ cluster:
205205
networkWide:
206206
maxVettingDelay: 1m
207207
validators:
208+
validator-runbook:
209+
participant:
210+
additionalEnvVars:
211+
- name: ADDITIONAL_ENV_VAR_VALIDATOR_PARTICIPANT_NAME
212+
value: ADDITIONAL_ENV_VAR_VALIDATOR_PARTICIPANT_VALUE
213+
additionalJvmOptions: -Dparticipantoption
208214
extra-validator:
209215
namespace: validator
210216
partyHint: 'extra-validator'

cluster/expected/splitwell/expected.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,7 @@
528528
"namespace": "splitwell",
529529
"timeout": 600,
530530
"values": {
531+
"additionalEnvVars": [],
531532
"additionalJvmOptions": "-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1",
532533
"affinity": {
533534
"nodeAffinity": {

cluster/expected/validator-runbook/expected.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,13 @@
415415
"namespace": "validator",
416416
"timeout": 600,
417417
"values": {
418-
"additionalJvmOptions": "-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1",
418+
"additionalEnvVars": [
419+
{
420+
"name": "ADDITIONAL_ENV_VAR_VALIDATOR_PARTICIPANT_NAME",
421+
"value": "ADDITIONAL_ENV_VAR_VALIDATOR_PARTICIPANT_VALUE"
422+
}
423+
],
424+
"additionalJvmOptions": "-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Dparticipantoption",
419425
"affinity": {
420426
"nodeAffinity": {
421427
"requiredDuringSchedulingIgnoredDuringExecution": {

cluster/pulumi/common-validator/src/config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@
22
// SPDX-License-Identifier: Apache-2.0
33
import {
44
DeployValidatorRunbook,
5+
EnvVarConfigSchema,
56
KmsConfigSchema,
67
LogLevelSchema,
78
} from '@lfdecentralizedtrust/splice-pulumi-common/src/config';
89
import { clusterSubConfig } from '@lfdecentralizedtrust/splice-pulumi-common/src/config/configLoader';
910
import { z } from 'zod';
1011

12+
export const ParticipantConfigSchema = z.object({
13+
additionalEnvVars: z.array(EnvVarConfigSchema).default([]),
14+
additionalJvmOptions: z.string().optional(),
15+
});
16+
1117
export const ValidatorNodeConfigSchema = z.object({
1218
logging: z
1319
.object({
@@ -22,6 +28,7 @@ export const ValidatorNodeConfigSchema = z.object({
2228
retention: z.string(),
2329
})
2430
.optional(),
31+
participant: ParticipantConfigSchema.optional(),
2532
});
2633
export type ValidatorNodeConfig = z.infer<typeof ValidatorNodeConfigSchema>;
2734
export const ValidatorConfigSchema = z

cluster/pulumi/common-validator/src/participant.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import {
99
DEFAULT_AUDIENCE,
1010
DomainMigrationIndex,
1111
ExactNamespace,
12+
getAdditionalJvmOptions,
1213
getParticipantKmsHelmResources,
1314
installSpliceHelmChart,
14-
jmxOptions,
1515
loadYamlFromFile,
1616
sanitizedForPostgres,
1717
SPLICE_ROOT,
@@ -87,7 +87,12 @@ export function installParticipant(
8787
active: true,
8888
},
8989
},
90-
additionalJvmOptions: jmxOptions(),
90+
additionalJvmOptions: getAdditionalJvmOptions(
91+
validatorConfig.participant?.additionalJvmOptions
92+
),
93+
additionalEnvVars: (participantValuesWithSpecifiedAud.additionalEnvVars ?? []).concat(
94+
validatorConfig.participant?.additionalEnvVars ?? []
95+
),
9196
enablePostgresMetrics: true,
9297
resources: {
9398
requests: {

cluster/pulumi/common/src/config/configSchema.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,8 @@ export const K8sResourceSchema = z
5656
requests: SingleResourceSchema,
5757
})
5858
.optional();
59+
60+
export const EnvVarConfigSchema = z.object({
61+
name: z.string(),
62+
value: z.string(),
63+
});

0 commit comments

Comments
 (0)