helm/timebase/templates/server-configmap.yaml (85 lines of code) (raw):
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "chart.fullname" . }}-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/component: server
{{- include "chart.labels" . | nindent 4 }}
data:
admin.properties: |
TimeBase.enableRemoteAccess={{ .Values.server.properties.enableRemoteAccess }}
TimeBase.lingerInterval={{ .Values.server.properties.lingerInterval }}
TimeBase.maxConnections={{ .Values.server.properties.maxConnections }}
TimeBase.port=8011
TimeBase.readOnly={{ .Values.server.properties.readOnly }}
TimeBase.safeMode={{ .Values.server.properties.safeMode }}
TimeBase.version={{ .Values.server.version }}
{{- if or .Values.server.user .Values.server.oauth }}
{{- if .Values.server.oauth }}
QuantServer.security=OAUTH
{{- else }}
QuantServer.security=FILE
{{- end }}
QuantServer.security.tbLogin=TBLogin
QuantServer.security.userDirectoryConfig=uac-file-security.xml
QuantServer.security.rulesConfig=uac-access-rules.xml
QuantServer.security.updateInterval=1H
uac-access-rules.xml: |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rules xmlns="http://xml.deltixlab.com/internal/quantserver/3.0">
<allow>
<principal>Administrators</principal>
<permission>*</permission>
<resource>*</resource>
</allow>
<allow>
<principal>ReadOnly</principal>
<permission>READ</permission>
<resource>*</resource>
</allow>
</rules>
uac-file-security.xml: |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config xmlns="http://xml.deltixlab.com/internal/quantserver/3.0">
<users>
<user id="${TIMEBASE_USERNAME}">
<password>${TIMEBASE_PASSWORD}</password>
</user>
{{- range $user, $password := .Values.server.adminUsers }}
<user id="{{ $user }}">
<password>${PASSWORD_{{ $user | upper }}}</password>
</user>
{{- end }}
{{- range $user, $password := .Values.server.readOnlyUsers }}
<user id="{{ $user }}">
<password>${PASSWORD_{{ $user | upper }}}</password>
</user>
{{- end }}
</users>
<groups>
<group id="Administrators">
<principal>${TIMEBASE_USERNAME}</principal>
{{- range $user, $password := .Values.server.adminUsers }}
<principal>{{ $user }}</principal>
{{- end }}
</group>
{{- if .Values.server.readOnlyUsers }}
<group id="ReadOnly">
{{- range $user, $password := .Values.server.readOnlyUsers }}
<principal>{{ $user }}</principal>
{{- end }}
</group>
{{- end }}
</groups>
{{- if .Values.server.oauth }}
<oauthSettings>
<issuer>{{ .Values.server.oauth.issuer }}</issuer>
<jwksUrl>{{ .Values.server.oauth.jwksUrl }}</jwksUrl>
{{- range .Values.server.oauth.clientId }}
<clientId>{{ . }}</clientId>
{{- end }}
</oauthSettings>
{{- end }}
</config>
{{- end }}