/FedLCM

A web application that manages lifecycles of federated learning federations.

Primary LanguageGoApache License 2.0Apache-2.0

FedLCM: Federation Lifecycle Manager

A web application to manage FML deployments lifecycles

DOC | 中文

Deploy & Run Using Docker Compose

System requirements: On a Linux host with docker 18+ and docker-compose 1.28+ .

  • Download the fedlcm-docker-compose-<version>.tgz package from the releases pages, unzip the files into a folder. Or clone the whole project and execute in the project root folder.
  • (Optional) modify .env file to change the image names. Only do this if you want to use your customized registry or images.
  • Then
docker-compose pull
docker-compose up

By default, the web UI is exposed on the 9080 port of the machine. Access that address from a browser to open the FedLCM's UI.

Deploy Into Kubernetes

  • Download the fedlcm-k8s-<version>.tgz package from the releases pages, and unzip the files into a folder. Or clone the whole project and execute in the project root folder.
  • (Optional) We recommend using persistent storage to avoid the change of CA root certificate and the loss of data when restarting the deployment. To enable persistent volume, you should create your StorageClass and corresponding provisioner first. Then modify the commented section in the k8s_deploy.yaml to use persistentVolumeClaim. Replace with your storage class name at storageClassName.
  • Apply the yaml files in the follow order
kubectl apply -f rbac_config.yaml
kubectl apply -f k8s_deploy.yaml

By default, the web UI is exposed via a NodePort service that listens on port 30008 of the nodes. After all resources are successfully created and running, you can enter into your FedLCM service use <NodeAddress>:30008. Alternatively you can change the Service definition in the yaml to use your preferred service type and exposed port.

Getting Started

Refer to the getting started guide for FATE federation management.

The Site Portal README and FML Manager README provide information on how to use Site Portal directly without using FedLCM.

Development

Build

make all

The generated deliverables are placed in the output folder.

Build & Run Docker Image

  • Modify .env file to change the image name, and then
set -a; source .env; set +a
make docker-build
  • Optionally push the image
make docker-push
  • Start the service
docker-compose up

Refer to the development guide for more development related topics.

License

FedLCM is available under the Apache 2 license.

This project uses open source components which have additional licensing terms. The official docker images and licensing terms for these open source components can be found at the following locations: