Skip to content

Commit 62ae1c9

Browse files
committed
chore: fix trg-5 requirements from dpp helm chart
1 parent 079d1a6 commit 62ae1c9

File tree

5 files changed

+89
-30
lines changed

5 files changed

+89
-30
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ In particular, the appliction is used to access the battery passport data provid
3636

3737
### Software Version
3838
#### Helm Chart Version
39-
<pre id="helm-version"><a href="https://github.com/eclipse-tractusx/digital-product-pass/releases/tag/digital-product-pass-2.1.3">2.1.3</a></pre>
39+
<pre id="helm-version"><a href="https://github.com/eclipse-tractusx/digital-product-pass/releases/tag/digital-product-pass-2.1.4">2.1.4</a></pre>
4040
#### Application Version
4141
<pre id="app-version"><a href="https://github.com/eclipse-tractusx/digital-product-pass/releases/tag/v2.1.3">v2.1.3</a></pre>
4242

charts/digital-product-pass/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ type: application
4141
# to the chart and its templates, including the app version.
4242
# Versions are expected to follow Semantic Versioning (https://semver.org/)
4343

44-
version: 2.1.3
44+
version: 2.1.4
4545

4646
# This is the version number of the application being deployed. This version number should be
4747
# incremented each time you make changes to the application. Versions are not expected to

charts/digital-product-pass/README.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,27 @@
2323

2424
# digital-product-pass
2525

