Skip to content

Commit c9191ab

Browse files
Add helm-chart for the deployment of the FDSC-EDC (#454)
* add fdsc-edc helm chart * version numbers * Update helm documentation * Update helm documentation * pr fixes * Update helm documentation * Update helm documentation * Update helm documentation * fix linter issue * Update helm documentation * remove end * Update helm documentation * fix fullname * Update helm documentation * add missing end * Update helm documentation --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 77213e6 commit c9191ab

File tree

9 files changed

+1006
-0
lines changed

9 files changed

+1006
-0
lines changed

charts/fdsc-edc/Chart.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
name: fdsc-edc
3+
version: 0.0.10
4+
appVersion: 0.0.2
5+
description: A Helm chart for running the fdsc-edc on kubernetes.
6+
icon: https://fiware.github.io/catalogue/img/fiware.png
7+
keywords:
8+
- fiware
9+
- data-space-connector
10+
- dataspace
11+
- dataspace-protocol
12+
sources:
13+
- https://github.com/SEAMWARE/fdsc-edc
14+
maintainers:
15+
- name: wistefan
16+
email: stefan.wiedemann@seamware.org

charts/fdsc-edc/README.md

Lines changed: 166 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
{{/* vim: set filetype=mustache: */}}
3+
{{/*
4+
Expand the name of the chart.
5+
*/}}
6+
{{- define "fdsc-edc.name" -}}
7+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
8+
{{- end -}}
9+
10+
{{/*
11+
Create a default fully qualified app name.
12+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
13+
If release name contains chart name it will be used as a full name.
14+
*/}}
15+
{{- define "fdsc-edc.fullname" -}}
16+
{{- if .Values.fullnameOverride -}}
17+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
18+
{{- else -}}
19+
{{- $name := default .Chart.Name .Values.nameOverride -}}
20+
{{- if contains $name .Release.Name -}}
21+
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
22+
{{- else -}}
23+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
24+
{{- end -}}
25+
{{- end -}}
26+
{{- end -}}
27+
{{/*
28+
Create chart name and version as used by the chart label.
29+
*/}}
30+
{{- define "fdsc-edc.chart" -}}
31+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32+
{{- end -}}
33+
34+
{{/*
35+
Create the name of the service account to use
36+
*/}}
37+
{{- define "fdsc-edc.serviceAccountName" -}}
38+
{{- if .Values.serviceAccount.create -}}
39+
{{ default (include "fdsc-edc.fullname" .) .Values.serviceAccount.name }}
40+
{{- else -}}
41+
{{ default "default" .Values.serviceAccount.name }}
42+
{{- end -}}
43+
{{- end -}}
44+
45+
{{/*
46+
Common labels
47+
*/}}
48+
{{- define "fdsc-edc.labels" -}}
49+
app.kubernetes.io/name: {{ include "fdsc-edc.name" . }}
50+
helm.sh/chart: {{ include "fdsc-edc.chart" . }}
51+
app.kubernetes.io/instance: {{ .Release.Name }}
52+
{{- if .Chart.AppVersion }}
53+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
54+
{{- end }}
55+
app.kubernetes.io/managed-by: {{ .Release.Service }}
56+
{{- end -}}
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
{{- range $name, $deployment := .Values.deployment }}
2+
{{- $cfg := mergeOverwrite (deepCopy $.Values.common) $deployment }}
3+
4+
---
5+
apiVersion: v1
6+
kind: ConfigMap
7+
metadata:
8+
name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
9+
namespace: {{ $.Release.Namespace | quote }}
10+
labels:
11+
app.kubernetes.io/name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
12+
app.kubernetes.io/component: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
13+
app.kubernetes.io/instance: {{ $.Release.Name }}
14+
15+
data:
16+
dataspaceconnector-configuration.properties: |
17+
default.http.https.resolution=true
18+
19+
oid4vp.enabled={{ $cfg.config.oid4vp.enabled }}
20+
oid4vp.clientId={{ $cfg.config.oid4vp.clientId }}
21+
oid4vp.scope={{ $cfg.config.oid4vp.scope }}
22+
oid4vp.trustAll={{ $cfg.config.oid4vp.trustAll }}
23+
oid4vp.holder.id={{ $cfg.config.oid4vp.holder.id }}
24+
oid4vp.holder.kid={{ $cfg.config.oid4vp.holder.kid }}
25+
oid4vp.holder.key.type={{ $cfg.config.oid4vp.holder.key.type }}
26+
oid4vp.holder.key.path={{ $cfg.config.oid4vp.holder.key.path }}
27+
oid4vp.holder.signatureAlgorithm={{ $cfg.config.oid4vp.holder.signatureAlgorithm }}
28+
oid4vp.credentialsFolder={{ $cfg.config.oid4vp.credentialsFolder }}
29+
oid4vp.trustAnchorsFolder={{ $cfg.config.oid4vp.trustAnchorsFolder }}
30+
oid4vp.organizationClaim={{ $cfg.config.oid4vp.organizationClaim }}
31+
oid4vp.proxy.enabled={{ $cfg.config.oid4vp.proxy.enabled }}
32+
oid4vp.proxy.host={{ $cfg.config.oid4vp.proxy.host }}
33+
oid4vp.proxy.port={{ $cfg.config.oid4vp.proxy.port }}
34+
35+
testExtension.enabled={{ $cfg.config.testExtension.enabled }}
36+
testExtension.controller.enabled={{ $cfg.config.testExtension.controller.enabled }}
37+
testExtension.controller.port={{ $cfg.config.testExtension.controller.port }}
38+
testExtension.controller.path={{ $cfg.config.testExtension.controller.path }}
39+
testExtension.identity.enabled={{ $cfg.config.testExtension.identity.enabled }}
40+
41+
tmfExtension.enabled={{ $cfg.config.tmfExtension.enabled }}
42+
tmfExtension.quoteApi={{ $cfg.config.tmfExtension.quoteApi }}
43+
tmfExtension.agreementApi={{ $cfg.config.tmfExtension.agreementApi }}
44+
tmfExtension.productOrderApi={{ $cfg.config.tmfExtension.productOrderApi }}
45+
tmfExtension.productCatalogApi={{ $cfg.config.tmfExtension.productCatalogApi }}
46+
tmfExtension.productInventoryApi={{ $cfg.config.tmfExtension.productInventoryApi }}
47+
tmfExtension.usageManagementApi={{ $cfg.config.tmfExtension.usageManagementApi }}
48+
tmfExtension.partyCatalogApi={{ $cfg.config.tmfExtension.partyCatalogApi }}
49+
tmfExtension.catalog.enabled={{ $cfg.config.tmfExtension.catalog.enabled }}
50+
51+
fdscTransfer.enabled={{ $cfg.config.fdscTransfer.enabled }}
52+
fdscTransfer.transferHost={{ $cfg.config.fdscTransfer.transferHost }}
53+
fdscTransfer.dcp.enabled={{ $cfg.config.fdscTransfer.dcp.enabled }}
54+
fdscTransfer.dcp.oid.host={{ $cfg.config.fdscTransfer.dcp.oid.host }}
55+
fdscTransfer.dcp.oid.openIdPath={{ $cfg.config.fdscTransfer.dcp.oid.openIdPath }}
56+
fdscTransfer.dcp.oid.jwksPath={{ $cfg.config.fdscTransfer.dcp.oid.jwksPath }}
57+
jwksAddress={{ $cfg.config.fdscTransfer.dcp.jwksAddress }}
58+
59+
fdscTransfer.oid4vc.enabled={{ $cfg.config.fdscTransfer.oid4vc.enabled }}
60+
fdscTransfer.oid4vc.credentialsConfigAddress={{ $cfg.config.fdscTransfer.oid4vc.credentialsConfigAddress }}
61+
fdscTransfer.oid4vc.verifierHost={{ $cfg.config.fdscTransfer.oid4vc.verifierHost }}
62+
fdscTransfer.oid4vc.verifierInternalHost={{ $cfg.config.fdscTransfer.oid4vc.verifierInternalHost }}
63+
fdscTransfer.oid4vc.opaHost={{ $cfg.config.fdscTransfer.oid4vc.opaHost }}
64+
fdscTransfer.oid4vc.odrlPapHost={{ $cfg.config.fdscTransfer.oid4vc.odrlPapHost }}
65+
fdscTransfer.apisix.address={{ $cfg.config.fdscTransfer.apisix.address }}
66+
fdscTransfer.apisix.token={{ $cfg.config.fdscTransfer.apisix.token }}
67+
fdscTransfer.apisix.httpsProxy={{ $cfg.config.fdscTransfer.apisix.httpsProxy }}
68+
69+
ebsiTir.enabled={{ $cfg.config.ebsiTir.enabled }}
70+
ebsiTir.tilAddress={{ $cfg.config.ebsiTir.tilAddress }}
71+
72+
dcp.enabled={{ $cfg.config.dcp.enabled }}
73+
dcp.scopes.catalog={{ $cfg.config.dcp.scopes.catalog }}
74+
dcp.scopes.negotiation={{ $cfg.config.dcp.scopes.negotiation }}
75+
dcp.scopes.transfer={{ $cfg.config.dcp.scopes.transfer }}
76+
dcp.scopes.version={{ $cfg.config.dcp.scopes.version }}
77+
78+
edc.participant.id={{ $cfg.config.edc.participant.id }}
79+
edc.log.level={{ $cfg.config.edc.log.level }}
80+
edc.jsonld.https.enabled={{ $cfg.config.edc.jsonld.https.enabled }}
81+
edc.jsonld.http.enabled={{ $cfg.config.edc.jsonld.http.enabled }}
82+
{{- if $cfg.config.edc.hostname }}
83+
edc.hostname={{ $cfg.config.edc.hostname }}
84+
{{- end }}
85+
86+
web.http.port={{ $cfg.config.web.http.port }}
87+
web.http.management.path={{ $cfg.config.web.http.management.path }}
88+
web.http.management.port={{ $cfg.config.web.http.management.port }}
89+
web.http.protocol.path={{ $cfg.config.web.http.protocol.path }}
90+
web.http.protocol.port={{ $cfg.config.web.http.protocol.port }}
91+
web.http.control.path={{ $cfg.config.web.http.control.path }}
92+
web.http.control.port={{ $cfg.config.web.http.control.port }}
93+
web.http.catalog.path={{ $cfg.config.web.http.catalog.path }}
94+
web.http.catalog.port={{ $cfg.config.web.http.catalog.port }}
95+
web.http.version.path={{ $cfg.config.web.http.version.path }}
96+
web.http.version.port={{ $cfg.config.web.http.version.port }}
97+
98+
edc.iam.sts.oauth.token.url={{ $cfg.config.oauth.tokenUrl }}
99+
edc.iam.sts.oauth.client.id={{ $cfg.config.oauth.clientId }}
100+
edc.iam.sts.oauth.client.secret.alias={{ $cfg.config.oauth.secretAlias }}
101+
edc.iam.issuer.id={{ $cfg.config.issuerId }}
102+
103+
{{- if (eq $cfg.config.vault.hashicorp.enabled true) }}
104+
edc.vault.hashicorp.url={{ tpl $cfg.config.vault.hashicorp.url $ }}
105+
edc.vault.hashicorp.token={{ $cfg.config.vault.hashicorp.token }}
106+
edc.vault.hashicorp.timeout.seconds={{ $cfg.config.vault.hashicorp.timeout }}
107+
edc.vault.hashicorp.health.check.enabled={{ $cfg.config.vault.hashicorp.healthCheck.enabled }}
108+
edc.vault.hashicorp.health.check.standby.ok={{ $cfg.config.vault.hashicorp.healthCheck.standbyOk }}
109+
edc.vault.hashicorp.api.secret.path={{ $cfg.config.vault.hashicorp.paths.secret }}
110+
edc.vault.hashicorp.api.health.check.path={{ $cfg.config.vault.hashicorp.paths.health }}
111+
{{- end }}
112+
113+
{{- end }}
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
{{- range $name, $deployment := .Values.deployment }}
2+
{{- $cfg := mergeOverwrite (deepCopy $.Values.common) $deployment }}
3+
4+
---
5+
apiVersion: apps/v1
6+
kind: Deployment
7+
metadata:
8+
name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
9+
namespace: {{ $.Release.Namespace | quote }}
10+
labels:
11+
app.kubernetes.io/name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
12+
app.kubernetes.io/instance: {{ $.Release.Name }}
13+
app.kubernetes.io/component: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
14+
15+
spec:
16+
replicas: {{ $cfg.deployment.replicaCount }}
17+
18+
revisionHistoryLimit: {{ $cfg.deployment.revisionHistoryLimit }}
19+
20+
strategy:
21+
{{- toYaml $cfg.deployment.updateStrategy | nindent 4 }}
22+
23+
selector:
24+
matchLabels:
25+
app.kubernetes.io/name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
26+
app.kubernetes.io/instance: {{ $.Release.Name }}
27+
app.kubernetes.io/component: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
28+
29+
template:
30+
metadata:
31+
labels:
32+
app.kubernetes.io/name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
33+
app.kubernetes.io/instance: {{ $.Release.Name }}
34+
app.kubernetes.io/component: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
35+
{{- with $cfg.deployment.additionalAnnotations }}
36+
annotations:
37+
{{- toYaml . | nindent 8 }}
38+
{{- end }}
39+
spec:
40+
serviceAccountName: {{ include "apollo.serviceAccountName" . }}
41+
{{- with $cfg.imagePullSecrets }}
42+
imagePullSecrets:
43+
{{- range . }}
44+
- name: {{ . }}
45+
{{- end }}
46+
{{- end }}
47+
{{- with $cfg.deployment.initContainers }}
48+
initContainers:
49+
{{- toYaml . | nindent 8 }}
50+
{{- end }}
51+
containers:
52+
- name: dsp-controlplane
53+
image: "{{ $cfg.deployment.image.repository }}:{{ $cfg.deployment.image.tag | default .Chart.AppVersion }}"
54+
imagePullPolicy: {{ $cfg.deployment.image.pullPolicy }}
55+
56+
{{- with $cfg.deployment.command }}
57+
command:
58+
{{- toYaml . | nindent 12 }}
59+
{{- end }}
60+
61+
{{- with $cfg.deployment.args }}
62+
args:
63+
{{- toYaml . | nindent 12 }}
64+
{{- end }}
65+
66+
ports:
67+
- name: http
68+
containerPort: {{ $cfg.config.web.http.port }}
69+
- name: http-version
70+
containerPort: {{ $cfg.config.web.http.version.port }}
71+
- name: http-management
72+
containerPort: {{ $cfg.config.web.http.management.port }}
73+
- name: http-protocol
74+
containerPort: {{ $cfg.config.web.http.protocol.port }}
75+
- name: http-catalog
76+
containerPort: {{ $cfg.config.web.http.catalog.port }}
77+
- name: http-control
78+
containerPort: {{ $cfg.config.web.http.control.port }}
79+
- name: http-tck
80+
containerPort: {{ $cfg.config.testExtension.controller.port }}
81+
82+
livenessProbe:
83+
httpGet:
84+
path: {{ $cfg.deployment.path }}/check/liveness
85+
port: http
86+
initialDelaySeconds: {{ $cfg.deployment.livenessProbe.initialDelaySeconds }}
87+
periodSeconds: {{ $cfg.deployment.livenessProbe.periodSeconds }}
88+
successThreshold: {{ $cfg.deployment.livenessProbe.successThreshold }}
89+
timeoutSeconds: {{ $cfg.deployment.livenessProbe.timeoutSeconds }}
90+
failureThreshold: {{ .Values.deployment.livenessProbe.failureThreshold }}
91+
92+
readinessProbe:
93+
httpGet:
94+
path: {{ $cfg.deployment.path }}/check/readiness
95+
port: http
96+
initialDelaySeconds: {{ $cfg.deployment.readinessProbe.initialDelaySeconds }}
97+
periodSeconds: {{ $cfg.deployment.readinessProbe.periodSeconds }}
98+
successThreshold: {{ $cfg.deployment.readinessProbe.successThreshold }}
99+
timeoutSeconds: {{ $cfg.deployment.readinessProbe.timeoutSeconds }}
100+
failureThreshold: {{ .Values.deployment.readinessProbe.failureThreshold }}
101+
102+
env:
103+
- name: EDC_FS_CONFIG
104+
value: /config/dataspaceconnector-configuration.properties
105+
106+
{{- with $cfg.additionalEnvVars }}
107+
{{- toYaml . | nindent 12 }}
108+
{{- end }}
109+
110+
volumeMounts:
111+
- name: config-properties
112+
mountPath: /config/dataspaceconnector-configuration.properties
113+
subPath: dataspaceconnector-configuration.properties
114+
115+
{{- with $cfg.deployment.additionalVolumeMounts }}
116+
{{- toYaml . | nindent 12 }}
117+
{{- end }}
118+
119+
resources:
120+
{{- toYaml $cfg.deployment.resources | nindent 12 }}
121+
122+
volumes:
123+
- name: config-properties
124+
configMap:
125+
name: {{ include "fdsc-edc.fullname" . }}-{{ $name }}
126+
127+
{{- with $cfg.deployment.additionalVolumes }}
128+
{{- toYaml . | nindent 8 }}
129+
{{- end }}
130+
131+
{{- with $cfg.deployment.nodeSelector }}
132+
nodeSelector:
133+
{{- toYaml . | nindent 8 }}
134+
{{- end }}
135+
136+
{{- with $cfg.deployment.affinity }}
137+
affinity:
138+
{{- toYaml . | nindent 8 }}
139+
{{- end }}
140+
141+
{{- with $cfg.deployment.tolerations }}
142+
tolerations:
143+
{{- toYaml . | nindent 8 }}
144+
{{- end }}
145+
146+
{{- end }}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{{- range $name, $deployment := .Values.deployment }}
2+
{{- $cfg := mergeOverwrite (deepCopy $.Values.common) $deployment }}
3+
{{- if (eq $cfg.ingress.enabled true) -}}
4+
---
5+
{{- $servicePort := $cfg.service.port -}}
6+
{{- $fullName := include "fdsc-edc.fullname" . -}}
7+
apiVersion: networking.k8s.io/v1
8+
kind: Ingress
9+
metadata:
10+
name: {{ $fullName }}-{{ $name }}
11+
namespace: {{ $.Release.Namespace | quote }}
12+
labels:
13+
{{ include "fdsc-edc.labels" . | nindent 4 }}
14+
{{- if $cfg.ingress.annotations }}
15+
annotations:
16+
{{- with $cfg.ingress.annotations }}
17+
{{- toYaml . | nindent 4 }}
18+
{{- end }}
19+
{{- end }}
20+
spec:
21+
{{- if $cfg.ingress.className }}
22+
ingressClassName: {{ $cfg.ingress.className }}
23+
{{- end }}
24+
{{- if $cfg.ingress.tls }}
25+
tls:
26+
{{- range $cfg.ingress.tls }}
27+
- hosts:
28+
{{- range .hosts }}
29+
- {{ . | quote }}
30+
{{- end }}
31+
secretName: {{ .secretName }}
32+
{{- end }}
33+
{{- end }}
34+
rules:
35+
{{- range $cfg.ingress.hosts }}
36+
- host: {{ .host | quote }}
37+
http:
38+
paths:
39+
{{- range .paths }}
40+
- path: {{ . }}
41+
pathType: Prefix
42+
backend:
43+
service:
44+
name: {{ $fullName }}-{{ $name }}
45+
port:
46+
number: {{ $servicePort }}
47+
{{- end }}
48+
{{- end }}
49+
{{- end }}
50+
{{- end }}

0 commit comments

Comments
 (0)