UNPKG

@fairmint/canton-node-sdk

Version:
215 lines (213 loc) 6.96 kB
# Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. # SPDX-License-Identifier: Apache-2.0 suite: "Participant values" templates: - participant.yaml release: # Set for testing labels name: participant-1 chart: # Override for testing labels version: 0.1.1 appVersion: 0.1.0 set: persistence: host: mock-pg-host schema: participant auth: jwksUrl: "https://mock.com/.well-known/jwks.json" targetAudience: "mock_audience" tests: - it: "sets labels as expected" set: # Explicit migration ID for testing metrics: enabled: true migration: id: 1 # Extra label for testing pod: labels: mock: yes-please documentSelector: path: kind value: Deployment asserts: # Sanity check - equal: path: spec.template.spec.containers[0].name value: participant # Labels on deployment - isSubset: path: metadata.labels content: # Splice-specific app: participant-1 migration_id: "1" # k8s/Helm standard app.kubernetes.io/instance: participant-1 app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: participant-1 app.kubernetes.io/version: "0.1.0" helm.sh/chart: splice-participant-0.1.1 # Extra for test mock: yes-please # Labels on pod; should be the same as on deployment - isSubset: path: spec.template.metadata.labels content: # Splice-specific app: participant-1 migration_id: "1" # k8s/Helm standard app.kubernetes.io/instance: participant-1 app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: participant-1 app.kubernetes.io/version: "0.1.0" helm.sh/chart: splice-participant-0.1.1 # Extra for test mock: yes-please # Annotations on pod (we didn't set any) - isNullOrEmpty: path: spec.template.metadata.annotations - it: "deploys as expected with some AWS KMS config" set: # More interesting options kms: # All of these are mock values; we translate to Canton config directly type: awwws region: mock_region extraCantonKey: mock_value mapCantonKey: firstMapEntry: first_map_value secondMapEntry: second_map_value recursiveMapEntry: recursiveMap: recursive_value additionalEnvVars: - name: AWWWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: awwws-credentials key: accessKeyId documentSelector: path: kind value: Deployment asserts: # Sanity check - equal: path: spec.template.spec.containers[0].name value: participant # KMS config - contains: path: spec.template.spec.containers[0].env content: # We don't really care about the name of the env var but helm unittest wants it name: ADDITIONAL_CONFIG_SPLICE_PARTICIPANT_CRYPTO_PROVIDER_KMS value: | canton.participants.participant.crypto { provider = kms kms = { extra-canton-key = mock_value map-canton-key = { first-map-entry = first_map_value recursive-map-entry = { recursive-map = recursive_value } second-map-entry = second_map_value } region = mock_region type = awwws } } # Secret configured via Helm with valueFrom - contains: path: spec.template.spec.containers[0].env content: name: AWWWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: awwws-credentials key: accessKeyId - it: "handles multiline additionalEnvVars values" set: additionalEnvVars: - name: CUSTOM value: | multi line environment variable documentSelector: path: kind value: Deployment asserts: # Sanity check - equal: path: spec.template.spec.containers[0].name value: participant # multi-line env var - contains: path: spec.template.spec.containers[0].env content: name: CUSTOM value: "multi\nline\nenvironment\nvariable\n" - it: "extraVolumes are differentiated correctly" set: extraVolumes: - name: secret-volume secret: secretName: secret_name - name: pvc-volume persistentVolumeClaim: claimName: claim_name - name: empty-dir-volume documentSelector: path: kind value: Deployment asserts: # Sanity check - equal: path: spec.template.spec.containers[0].name value: participant # range of extraVolumes with correct refs - equal: path: spec.template.spec.volumes value: - name: secret-volume secret: secretName: secret_name - name: pvc-volume persistentVolumeClaim: claimName: claim_name - name: empty-dir-volume - it: "defaults to auth" documentSelector: path: kind value: Deployment asserts: - notExists: path: spec.template.spec.containers[?(@.name=='participant')].env[?(@.name=='CANTON_PARTICIPANT_ADMIN_USER_NAME')].value - notExists: path: spec.template.spec.containers[?(@.name=='participant')].env[?(@.name=='ADDITIONAL_CONFIG_DISABLE_AUTH')].value - it: "supports disabling auth" set: disableAuth: true documentSelector: path: kind value: Deployment asserts: - equal: path: spec.template.spec.containers[?(@.name=='participant')].env[?(@.name=='CANTON_PARTICIPANT_ADMIN_USER_NAME')].value value: ledger-api-user - equal: path: spec.template.spec.containers[?(@.name=='participant')].env[?(@.name=='ADDITIONAL_CONFIG_DISABLE_AUTH')].value value: | canton.participants.participant.ledger-api.auth-services=[{ type = unsafe-jwt-hmac-256 target-audience = "https://ledger_api.example.com" secret = "unsafe" }] - notExists: path: spec.template.spec.containers[?(@.name=='participant')].env[?(@.name=='AUTH_JWKS_URL')].value - notExists: path: spec.template.spec.containers[?(@.name=='participant')].env[?(@.name=='AUTH_TARGET_AUDIENCE')].value