26-
![Version: 2.1.3](https://img.shields.io/badge/Version-2.1.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.1.3](https://img.shields.io/badge/AppVersion-2.1.3-informational?style=flat-square)
26+
![Version: 2.1.4](https://img.shields.io/badge/Version-2.1.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.1.3](https://img.shields.io/badge/AppVersion-2.1.3-informational?style=flat-square)
2727

2828
A Helm chart for Tractus-X Digital Product Pass Kubernetes
2929

3030
**Homepage:** <https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass>
3131

32+
This Helm charts install the Digital Product Passport Backend and Frontend components.
33+
34+
## Prerequisites
35+
36+
- Kubernetes 1.19+
37+
- Helm 3.2.0+
38+
- PV provisioner support in the underlying infrastructure
39+
40+
## TL;DR
41+
42+
```bash
43+
helm repo add tractusx https://eclipse-tractusx.github.io/charts/dev
44+
helm install digital-product-pass tractusx/digital-product-pass
45+
```
46+
3247
## Source Code
3348

3449
* <https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass>
@@ -38,7 +53,7 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes
3853
| Key | Type | Default | Description |
3954
|-----|------|---------|-------------|
4055
| affinity | object | `{}` | |
41-
| backend | object | `{"digitalTwinRegistry":{"endpoints":{"digitalTwin":"/shell-descriptors","search":"/lookup/shells","subModel":"/submodel-descriptors"},"temporaryStorage":{"enabled":true,"lifetime":12},"timeouts":{"digitalTwin":20,"negotiation":40,"search":50,"transfer":10}},"discovery":{"bpnDiscovery":{"key":"manufacturerPartId","path":"/api/v1.0/administration/connectors/bpnDiscovery/search"},"edcDiscovery":{"key":"bpn"},"hostname":""},"edc":{"apis":{"catalog":"/catalog/request","management":"/management/v2","negotiation":"/contractnegotiations","transfer":"/transferprocesses"},"delay":100,"hostname":"","participantId":"<Add participant id here>","xApiKey":"<Add API key here>"},"hostname":"localhost","image":{"pullPolicy":"Always","repository":"docker.io/tractusx/digital-product-pass-backend"},"imagePullSecrets":[],"ingress":{"enabled":false,"hosts":[{"host":"localhost","paths":[{"path":"/","pathType":"Prefix"}]}]},"irs":{"enabled":false,"hostname":""},"logging":{"level":{"root":"INFO","utils":"INFO"}},"maxRetries":5,"name":"dpp-backend","passport":{"aspects":["urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport","urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass","urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass","urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport"]},"podSecurityContext":{"fsGroup":3000,"runAsGroup":3000,"runAsUser":1000,"seccompProfile":{"type":"RuntimeDefault"}},"process":{"encryptionKey":""},"securityCheck":{"bpn":false,"edc":false},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"add":[],"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsGroup":3000,"runAsNonRoot":true,"runAsUser":1000},"serverPort":8888,"service":{"port":8888,"type":"ClusterIP"}}` | Backend configuration |
56+
| backend | object | `{"digitalTwinRegistry":{"endpoints":{"digitalTwin":"/shell-descriptors","search":"/lookup/shells","subModel":"/submodel-descriptors"},"temporaryStorage":{"enabled":true,"lifetime":12},"timeouts":{"digitalTwin":20,"negotiation":40,"search":50,"transfer":10}},"discovery":{"bpnDiscovery":{"key":"manufacturerPartId","path":"/api/v1.0/administration/connectors/bpnDiscovery/search"},"edcDiscovery":{"key":"bpn"},"hostname":""},"edc":{"apis":{"catalog":"/catalog/request","management":"/management/v2","negotiation":"/contractnegotiations","transfer":"/transferprocesses"},"delay":100,"hostname":"","participantId":"<Add participant id here>","xApiKey":"<Add API key here>"},"hostname":"localhost","image":{"pullPolicy":"Always","repository":"docker.io/tractusx/digital-product-pass-backend"},"imagePullSecrets":[],"ingress":{"annotations":{"ingressClassName":"nginx","nginx.ingress.kubernetes.io/backend-protocol":"HTTP","nginx.ingress.kubernetes.io/force-ssl-redirect":"true","nginx.ingress.kubernetes.io/ssl-passthrough":"false"},"enabled":false,"hosts":[{"host":"localhost","paths":[{"path":"/","pathType":"Prefix"}]}]},"irs":{"enabled":false,"hostname":""},"logging":{"level":{"root":"INFO","utils":"INFO"}},"maxRetries":5,"name":"dpp-backend","passport":{"aspects":["urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport","urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass","urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass","urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport"]},"podSecurityContext":{"fsGroup":3000,"runAsGroup":3000,"runAsUser":1000,"seccompProfile":{"type":"RuntimeDefault"}},"process":{"encryptionKey":""},"securityCheck":{"bpn":false,"edc":false},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"add":[],"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsGroup":3000,"runAsNonRoot":true,"runAsUser":1000},"serverPort":8888,"service":{"port":8888,"type":"ClusterIP"},"volumeMounts":[{"mountPath":"/app/config","name":"backend-config"},{"mountPath":"/app/data/process","name":"pvc-backend","subPath":"data/process"},{"mountPath":"/app/log","name":"tmpfs","subPath":"log"},{"mountPath":"/tmp","name":"tmpfs"},{"mountPath":"/app/data/VaultConfig","name":"tmpfs","subPath":"VaultConfig/vault.token.yml"},{"mountPath":"/app/tmp","name":"tmpfs"}],"volumes":[{"configMap":{"name":"backend-config"},"name":"backend-config"},{"name":"pvc-backend","persistentVolumeClaim":{"claimName":"pvc-data"}},{"emptyDir":{},"name":"tmpfs"}]}` | Backend configuration |
4257
| backend.digitalTwinRegistry.temporaryStorage | object | `{"enabled":true,"lifetime":12}` | temporary storage of dDTRs for optimization |
4358
| backend.digitalTwinRegistry.temporaryStorage.lifetime | int | `12` | lifetime of the temporaryStorage in hours |
4459
| backend.digitalTwinRegistry.timeouts | object | `{"digitalTwin":20,"negotiation":40,"search":50,"transfer":10}` | timeouts for the digital twin registry async negotiation |
@@ -47,12 +62,14 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes
4762
| backend.discovery.edcDiscovery | object | `{"key":"bpn"}` | edc discovery configuration |
4863
| backend.discovery.hostname | string | `""` | discovery finder configuration |
4964
| backend.edc | object | `{"apis":{"catalog":"/catalog/request","management":"/management/v2","negotiation":"/contractnegotiations","transfer":"/transferprocesses"},"delay":100,"hostname":"","participantId":"<Add participant id here>","xApiKey":"<Add API key here>"}` | in this section we configure the values that are inserted as secrets in the backend |
65+
| backend.edc.delay | int | `100` | Negotiation status Delay in milliseconds in between async requests [<= 500] |
5066
| backend.edc.hostname | string | `""` | edc consumer connection configuration |
5167
| backend.edc.participantId | string | `"<Add participant id here>"` | BPN Number |
5268
| backend.edc.xApiKey | string | `"<Add API key here>"` | the secret for assesing the edc management API |
5369
| backend.hostname | string | `"localhost"` | backend hostname (without protocol prefix [DEFAULT HTTPS] for security ) |
5470
| backend.imagePullSecrets | list | `[]` | Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) |
55-
| backend.ingress | object | `{"enabled":false,"hosts":[{"host":"localhost","paths":[{"path":"/","pathType":"Prefix"}]}]}` | ingress declaration to expose the dpp-backend service |
71+
| backend.ingress | object | `{"annotations":{"ingressClassName":"nginx","nginx.ingress.kubernetes.io/backend-protocol":"HTTP","nginx.ingress.kubernetes.io/force-ssl-redirect":"true","nginx.ingress.kubernetes.io/ssl-passthrough":"false"},"enabled":false,"hosts":[{"host":"localhost","paths":[{"path":"/","pathType":"Prefix"}]}]}` | ingress declaration to expose the dpp-backend service |
72+
| backend.ingress.annotations.ingressClassName | string | `"nginx"` | ingress class name |
5673
| backend.irs | object | `{"enabled":false,"hostname":""}` | irs configuration |
5774
| backend.logging.level.root | string | `"INFO"` | general logging level |
5875
| backend.logging.level.utils | string | `"INFO"` | logging for the util components |
@@ -74,6 +91,17 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes
7491
| backend.securityContext.runAsUser | int | `1000` | The container's process will run with the specified uid |
7592
| backend.serverPort | int | `8888` | configuration of the spring boot server |
7693
| backend.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service |
94+
| backend.volumeMounts | list | `[{"mountPath":"/app/config","name":"backend-config"},{"mountPath":"/app/data/process","name":"pvc-backend","subPath":"data/process"},{"mountPath":"/app/log","name":"tmpfs","subPath":"log"},{"mountPath":"/tmp","name":"tmpfs"},{"mountPath":"/app/data/VaultConfig","name":"tmpfs","subPath":"VaultConfig/vault.token.yml"},{"mountPath":"/app/tmp","name":"tmpfs"}]` | specifies the volume mounts for the backend deployment |
95+
| backend.volumeMounts[0] | object | `{"mountPath":"/app/config","name":"backend-config"}` | mounted path for the backend configuration added in the config maps |
96+
| backend.volumeMounts[1] | object | `{"mountPath":"/app/data/process","name":"pvc-backend","subPath":"data/process"}` | contains the location for the process data directory |
97+
| backend.volumeMounts[2] | object | `{"mountPath":"/app/log","name":"tmpfs","subPath":"log"}` | contains the log directory uses by the backend |
98+
| backend.volumeMounts[3] | object | `{"mountPath":"/tmp","name":"tmpfs"}` | container tmp directory |
99+
| backend.volumeMounts[4] | object | `{"mountPath":"/app/data/VaultConfig","name":"tmpfs","subPath":"VaultConfig/vault.token.yml"}` | contains the vault configuration for the backend |
100+
| backend.volumeMounts[5] | object | `{"mountPath":"/app/tmp","name":"tmpfs"}` | contains the temporary directory used by the backend |
101+
| backend.volumes | list | `[{"configMap":{"name":"backend-config"},"name":"backend-config"},{"name":"pvc-backend","persistentVolumeClaim":{"claimName":"pvc-data"}},{"emptyDir":{},"name":"tmpfs"}]` | volume claims for the containers |
102+
| backend.volumes[0] | object | `{"configMap":{"name":"backend-config"},"name":"backend-config"}` | persist the backend configuration |
103+
| backend.volumes[1] | object | `{"name":"pvc-backend","persistentVolumeClaim":{"claimName":"pvc-data"}}` | persist the backend data directories |
104+
| backend.volumes[2] | object | `{"emptyDir":{},"name":"tmpfs"}` | temporary file system mount |
77105
| frontend.api | object | `{"delay":1000,"max_retries":30,"timeout":{"decline":20000,"negotiate":40000,"search":60000}}` | api timeouts |
78106
| frontend.api.delay | int | `1000` | delay from getting status |
79107
| frontend.api.max_retries | int | `30` | max retries for getting status |
@@ -82,7 +110,8 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes
82110
| frontend.image.pullPolicy | string | `"Always"` | |
83111
| frontend.image.repository | string | `"docker.io/tractusx/digital-product-pass-frontend"` | |
84112
| frontend.imagePullSecrets | list | `[]` | Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) |
85-
| frontend.ingress | object | `{"enabled":false,"hosts":[]}` | ingress declaration to expose the dpp-frontend service |
113+
| frontend.ingress | object | `{"annotations":{"ingressClassName":"nginx","nginx.ingress.kubernetes.io/backend-protocol":"HTTP","nginx.ingress.kubernetes.io/force-ssl-redirect":"true","nginx.ingress.kubernetes.io/ssl-passthrough":"false"},"enabled":false,"hosts":[]}` | ingress declaration to expose the dpp-frontend service |
114+
| frontend.ingress.annotations.ingressClassName | string | `"nginx"` | ingress class name |
86115
| frontend.irs | object | `{"maxWaitingTime":30,"requestDelay":30000}` | irs api timeouts |
87116
| frontend.irs.maxWaitingTime | int | `30` | maximum waiting time to get the irs job status |
88117
| frontend.irs.requestDelay | int | `30000` | request timeout delay |

