Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion devops/charts/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v1
name: xs2a-adapter
version: 0.1.0
version: 0.1.1
appVersion: "1.0"
description: XS2A Adapter Helm charts
sources:
Expand Down
39 changes: 39 additions & 0 deletions devops/charts/env/develop-k8s/env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
fullnameOverride: ""

helm:
## 'helm.version' supports 'two' (wildcardPolicy: None) or 'three' (status.ingress.host: "")
version: three
cluster:
## cluster.type supports 'openshift' (uses openshift routes) or 'aws_eks' (uses kubernetes ingress)
type: aws_eks

adapter:
image:
name: adorsys/xs2a-adapter
tag: develop
keel:
enabled: true
trigger: poll
pollSchedule: "@every 30m"
# support non-semver tags
policy: force
matchTag: "1"
route:
enabled: false
ingress:
enabled: true
annotations: {}
host: xs2a-adapter-dev.adorsys.kaas.cloudpunks.dev
path: /
pathType: ImplementationSpecific
tls:
- secretName: adorsys-wildcard
hosts:
- xs2a-adapter-dev.adorsys.kaas.cloudpunks.dev
pkcs12KeyStoreSecret:
enabled: true
storageClass: efs-volumes
namespace: xs2a-adapter-dev
adapterConfigFile: config/xs2a-adapter-dev-k8s/adapter.config.properties
graylogHost: xs2a-adapter-graylog-graylog
79 changes: 79 additions & 0 deletions devops/charts/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "xs2a-adapter.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "xs2a-adapter.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "xs2a-adapter.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "xs2a-adapter.labels" -}}
helm.sh/chart: {{ include "xs2a-adapter.chart" . }}
{{ include "xs2a-adapter.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "xs2a-adapter.selectorLabels" -}}
app.kubernetes.io/name: {{ include "xs2a-adapter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Create the name of the service account to use
*/}}
{{- define "xs2a-adapter.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "xs2a-adapter.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

{{/*
Create image pull secret if it defined
*/}}
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}

{{/*
Define helm route fix for helmv3
*/}}
{{- define "chart.helmRouteFix" -}}
status:
ingress:
- host: ""
{{- end -}}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: xs2a-adapter-config
name: {{ include "xs2a-adapter.fullname" . }}-config
labels:
app: xs2a-adapter
{{- include "xs2a-adapter.labels" . | nindent 4 }}
data:
{{- if and .Values.logback.enabled }}
logback.xml: |
Expand Down
107 changes: 107 additions & 0 deletions devops/charts/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{{- if eq .Values.cluster.type "aws_eks" }}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
{{- include "xs2a-adapter.labels" . | nindent 4 }}
{{- if .Values.adapter.image.keel.enabled }}
annotations:
keel.sh/policy: {{ .Values.adapter.image.keel.policy | quote }}
keel.sh/match-tag: {{ .Values.adapter.image.keel.matchTag | quote }}
keel.sh/trigger: {{ .Values.adapter.image.keel.trigger | quote }}
keel.sh/pollSchedule: {{ .Values.adapter.image.keel.pollSchedule | quote }}
{{- end }}
name: {{ include "xs2a-adapter.fullname" . }}
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
{{- include "xs2a-adapter.selectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}
labels:
{{- include "xs2a-adapter.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: xs2a-adapter
env:
- name: GRAYLOG_HOST
value: {{ .Values.adapter.graylogHost }}
- name: XS2A-ADAPTER_LOADER_CHOOSE-FIRST-FROM-MULTIPLE-ASPSPS
value: "true"
- name: SPRING_PROFILES_ACTIVE
value: {{ .Values.adapter.profiles }}
{{- if .Values.adapter.aspspConfig }}
- name: csv.aspsp.adapter.config.file.path
value: /opt/xs2a-adapter/conf/aspsp-adapter-config.csv
{{- end }}
- name: csv.aspsp.adapter.lucene.dir.path
value: /opt/xs2a-adapter/lucene
{{- if .Values.logback.enabled }}
- name: LOGGING_CONFIG
value: /opt/xs2a-adapter/conf/logback.xml
{{- end }}
- name: adapter.config.file.path
value: /opt/xs2a-adapter/conf/adapter.config.properties
- name: PKCS12_KEY_STORE_PASSWORD
valueFrom:
secretKeyRef:
name: pkcs12-key-store-secret
key: key-store-password
{{- if .Values.adapter.logSanitizerWhitelist.enabled }}
- name: XS2A-ADAPTER_SANITIZER_WHITELIST
valueFrom:
configMapKeyRef:
key: log-sanitizer-whitelist
name: xs2a-adapter-config
{{- end }}
- name: JAVA_OPTS
value: >-
-Xmx1024m
-Dcom.sun.security.enableAIAcaIssuers=true
-Dpkcs12.keyStore=/pkcs12/key-store.p12
-Dpkcs12.keyStorePassword=$(PKCS12_KEY_STORE_PASSWORD)
image: {{ .Values.adapter.image.name }}:{{ .Values.adapter.image.tag }}
imagePullPolicy: Always
ports:
- containerPort: 8081
protocol: TCP
resources: {}
livenessProbe:
{{ toYaml .Values.adapter.livenessProbe | indent 12 }}
readinessProbe:
{{ toYaml .Values.adapter.readinessProbe | indent 12 }}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- name: pkcs12-key-store-secret-volume
mountPath: /pkcs12
{{- if and .Values.logback.enabled }}
- name: persistent-volume
mountPath: /opt/xs2a-adapter/logs
{{- end }}
- name: persistent-volume
mountPath: /opt/xs2a-adapter/lucene
- name: configmap-volume
mountPath: /opt/xs2a-adapter/conf
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: pkcs12-key-store-secret-volume
secret:
secretName: pkcs12-key-store-secret
- name: persistent-volume
persistentVolumeClaim:
claimName: {{ include "xs2a-adapter.fullname" . }}-pvc
- configMap:
defaultMode: 292
name: {{ include "xs2a-adapter.fullname" . }}-config
name: configmap-volume
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
{{- if eq .Values.cluster.type "openshift" }}
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
labels:
app: xs2a-adapter
name: xs2a-adapter
{{- include "xs2a-adapter.labels" . | nindent 4 }}
name: {{ include "xs2a-adapter.fullname" . }}
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
app: xs2a-adapter
deploymentconfig: xs2a-adapter
matchLabels:
{{- include "xs2a-adapter.selectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/xs2a-adapter/configmap.yaml") . | sha256sum }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
labels:
app: xs2a-adapter
deploymentconfig: xs2a-adapter
{{- include "xs2a-adapter.selectorLabels" . | nindent 8 }}
spec:
containers:
- env:
- name: xs2a-adapter
env:
- name: GRAYLOG_HOST
value: {{ .Values.adapter.graylogHost }}
- name: XS2A-ADAPTER_LOADER_CHOOSE-FIRST-FROM-MULTIPLE-ASPSPS
Expand Down Expand Up @@ -56,8 +57,8 @@ spec:
-Dcom.sun.security.enableAIAcaIssuers=true
-Dpkcs12.keyStore=/pkcs12/key-store.p12
-Dpkcs12.keyStorePassword=$(PKCS12_KEY_STORE_PASSWORD)
image: {{ .Values.adapter.image.name }}:{{ .Values.adapter.image.tag }}
imagePullPolicy: Always
name: xs2a-adapter
ports:
- containerPort: 8081
protocol: TCP
Expand Down Expand Up @@ -90,7 +91,7 @@ spec:
secretName: pkcs12-key-store-secret
- name: persistent-volume
persistentVolumeClaim:
claimName: xs2a-adapter-pvc
claimName: {{ include "xs2a-adapter.fullname" . }}-pvc
- configMap:
defaultMode: 292
name: xs2a-adapter-config
Expand All @@ -107,3 +108,4 @@ spec:
name: xs2a-adapter:{{ .Values.adapter.tag }}
namespace: {{ .Values.adapter.namespace }}
type: ImageChange
{{- end }}
36 changes: 36 additions & 0 deletions devops/charts/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{{- if .Values.adapter.ingress.enabled }}
{{- if eq .Values.cluster.type "aws_eks" }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "xs2a-adapter.fullname" . }}
labels:
{{- include "xs2a-adapter.labels" . | nindent 4 }}
{{- with .Values.adapter.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.adapter.ingress.tls }}
tls:
{{- range .Values.adapter.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
- host: {{ .Values.adapter.ingress.host | quote }}
http:
paths:
- path: {{ .Values.adapter.ingress.path }}
pathType: {{ .Values.adapter.ingress.pathType }}
backend:
service:
name: {{ include "xs2a-adapter.fullname" . }}
port:
number: 8080
{{- end }}
{{- end }}
13 changes: 13 additions & 0 deletions devops/charts/templates/pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ include "xs2a-adapter.fullname" . }}-pvc
labels:
{{- include "xs2a-adapter.labels" . | nindent 4 }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: {{ .Values.adapter.storageClass }}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
{{ if .Values.adapter.route.enabled }}
{{ if eq .Values.cluster.type "openshift" }}
apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
app: xs2a-adapter
name: xs2a-adapter
{{- include "xs2a-adapter.labels" . | nindent 4 }}
name: {{ include "xs2a-adapter.fullname" . }}
spec:
host: {{ .Values.adapter.route }}
port:
Expand All @@ -16,3 +18,5 @@ spec:
name: xs2a-adapter
weight: 100
wildcardPolicy: None
{{- end }}
{{- end }}
11 changes: 11 additions & 0 deletions devops/charts/templates/secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- if .Values.adapter.pkcs12KeyStoreSecret.enabled }}
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: pkcs12-key-store-secret
namespace: xs2a-adapter-dev
data:
key-store-password: ""
key-store.p12: {{ .Values.adapter.secrets.keyStoreP12 | quote }}
{{- end }}
Loading