Skip to main content

Running a FireFly Node

This guide explains how to run a FireFly node using dms

Prerequisites for compute providers

  • Docker installed on the compute machines.
  • Load fuse kernel mod
  • Clone dms to the compute provider machines
  • Build the glusterfs client
  • Firefly docker image
  • Glusterfs client certificates and volumes

Clone dms to the compute provider machines

git clone https://gitlab.com/nunet/device-management-service.git
cd device-management-service

make linux_amd64
sudo cp dms_linux_amd64 /usr/bin/dms
sudo setcap cap_net_admin,cap_sys_admin+ep /usr/bin/dms

Load fuse kernel mod

Compute providers must ensure they have fuse kernel loaded

sudo modprobe fuse
sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf

Build the glusterfs client

In order to mount gluster volumes we need to build the image on the compute providers machines. Inside DMS run:

make build-nunet-glusterfs-client

to verify check the output of this command:

docker images

Firefly image

To run the firefly nodes we need the image which i pushed to our registry

docker pull registry.gitlab.com/nunet/device-management-service/f1r3fly-rnode

Glusterfs client certificates and volumes

For now i have created a glusterfs server running in one instance. I have created also the following volumes:

firefly_bootstrap
firefly_validator

We can find the client certs attached

Run firefily nodes

For this demo, we will run a bootstrap and validator node. We need to setup 2 compute provider machines and an orchestrator. Install dms on those machines, setup caps and onboard them.

Note that i have already copied to configuration files for the bootstrap and validator node in the glusterfs volumes.

On the orchestrator machines we need the ensemble

We also need the client certs on the orchestrator and the correct path in the above ensemble.

We create a deployment from the orchestrator and see 2 running nodes on 2 different machines.

The ensemble can be found in examples/firefly.yaml