charts/digital-product-pass/templates/deployment-backend.yaml

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,21 +79,7 @@ spec:
7979
key: participantId
8080
name: avp-consumer-backend-edc-oauth
8181
volumeMounts:
82-
- name: backend-config
83-
mountPath: /app/config
84-
- name: pvc-backend
85-
mountPath: /app/data/process
86-
subPath: data/process
87-
- name: tmpfs
88-
mountPath: /app/log
89-
subPath: log
90-
- name: tmpfs
91-
mountPath: /tmp
92-
- name: tmpfs
93-
mountPath: /app/data/VaultConfig
94-
subPath: VaultConfig/vault.token.yml
95-
- name: tmpfs
96-
mountPath: /app/tmp
82+
{{- toYaml .Values.backend.volumeMounts | nindent 12 }}
9783
ports:
9884
- containerPort: 8888
9985
name: http
@@ -113,13 +99,5 @@ spec:
11399
{{- toYaml . | nindent 8 }}
114100
{{- end }}
115101
volumes:
116-
- name: backend-config
117-
configMap:
118-
name: backend-config
119-
- name: pvc-backend
120-
persistentVolumeClaim:
121-
claimName: pvc-data
122-
- name: tmpfs
123-
emptyDir: {}
124-
102+
{{- toYaml .Values.backend.volumes | nindent 12 }}
125103

