@fairmint/canton-node-sdk
Version:
Canton Node SDK
130 lines (127 loc) • 4.7 kB
YAML
# Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1
kind: Deployment
metadata:
name: splitwell-app
namespace: {{ .Release.Namespace }}
labels:
{{- include "splice-util-lib.default-labels" (set . "app" "splitwell-app") | nindent 4 }}
migration: {{ .Values.migration.id | quote }}
spec:
replicas: 1
selector:
matchLabels:
app: splitwell-app
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "splice-util-lib.default-labels" (set . "app" "splitwell-app") | nindent 8 }}
spec:
{{- include "splice-util-lib.service-account" .Values | nindent 6 }}
containers:
- name: splitwell-app
image: "{{ .Values.imageRepo }}/splitwell-app:{{ .Chart.AppVersion }}{{ ((.Values.imageDigests).splitwell_app) }}"
{{- with .Values.imagePullPolicy }}
imagePullPolicy: {{ . }}
{{- end }}
env:
- name: JAVA_TOOL_OPTIONS
value: {{ .Values.defaultJvmOptions }} {{ .Values.additionalJvmOptions }}
- name: SPLICE_APP_SPLITWELL_SCAN_URL
value: {{ .Values.scanAddress }}
- name: SPLICE_APP_SPLITWELL_MIGRATION_ID
value: {{ .Values.migration.id | quote }}
- name: SPLICE_APP_SPLITWELL_PARTICIPANT_HOST
value: {{ .Values.participantHost }}
{{- include "splice-util-lib.auth0-env-vars" (dict "appName" "splitwell" "keyName" "splitwell" "fixedTokens" (.Values.cluster).fixedTokens) | indent 8}}
{{- with .Values.persistence }}
- name: ADDITIONAL_CONFIG_PERSISTENCE
value: |
canton.splitwell-apps.splitwell_backend.storage {
config {
properties = {
databaseName = "{{ .databaseName }}"
currentSchema = "{{ .schema }}"
serverName = "{{ .host }}"
portNumber = {{ .port }}
user = "{{ .user }}"
password = ${SPLICE_APP_POSTGRES_PASSWORD}
}
}
}
- name: SPLICE_APP_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ $.Values.persistence.secretName }}
key: postgresPassword
{{- end }}
- name: FAIL_ON_APP_VERSION_MISMATCH
value: {{ .Values.failOnAppVersionMismatch | quote }}
{{- with .Values.maxDarVersion }}
- name: ADDITIONAL_CONFIG_MAX_DAR_VERSION
value: canton.splitwell-apps.splitwell_backend.required-dar-version = {{ . | quote }}
{{- end }}
{{- include "splice-util-lib.additional-env-vars" .Values.additionalEnvVars | indent 8}}
{{- include "splice-util-lib.log-level" .Values | indent 8}}
ports:
- containerPort: 5213
name: sw-api
protocol: TCP
{{- with .Values.resources }}
resources: {{- toYaml . | nindent 10 }}
{{- end }}
initContainers:
- name: {{ .Release.Name }}-init
image: postgres:14
env:
- name: PGPASSWORD
valueFrom:
secretKeyRef:
key: postgresPassword
name: {{ .Values.persistence.secretName }}
command:
- 'bash'
- '-c'
- |
until errmsg=$(psql -h {{ .Values.persistence.host }} -p {{ .Values.persistence.port }} --username=cnadmin --dbname=cantonnet -c 'create database {{ .Values.persistence.databaseName }}' 2>&1); do
if [[ $errmsg == *"already exists"* ]]; then
echo "Database {{ .Values.persistence.databaseName }} already exists. Done."
break
fi
echo "trying to create postgres database {{ .Values.persistence.databaseName }}, last error: $errmsg";
sleep 2;
done
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
apiVersion: v1
kind: Service
metadata:
name: splitwell-app
namespace: {{ .Release.Namespace }}
labels:
{{- include "splice-util-lib.default-labels" (set . "app" "splitwell-app") | nindent 4 }}
migration: {{ .Values.migration.id | quote }}
spec:
selector:
app: splitwell-app
ports:
- name: sw-api
port: 5213
protocol: TCP
- name: metrics
port: 10013
protocol: TCP