MCPcopy Index your code
hub / github.com/FederatedAI/KubeFATE

github.com/FederatedAI/KubeFATE @v2.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.0 ↗ · + Follow
612 symbols 1,566 edges 95 files 199 documented · 33% 1 cross-repo links updated 20mo agov2.0.0 · 2024-01-26★ 43675 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Note: The master branch undergoes frequent changes and can be unstable or even broken during development. To obtain a stable version, we recommend using the releases instead of the master branch.

License

Overview

Federated learning involves multiple parties to collaboratively train a machine learning model, therefore it is usually based on a distributed system. KubeteFATE operationalizes federated learning workloads using cloud native technologies such as containers and Kubernetes. KubeFATE enables federated learning tasks to run across public, private and hybrid cloud environments.

FATE (Federated AI Technology Enabler) is an open-source project to provide a secure computing framework to support the federated AI ecosystem. It implements secure computation protocols based on homomorphic encryption and secure multi-party computation (MPC). It supports federated learning architectures and secure computation of various machine learning algorithms, including logistic regression, tree-based algorithms, deep learning and transfer learning.

KubeFATE facilitates the deployment of FATE using both Docker Compose and Kubernetes. For a development environment of FATE, we recommend utilizing Docker Compose, while for a production environment, Kubernetes is the preferred option.

Getting Involved

  • To find answers to frequently asked questions, please refer to the FAQ section.
  • Please report bugs by submitting issues.
  • Submit contributions using pull requests.

Project Structure

KubeFATE
|-- docker-deploy   
|-- k8s-deploy   

docker-deploy: The primary objective is to swiftly establish a federated learning environment. Docker Compose allows for the deployment of FATE components on a single host. Leveraging Docker Compose, FATE can be configured for multi-party environments, facilitating collaborative federated setups. For further information, kindly refer to the Docker Compose Deployment documentation.

k8s-deploy: The deployment approach is specifically tailored for production environments, providing a robust and scalable solution. Its design offers exceptional flexibility, enabling seamless operation of FATE clusters across various environments with ease and efficiency.

Major features of KubeFATE k8s-deploy

  • Deliver an executable binary that simplifies the initialization and management of FATE clusters.
  • Provide the full life cycle management of FATE clusters, including deploying a new FATE cluster, querying an existing FATE cluster, destroying a given FATE cluster, etc.
  • Support customized deployment.
  • Efficiently manage multiple instances of FATE deployments simultaneously.
  • Offer a cluster management service with RESTful APIs.

For more details, please refer to Kubernetes Deployment.

Building KubeFATE

To build the binary of KubeFATE (both CLI and KubeFATE service), a Golang development environment is needed.

$ git clone https://github.com/FederatedAI/KubeFATE.git
$ cd KubeFATE/k8s-deploy/
$ make kubefate-without-swag

To build the container image of KubeFATE service, a Docker environment is needed.

$ make docker-build

Specifying an image repository (registry)

By default, the installation script pulls the images from Docker Hub during the deployment process. * For docker compose mode, modify the .env file to specify the image registry. * For K8s mode, check out this offical document.

License

Apache License 2.0

Extension points exported contracts — how you extend this code

Item (Interface)
(no doc) [5 implementers]
k8s-deploy/pkg/cli/api.go
Sts (Interface)
Sts StatefulSet [1 implementers]
k8s-deploy/pkg/service/kube/sts.go
Pod (Interface)
Pod interface [1 implementers]
k8s-deploy/pkg/service/kube/pod.go
Node (Interface)
Node interface [1 implementers]
k8s-deploy/pkg/service/kube/node.go
Ingress (Interface)
Ingress interface [1 implementers]
k8s-deploy/pkg/service/kube/ingress.go

Core symbols most depended-on inside this repo

Error
called by 212
k8s-deploy/pkg/cli/validation.go
Get
called by 28
k8s-deploy/pkg/utils/queue.go
SetStatus
called by 26
k8s-deploy/pkg/modules/job_db.go
String
called by 21
k8s-deploy/pkg/utils/queue.go
Unmarshal
called by 21
k8s-deploy/pkg/cli/requst.go
Contains
called by 20
k8s-deploy/pkg/cli/validation.go
Unmarshal
called by 13
k8s-deploy/pkg/service/chart.go
getResult
called by 12
k8s-deploy/pkg/cli/api.go

Shape

Method 244
Function 242
Struct 92
TypeAlias 18
Interface 16

Languages

Go100%

Modules by API surface

k8s-deploy/pkg/utils/k8sclient/client.go44 symbols
k8s-deploy/pkg/cli/validation.go38 symbols
k8s-deploy/pkg/modules/job.go17 symbols
k8s-deploy/pkg/cli/validation_test.go17 symbols
k8s-deploy/pkg/modules/job_db.go16 symbols
k8s-deploy/pkg/cli/cluster.go15 symbols
k8s-deploy/pkg/utils/supportbundle/supportbundle.go14 symbols
k8s-deploy/pkg/utils/queue.go14 symbols
k8s-deploy/pkg/service/chart.go14 symbols
k8s-deploy/pkg/modules/cluster_db.go14 symbols
k8s-deploy/pkg/cli/job.go14 symbols
k8s-deploy/pkg/cli/chart.go14 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add KubeFATE \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact