Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
*~
*~
.idea
Chart.lock
charts/
122 changes: 109 additions & 13 deletions PacketDelivery-ReferenceExample/i4Trust-Marketplace/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
The following describes how to setup a full instance of the FIWARE Business API Ecosystem (BAE) in the
context of an i4Trust Data Space. This includes the
BAE itself, as well as the required databases and an Identity Provider (Keyrock) for administrative
access to the BAE.
access to the BAE. If you would like to add login with [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/) to
the Marketplace, there is optional section for that.

This repository provides examples of the [Helm values files](./values) which show the minimum configuration
This repository provides examples of the [Helm values files](./values), which shows the minimum configuration
parameters to be set. Adapt these for your setup before proceeding with the instructions.

The helm chart of the BAE with all possible configuration values can be found here:
Expand All @@ -26,9 +27,10 @@ helm repo add fiware https://fiware.github.io/helm-charts/
helm repo update
```

We will assume that all components will be deployed within the namespace `marketplace`.
We will assume that all components will be deployed within the namespace `demo-marketplace`. So, if you have another
name for the namespace, make sure to replace it everywhere.
```shell
kubectl create ns marketplace
kubectl create ns demo-marketplace
```

Due to the iSHARE specification, requests can contain very large headers with the signed JWTs.
Expand Down Expand Up @@ -57,19 +59,25 @@ The following databases are required:
First modify the corresponding [values files](./values) according to your needs and then deploy the required databases
MongoDB, MySQL and elasticsearch using `helm`.
```shell
# Deploy MySQL for Credentials Config Service and Trusted Issuers List
helm dependency build mysql/
helm install -f ./mysql/values.yaml --namespace demo-marketplace mysql ./mysql

# Deploy elasticsearch
helm install -f ./values/values-elastic.yml --namespace marketplace elasticsearch elastic/elasticsearch --version 7.5.1
helm dependency build elastic/
helm install -f ./elastic/values.yaml --namespace demo-marketplace elasticsearch ./elastic

# Deploy MySQL:
helm install -f ./values/values-mysql.yml --namespace marketplace mysql t3n/mysql --version 1.0.0
# Deploy MySQL for Marketplace:
helm dependency build mysql-bae/
helm install -f ./mysql-bae/values.yaml --namespace demo-marketplace mysql-bae ./mysql-bae

# Deploy MongoDB
helm install -f ./values/values-mongodb.yml --namespace marketplace mongodb bitnami/mongodb --version 12.1.31
helm dependency build mongodb/
helm install -f ./mongodb/values.yaml --namespace demo-marketplace mongodb ./mongodb
```




## Identity Provider (Keyrock)

An instance of the Keyrock Identity Provider dedicated to the BAE is required in order to have
Expand All @@ -78,11 +86,12 @@ on the standard OAuth2 protocol, whereas the Identity Providers deployed at the
service consumers follow the OpenID Connect protocol based on iSHARE specifications. Therefore this Keyrock instance
does not require any iSHARE-specific configuration.

Modify the Keyrock [values file](./values/values-keyrock.yml) according to your needs and deploy the Keyrock Identity Provider.
Modify the Keyrock [values file](./values/keyrock/values.yaml) according to your needs and deploy the Keyrock Identity Provider.
Make sure to setup an Ingress or OpenShift route in the values file for external
access of the UI (e.g. https://keyrock.domain.org).
```shell
helm install -f ./values/values-keyrock.yml --namespace marketplace keyrock fiware/keyrock --version 0.6.0
helm dependency build keyrock/
helm install -f ./keyrock/values.yaml --namespace demo-marketplace keyrock ./keyrock
```

In a browser open the Keyrock UI (e.g. https://keyrock.domain.org) and login with the admin credentials provided in
Expand All @@ -108,10 +117,96 @@ basically only need the `admin` role. Service providers and consumers will login



## Setting up environment for login with verifiable credentials


### WaltId

Adjust values file for [waltid](./values/walt-id/values.yaml)
according to your needs and install it on your cluster. Default values could be checked at
[chart repo](https://github.com/i4Trust/helm-charts/blob/main/charts/vcwaltid/values.yaml)
```shell
helm dependency build walt-id/
helm install --namespace demo-marketplace waltid ./walt-id/ -f ./walt-id/values.yaml
```


### Keycloak

Adjust values file for [keycloak](./values/keycloak/values.yaml) according
to your needs. Check the [chart repo](https://github.com/bitnami/charts/blob/main/bitnami/keycloak/values.yaml)
for default values.
```shell
helm dependency build keycloak/
helm install --namespace demo-marketplace keycloak ./keycloak/ -f ./keycloak/values.yaml
```


### Trusted Issuers List

Modify values file for [trusted issuers list](./values/trusted-issuers-list/values.yaml) and install it on your cluster.
Check [chart repo](https://github.com/FIWARE/helm-charts/blob/main/charts/trusted-issuers-list/values.yaml) for more
details.
```shell
helm dependency build trusted-issuers-list/
helm install --namespace demo-marketplace til ./trusted-issuers-list/ -f ./trusted-issuers-list/values.yaml
```


### Orion-LD

Orion-LD also needs to be installed, since TIR component depends on it. Check [chart repo](https://github.com/FIWARE/helm-charts/blob/main/charts/orion/values.yaml)
to see the default values to install it.
```shell
helm dependency build orion-ld/
helm install --namespace demo-marketplace orion-ld ./orion-ld/ -f ./orion-ld/values.yaml
```


### Trusted Issuers Registry

Adjust values file for [trusted issuers registry](./values/trusted-issuers-registry/values.yaml) according to your needs
and install it on your cluster. Check [chart repo](https://github.com/FIWARE/helm-charts/blob/main/charts/trusted-issuers-registry/values.yaml)
for more details.
```shell
helm dependency build trusted-issuers-registry/
helm install --namespace demo-marketplace til ./trusted-issuers-registry/ -f ./trusted-issuers-registry/values.yaml
```


### Credentials Config Service

[Verifier](https://github.com/FIWARE/VCVerifier) is responsible to communicate with wallets and verify the credentials
they provide. To get this done, it needs information about:

* the credentials to be requested from a wallet
* the credentials and claims an issuer is allowed to issue

To do so, it requires a service that provides such information, e.g. the [Credentials Config Service]
(https://github.com/fiware/credentials-config-service)

Modify values file for [credentials-config-service](./values/credentials-config-service/values.yaml)
and install it on your cluster. To see the default values, see [chart repo](https://github.com/FIWARE/helm-charts/blob/main/charts/credentials-config-service/values.yaml).
```shell
helm dependency build credentials-config-service/
helm install --namespace demo-marketplace ccs ./credentials-config-service/ -f ./credentials-config-service/values.yaml
```


### Verifier

Adjust values file for [verifier](./values/verifier/values.yaml) according to your needs and install it on your cluster.
Check the [chart repo](https://github.com/i4Trust/helm-charts/blob/main/charts/vcverifier/values.yaml) for more details.
```shell
helm dependency build verifier/
helm install --namespace demo-marketplace verifier ./verifier/ -f ./verifier/values.yaml
```


## Business API Ecosystem (Marketplace)

Finally, install the Business API Ecosystem. Make sure to setup an Ingress or OpenShift route in the
[values file](./values/values-marketplace.yml) for external
[values file](values/bae/values.yaml) for external
access of the Marketplace UI / Logic Proxy (e.g. https://marketplace.domain.org). Furthermore adapt the configuration options for
the databases, elasticsearch and Keyrock instance which have been setup before. This includes setting the
OAuth2 credentials noted down before (parameters `oauth.clientId` and `oauth.clientSecret`).
Expand All @@ -124,7 +219,8 @@ login dialog of the marketplace UI.
The private key and certificate chain issued for the marketplace must be added in PEM format.
```shell
# Deploy BAE
helm install -f ./values/values-marketplace.yml --namespace marketplace bae fiware/business-api-ecosystem --version 0.5.0
helm dependency build bae/
helm install -f ./bae/values.yaml --namespace demo-marketplace bae ./bae
```

The deployment of all components will take some time. When the logic proxy component has been deployed and changed to the running state,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v2
name: bae
description: BAE Chart

type: application
version: 0.6.11
appVersion: "8.1.0"

dependencies:
- name: business-api-ecosystem
version: 0.6.4
repository: https://fiware.github.io/helm-charts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: v1
kind: Secret
metadata:
name: bae-apis-secret
type: Opaque
stringData:
dbPassword: 'password'
---
apiVersion: v1
kind: Secret
metadata:
name: bae-rss-secret
type: Opaque
stringData:
dbPassword: 'password'
---
apiVersion: v1
kind: Secret
metadata:
name: bae-cb-secret
type: Opaque
stringData:
dbPassword: 'password'
paypalClientSecret: 'password'
pluginsIdmPassword: 'password'
smtpPassword: 'password'
---
apiVersion: v1
kind: Secret
metadata:
name: bae-lp-secret
type: Opaque
stringData:
dbPassword: 'password'
oauthClientSecret: 'password'
Loading