charts/digital-product-pass/values.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ backend:
4545
# -- ingress declaration to expose the dpp-backend service
4646
ingress:
4747
enabled: false
48+
annotations:
49+
# -- ingress class name
50+
ingressClassName: nginx
51+
# kubernetes.io/tls-acme: "true"
52+
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
53+
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
54+
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
4855
hosts:
4956
- host: &hostname "localhost"
5057
paths:
@@ -82,6 +89,44 @@ backend:
8289
# -- The owner for volumes and any files created within volumes will belong to this guid
8390
runAsGroup: 3000
8491

92+
# -- specifies the volume mounts for the backend deployment
93+
volumeMounts:
94+
# -- mounted path for the backend configuration added in the config maps
95+
- name: backend-config
96+
mountPath: /app/config
97+
# -- contains the location for the process data directory
98+
- name: pvc-backend
99+
mountPath: /app/data/process
100+
subPath: data/process
101+
# -- contains the log directory uses by the backend
102+
- name: tmpfs
103+
mountPath: /app/log
104+
subPath: log
105+
# -- container tmp directory
106+
- name: tmpfs
107+
mountPath: /tmp
108+
# -- contains the vault configuration for the backend
109+
- name: tmpfs
110+
mountPath: /app/data/VaultConfig
111+
subPath: VaultConfig/vault.token.yml
112+
# -- contains the temporary directory used by the backend
113+
- name: tmpfs
114+
mountPath: /app/tmp
115+
116+
# -- volume claims for the containers
117+
volumes:
118+
# -- persist the backend configuration
119+
- name: backend-config
120+
configMap:
121+
name: backend-config
122+
# -- persist the backend data directories
123+
- name: pvc-backend
124+
persistentVolumeClaim:
125+
claimName: pvc-data
126+
# -- temporary file system mount
127+
- name: tmpfs
128+
emptyDir: {}
129+
85130
# -- in this section we configure the values that are inserted as secrets in the backend
86131
edc:
87132
# -- the secret for assesing the edc management API
@@ -181,6 +226,13 @@ frontend:
181226
# -- ingress declaration to expose the dpp-frontend service
182227
ingress:
183228
enabled: false
229+
annotations:
230+
# -- ingress class name
231+
ingressClassName: nginx
232+
# kubernetes.io/tls-acme: "true"
233+
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
234+
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
235+
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
184236
hosts: []
185237

186238
# -- The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment

0 commit comments

Comments
 (0)