Skip to main content

IONOS DCD

info

For more information and scripts related to the deployment, please refer to the ./deployment/fiware directory of the GitHub repository.

Architecture overview​

This deployment aims to deploy https://github.com/FIWARE/data-space-connector in the IONOS environment.

images/fiware_dc.PNG

Deployed IONOS Components​

  • DataCenter:

    • Name FF_Test_DC
  • Kubernetes Cluster:

    • Name: FF_Test_Cluster
  • Kubernetes Cluster NodePool:

    • Name: FF_Test_Cluster_NodePool
    • CPU: Count: 1 AMD, 4 Core
    • 16GB RAM
    • 50 GB Storage SSD
  • Cluster connection steps:

    • Download kubeconfig.yaml to your local machine from cluster settings

    • Save to kubeconfig.yaml in folder .kube

    • Set KUBECONFIG variable to the route of the dowloaded jubeconfig.yaml file using the command:

      export KUBECONFIG=/Users/{user}/.kube/kubeconfig.yaml
    • Check default Kubernetes resources using command:

      kubectl get all --all-namespaces

Deployment​

  1. Install helm following instructions in https://helm.sh/docs/intro/install/

  2. Add the FIWARE helm repository

    helm repo add dsc https://fiware.github.io/data-space-connector/ --force-update
  3. Update your environment: This folder contains a file named fw_env.sh.example. Copy this file to fw_env.sh and set the partner_suffix to the deployment name (e.g. -ntt). Then source the file into your environment

    source fw_env.sh
  4. Install ngix as Ingress Controller

    helm upgrade --install ingress-nginx ingress-nginx \
    --repo https://kubernetes.github.io/ingress-nginx \
    --namespace ingress-nginx --create-namespace
  5. Install Cert-Manager

    • Add repo

      helm repo add jetstack https://charts.jetstack.io --force-update 
    • Install cert manager

      helm install \
      cert-manager jetstack/cert-manager \
      --namespace cert-manager \
      --create-namespace \
      --version v1.15.1 \
      --set crds.enabled=true
  6. Deploy cluster isssuers

    • Open letsencrypt_staging.yaml and letsencrypt_production.yaml files and change to your email-address

    • After changing email, apply both ClusterIssuers:

      kubectl apply -f letsencrypt_staging.yaml
      kubectl apply -f letsencrypt_production.yaml
    • Check status Ready = True for both of the Clusterissuers

      kubectl get clusterissuer --all-namespaces
  7. Deploy the FIWARE environment

    ./fw_deploy_all.sh

    This will deploy the provider namespace, including TM Forum APIs (the marketplace) and the provider components, and a consumer namespace.

  8. Fix ingress routes

    • Download wrong ingress file

      kubectl get ingress myprovider-apisix-control-plane -n provider -o yaml > myprovider-apisix-control-plane-ingress.yaml
    • Open downloaded file with text editor

      nano myprovider-apisix-control-plane-ingress.yaml
    • Change spec.rules.http.paths.backend.service.port.name and save the file after http-admin to http-admin-api

    • Reupload changed ingress file

      kubectl replace -f myprovider-apisix-control-plane-ingress.yaml
    • Expected result in terminal: ingress.networking.k8s.io/mydsc-apisix-control-plane replaced

Congratulations! You have the FIWARE setup up and running.

Run tests​

Before you run the tests, make sure your current environment has all environment variables available. You can do this by running

./fw_env.sh

Then you can follow the documentation in Fiware Setup to run the tests.

Shut down​

To undeploy the environment run

./fw_shutdown_all.sh