|----Consumer-Frontend----| |---Consumer-Backend---| |--------EDC-Consumer--------|
Consumer | DPP frontend | <---> | DPP Backend | <---> | Controlplane <-> Dataplane |
|-------------------------| |----------------------| |----------------------------|
--------- --------------------- -------------------- ------------------- -------------------
CatenaX Services | IAM | | HashiCorp Vault | | Discovery Finder | | BPN Discovery | | EDC Discovery |
--------- --------------------- -------------------- ------------------- -------------------
|-------Registry-------| |--------EDC-Provider--------|
Provider | DTR | <---> | Controlplane <-> Dataplane |<---> Backend Service
|----------------------| |----------------------------|
The EDC-Provider
holds data that is managed via an Data Management API and owned by product owners. To use the
data offer, the EDC-Consumer
needs to negotiate a contract for the data transfer. The CatenaX-Services
gives the
platform for the services to basically find each other (provides the meta-data).
The consumer frontend DPP frontend
provides a User Interface to request battery/product passports through edc connectors and the
final representation of the data.
Prerequisite:
# start minikube cluster
minikube start --cpus 4 --memory 8096
# enable minikube ingress addon
minikube addons enable ingress
The secrets/credentials for all components are stored in CX Hashicorp vault (a CatenaX shared service). There is a argocd-vault-plugin which retrieves secrets when it comes to INT or DEV, but the plugin does not work locally as we are not using argocd to deploy the apps in localhost. Therefore, the secrets variables in configurations need to be substituted with their actual values and security must also be ensured during the substitution process. To achieve this, a shell script is used to set/unset init-values.sh in required components as needed.
Prerequisite: Prior to run the scripts, the values for the follwoing environment variables should be placed in the script.
Script Environment Variables:
- GH_TOKEN (Generate the token from GitHub)
- VAULT_ADDR (Request for vault address)
- LATEST_IMAGE_TAG_FROM_GIT_COMMIT_SHA (Get the latest image tag from GitHub registry)
# Navigate to working directory
cd ../deployment/local/testing
# set values for local run
# ./init-values.sh <0 or 1> <GH_TOKEN> <VAULT_ADDRESS>
# 0: unset values back to the placeholders
# 1: set actual values from the vault storage
# set values
./init-values.sh 1 <GH_TOKEN> <VAULT_ADDRESS>
# unset values
./init-values.sh 0 <GH_TOKEN> <VAULT_ADDRESS>
-
CatenaX-Services
- Description: The following components are centrally managed by CatenaX:
- Discovery Finder to search for the discovery type (e.g., manufacturerPartId, bpn)
- BPN Discovery to search for the BPN
- EDC Discovery to search for an appriopriate EDC connector endpoint
- Description: The following components are centrally managed by CatenaX:
-
EDC-Consumer
- Description: This component consists of different services which are described in the Connector Setup.
- Controlplane & Dataplane
- Helm Chart hosted locally
# Navigate to the working directory
cd ../deployment/infrastructure/data-consumer/edc-consumer
# Update chart dependencies
helm dependency update .
# install helm chart named edc-consumer
helm install edc-consumer . -f ./values.yaml
# optional: remove/uninstall helm chart
helm uninstall edc-consumer
The edc-consumer chart deploys all consumer components e.g., controlplane, dataplane, postgresql and other components.
# status check
$ kubectl get pods
# output
NAME READY STATUS RESTARTS AGE
consumer-postgresql-0 1/1 Running 0 49s
edc-consumer-controlplane-787bdd7b74-hznz2 1/1 Running 2 49s
edc-consumer-dataplane-5f9988589f-98kc6 1/1 Running 0 49s
In order to access the data managemnt APIs locally from these charts, kubectl port forwarding is required.
kubectl get services
kubectl port-forward services/edc-consumer-controlplane 31639:8181
kubectl port-forward services/edc-consumer-controlplane 31216:8282
Integration (INT) deployment available through postman: https://dpp.int.demo.catena-x.net/consumer
Hashicorp-Vault & DAPS are centralized components and managed by central CatenaX services.
- EDC-Provider
- Description: This component consists of different services which are described in the Connector Setup.
- Controlplane & Dataplane
- Helm Chart hosted locally
# Navigate to the working directory
cd ../deployment/infrastructure/data-provider/edc-provider
# Update chart dependencies
helm dependency update .
# install helm chart named edc-provider
helm install edc-provider . -f ./values.yaml
# optional: remove/uninstall helm chart
helm uninstall edc-provider
The edc-provider chart deploys all provider components e.g., provider backend, controlplane, dataplane and postgres pods.
# status check
$ kubectl get pods
# output
NAME READY STATUS RESTARTS AGE
edc-provider-backend-5f9fb86f8d-qmjqg 1/1 Running 0 46s
edc-provider-controlplane-6799fc4675-7b9tz 1/1 Running 2 46s
edc-provider-dataplane-6449bcd495-rnz8p 1/1 Running 0 46s
provider-postgresql-0 1/1 Running 0 46s
In order to access the data managemnt APIs locally from these charts, kubectl port forwarding is required.
kubectl get services
kubectl port-forward services/edc-provider-controlplane 31495:8181
kubectl port-forward services/edc-provider-controlplane 8282:8282
kubectl port-forward services/edc-provider-backend 8081:8081
Link to the Integration (INT) environment: https://dpp.int.demo.catena-x.net/provider
Hashicorp-Vault is centralized components and managed by CatenaX shared services.
-
Digital Product Passport (DPP) Components
- Consumer Frontend
- Consumer Backend
Helm Chart hosted locally
- Reference docs:
Link to the Integration (INT) environment: https://dpp.int.demo.catena-x.net
# Navigate to the working directory
cd ../charts/digital-product-pass
# install helm chart named digital-product-pass in namespace product-material-pass
helm install digital-product-pass . -f ./values.yaml --namespace product-material-pass --create-namespace
# optional: remove/uninstall helm chart
helm uninstall digital-product-pass
# status check
$ kubectl get pods -n product-material-pass
# output
NAME READY STATUS RESTARTS AGE
dpp-backend-74c6c6854c-lhw27 1/1 Running 0 36s
dpp-frontend-6fb95f466-t2m4h 1/1 Running 0 36s
kubectl get services -n product-material-pass
kubectl port-forward services/consumer-ui 8080:8080 -n product-material-pass
kubectl port-forward services/consumer-backend 8888:8888 -n product-material-pass
Notes:
- Port mappings are
kubectl port-forward services/<SERVICE_NAME> host-port:service-port
To use the application, data needs to be prepared in the EDC-Provider using the provider setup script init-provider-dev.sh
Optional: One can also use the postman collection in deployment/local/postman/Digital-Product-Pass to access APIs, used among DPP components. As a prerequisite, Postman agent is required.
Who | Action/Events |
---|---|
PROVIDER | Prepare the Provider with sample data , assets , policies and contract definition |
PROVIDER | Setup the Registry |
PROVIDER | Register the Provider as digital twin into the Registry |
CONSUMER | Lookup for the Registry to find the right digital twin |
CONSUMER | Lookup for the the digital twin from the Registry (searched in previous step) |
CONSUMER | Get the shell descriptor and the submodels from the Registry for the Consumer |
CONSUMER | Get the specific submodel from the Registry (more than one could be delivered in the previous step) |
CONSUMER | Get the contract offer catalog for the Consumer |
CONSUMER | Negotiate the contract between the Consumer and Provider with the submodel for the digital twin |
CONSUMER | Perform the data transfer between the Consumer and Provider |
The Digital Product Passport Uer Interface will make this process accessible to users.
Note: Adjust the URLs according to the local (http://localhost:port/
) or
integration (https://dpp.int.demo.catena-x.net/
) environments.
This work is licensed under the Apache-2.0.
- SPDX-License-Identifier: Apache-2.0
- SPDX-FileCopyrightText: 2022, 2024 BMW AG, Henkel AG & Co. KGaA
- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG
- SPDX-FileCopyrightText: 2023, 2024 Contributors to the Eclipse Foundation
- Source URL: https://github.com/eclipse-tractusx/digital-product-pass