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