The Tractus-X Umbrella Chart serves as a comprehensive deployment solution for the Catena-X ecosystem components.
Using Umbrella v2.6.0 released chart
[!note] As Industry Core Hub needs to connect to several Tractus-x components, this guide will ease the local deployment of these services for those who are not familiar with the required configuration of these components or don’t know much about Kubernetes and Helm.
This guide helps you deploy a minimal version of the Tractus-X Umbrella chart focused on the following services:
[!note] For detailed documentation on each service, please refer to their respective repositories (links above)
For comprehensive guides, visit the Tractus-X Umbrella documentation
helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev
helm repo update tractusx-dev
helm install -f docs/umbrella/minimal-values.yaml umbrella tractusx-dev/umbrella --namespace umbrella --version v2.6.0 --create-namespace
[!important] Once the installation or upgrade is succesfull run this patch
kubectl patch ingress umbrella-dataprovider-dtr \ --type='json' \ -p='[{"op": "replace", "path": "/spec/rules/0/http/paths/0/path", "value": "/"}]' \ -n umbrella
[!note] [MacOS Only] In case Docker Desktop isn’t available, follow this guide: https://github.com/eclipse-tractusx/tractus-x-umbrella/tree/main/docs/user/setup#option-1-docker-desktop-available
If you follow the guide above ignore all minikube related commands
Start Minikube with sufficient resources:
minikube start --cpus=4 --memory=8Gb
For windows the easy way is to enable Kubernetes in Docker Desktop:
helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace
Use 127.0.0.1 as the Cluster IP and manually configure ingress.
[!important] If you follow the windows guide, ignore all minikube commands
[!warning] The Windows setup isn’t extensively tested, and you may encounter issues. We would appreciate any contributions from those who successfully deploy it on Windows.
After starting Minikube or Docker Desktop Kubernetes, verify the cluster setup:
kubectl cluster-info
minikube dashboard
minikube addons enable ingress
minikube addons enable ingress-dns
minikube addons enable dashboard
MINIKUBE_IP=$(minikube ip)
echo "Minikube IP: $MINIKUBE_IP"
Add these entries to your /etc/hosts
file (replace 192.168.49.2 with your Minikube IP, 192.168.49.2 is the default Minikube IP. Replace with 127.0.0.1 if you are using Docker Desktop with ingress-nginx controller):
# Add to /etc/hosts
192.168.49.2 centralidp.tx.test
192.168.49.2 sharedidp.tx.test
192.168.49.2 portal.tx.test
192.168.49.2 portal-backend.tx.test
192.168.49.2 dataprovider.tx.test
192.168.49.2 dataprovider-controlplane.tx.test
192.168.49.2 dataprovider-dataplane.tx.test
192.168.49.2 dataprovider-dtr.tx.test
192.168.49.2 dataprovider-submodelserver.tx.test
192.168.49.2 ssi-dim-wallet-stub.tx.test
192.168.49.2 pgadmin4.tx.test
[!note] If you wish more advanced configurations, please refer to the documentation available at: https://github.com/eclipse-tractusx/tractus-x-umbrella/tree/main/docs/user/network
The Helm chart configuration for Tractus-X Umbrella is complex and contains hundreds of values across multiple files. The minimal-values.yaml file we’re using only overrides specific values from the main values.yaml
file in the Umbrella chart repository.
Important: Only developers familiar with Helm charts and the Tractus-X architecture should modify the values beyond what’s provided in this guide. Incorrect configurations can lead to non-functional deployments or security issues.
The base values can be found in the umbrella chart’s values.yaml file. Our minimal-values.yaml follows a similar structure as the values-adopter-portal.yaml
file but focuses on only the essential services.
Assuming you are in the root folder of the project, run these commands. If you’re working from a different directory, adjust the path to the minimal-values.yaml file accordingly.
helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev
helm repo update tractusx-dev
helm install -f docs/umbrella/minimal-values.yaml umbrella tractusx-dev/umbrella --namespace umbrella --version v2.6.0 --create-namespace
If you modify any value in the minimal-values.yaml
you can upgrade the deployment running
helm upgrade -f docs/umbrella/minimal-values.yaml umbrella tractusx-dev/umbrella --namespace umbrella --version v2.6.0
[!important] Once the installation or upgrade is succesfull run this patch
kubectl patch ingress umbrella-dataprovider-dtr \ --type='json' \ -p='[{"op": "replace", "path": "/spec/rules/0/http/paths/0/path", "value": "/"}]' \ -n umbrella
This patch modifies the Digital Twin Registry (DTR) ingress path to use a simple root path (“/”) instead of the more complex URL pattern defined in the template. This patch is necessary due to not overridable configuration in the DTR chart. While the technical details involve how the ingress controller processes URL patterns, the important part is that this patch ensures the DTR API endpoints are properly accessible at the expected URL.
kubectl get pods -n umbrella
Wait until all pods are in the Running state. This may take several minutes for the first deployment.
# You can watch the pod status
kubectl get pods -n umbrella -w
Verify that the ingress resources are properly created:
kubectl get ingress -n umbrella
By default, the minimal configuration uses ephemeral storage, which means all data will be lost when pods are restarted. For a more robust setup, you can enable persistence.
For Minikube, enable the default storage provisioner:
# For Minikube
minikube addons enable storage-provisioner
kubectl get storageclass
For other environments, ensure you have a storage class available:
# Check available storage classes
kubectl get storageclass
The minimal-values.yaml file already includes persistence configuration that is commented out. To enable persistence, simply uncomment the persistence sections for the components you want to persist:
minimal-values.yaml
file# persistence:
)For example, to enable persistence for the Portal’s database, uncomment these lines:
# Before:
# persistence:
# enabled: true
# After uncommenting:
persistence:
enabled: true
After uncommenting the persistence configurations, upgrade your Helm deployment:
helm upgrade -f docs/umbrella/minimal-values.yaml umbrella tractusx-dev/umbrella --namespace umbrella --version v2.6.0
Confirm that PersistentVolumeClaims (PVCs) have been created and bound:
kubectl get pvc -n umbrella
[!note] Enabling persistence will increase resource requirements. Ensure your cluster has sufficient storage capacity.
admin
adminconsolepwcentralidp
admin
adminconsolepwsharedidp
cx-operator@tx.test
tractusx-umbr3lla!
pgadmin4@txtest.org
tractusxpgadmin4
For all connections:
postgres
5432
Component | Host | Password |
---|---|---|
Portal | umbrella-portal-backend-postgresql |
dbpasswordportal |
CentralIdP | umbrella-centralidp-postgresql |
dbpasswordcentralidp |
SharedIdP | umbrella-sharedidp-postgresql |
dbpasswordsharedidp |
MIW | umbrella-miw-postgres |
dbpasswordmiw |
Data Provider | umbrella-dataprovider-db |
dbpasswordtxdataprovider |
To verify access, follow these steps:
The CentralIDP is a Keycloak instance that serves as the central identity provider:
Key features:
The SharedIDP is another Keycloak instance for company-specific identities:
Key features:
The Portal is the main entry point for Catena-X applications:
Key features:
The Dataprovider deployment includes several integrated components that enable data exchange and digital twin functionality:
These components work together to enable the complete data exchange and digital twin capabilities required for Catena-X use cases.
PGAdmin4 is a web-based administration tool for PostgreSQL databases:
umbrella-portal-backend-postgresql
)We provide several Postman collections pre-configured with umbrella values in the postman
folder.
/etc/hosts
file is correctly configured with the Minikube IPminikube addons list
minikube ip
kubectl describe pod <pod-name> -n umbrella
kubectl get ingress -n umbrella
kubectl describe nodes
kubectl logs <pod-name> -n umbrella
kubectl logs -l app.kubernetes.io/name=centralidp -n umbrella
kubectl logs -l app.kubernetes.io/name=sharedidp -n umbrella
kubectl logs -l app.kubernetes.io/name=portal -n umbrella
kubectl logs -l app.kubernetes.io/name=dataprovider-edc-controlplane -n umbrella
kubectl logs -l app.kubernetes.io/name=dataprovider-edc-dataplane -n umbrella
kubectl logs -l app.kubernetes.io/name=dataprovider-dtr -n umbrella
kubectl logs -l app.kubernetes.io/name=dataprovider-submodelserver -n umbrella
To remove the deployment:
helm uninstall umbrella -n umbrella
kubectl delete namespace umbrella
To stop the cluster:
minikube stop
To restart the cluster:
minikube start
To delete the cluster:
minikube delete
This work is licensed under the CC-BY-4.0.