Skip to content

Latest commit

 

History

History
278 lines (203 loc) · 12.4 KB

GETTING-STARTED.md

File metadata and controls

278 lines (203 loc) · 12.4 KB

Digital Product Passport Guide

CatenaX Introduction

Application Infrastructure

                    |----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.

Application Installation

Prerequisite:

Start Minikube Cluster

# 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
  • EDC-Consumer

    • Description: This component consists of different services which are described in the Connector Setup.
    • Controlplane & Dataplane
# 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.

Ports Mapping:

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
# 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.

Ports Mapping:

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.

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

Port Mapping:

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

Application Usage

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.

NOTICE

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