fabric-cf


Namefabric-cf JSON
Version 1.4.7 PyPI version JSON
download
home_pagehttps://github.com/fabric-testbed/ControlFramework
SummaryFabric Control Framework
upload_time2023-05-19 19:51:04
maintainer
docs_urlNone
authorKomal Thareja, Ilya Baldin
requires_python>=3.9
license
keywords swagger fabric control framework
VCS
bugtrack_url
requirements requests cryptography psycopg2-binary sqlalchemy waitress prometheus_client connexion swagger-ui-bundle fabric_fss_utils PyYAML fabric-message-bus fabric-fim
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI](https://img.shields.io/pypi/v/fabric-cf?style=plastic)](https://pypi.org/project/fabric-cf/)

# Control Framework
This repository contains Fabric Control Framework and Actor implementations.

## Overview
Fabric Control Framework has 3 actors
- Controller
- Broker
- Aggregate Manager

## Broker
Broker is an agent of CF that collects resource availability information from multiple aggregate managers and can make resource promises on their behalf. More details can be found [here](fabric_cf/broker/Readme.md)

## Aggregate Manager
AM is a CF agent responsible for managing aggregate resources. Is under the control of the owner of the aggregate. Provides promises of resources to brokers and controllers/ orchestrators. More details can be found [here](fabric_cf/authority/Readme.md)

## Orchestrator
Orchestrator is an agent of CF that makes allocation decisions (embedding) of user requests into available resources. Communicates with user to collect slice requests, communicates with broker or aggregate managers to collect resource promises, communicates with aggregate managers to provision promised resources. Creates slices, configures resources, maintains their state, modifies slices and slivers. More details can be found [here](fabric_cf/orchestrator/README.md)

## Architecture
The following diagram depicts an overall architecture for the Control Framework.
![Architecture](./images/cf.png)

## Requirements
Python 3.9+

## Build Docker Images

### Authority Docker Image
```
docker build -f Dockerfile-auth -t authority .
```

### Broker Docker Image
```
docker build -f Dockerfile-broker -t broker .
```

### Orchestrator Docker Image
```
docker build -f Dockerfile-orchestrator -t orchestrator .
```

## Configuration pre-requisites
- Kafka Configuration
  - Request topic, consumer and producer credentials for each Actor from [Song](ywsong2@g.uky.edu) 
  - Request Hosts running the Actors to be added to Kafka Brokers and Schema Registry Firewall
  - Make sure to configure consumer.group.id different for each actor

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/fabric-testbed/ControlFramework",
    "name": "fabric-cf",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "Swagger,Fabric Control Framework",
    "author": "Komal Thareja, Ilya Baldin",
    "author_email": "kthare10@renci.org, ibaldin@renci.org",
    "download_url": "https://files.pythonhosted.org/packages/0b/8f/8dd32758c2b7a961ab6f20f7d13362818faacd03f259df0efb7bf1ed341f/fabric-cf-1.4.7.tar.gz",
    "platform": null,
    "description": "[![PyPI](https://img.shields.io/pypi/v/fabric-cf?style=plastic)](https://pypi.org/project/fabric-cf/)\n\n# Control Framework\nThis repository contains Fabric Control Framework and Actor implementations.\n\n## Overview\nFabric Control Framework has 3 actors\n- Controller\n- Broker\n- Aggregate Manager\n\n## Broker\nBroker is an agent of CF that collects resource availability information from multiple aggregate managers and can make resource promises on their behalf. More details can be found [here](fabric_cf/broker/Readme.md)\n\n## Aggregate Manager\nAM is a CF agent responsible for managing aggregate resources. Is under the control of the owner of the aggregate. Provides promises of resources to brokers and controllers/ orchestrators. More details can be found [here](fabric_cf/authority/Readme.md)\n\n## Orchestrator\nOrchestrator is an agent of CF that makes allocation decisions (embedding) of user requests into available resources. Communicates with user to collect slice requests, communicates with broker or aggregate managers to collect resource promises, communicates with aggregate managers to provision promised resources. Creates slices, configures resources, maintains their state, modifies slices and slivers. More details can be found [here](fabric_cf/orchestrator/README.md)\n\n## Architecture\nThe following diagram depicts an overall architecture for the Control Framework.\n![Architecture](./images/cf.png)\n\n## Requirements\nPython 3.9+\n\n## Build Docker Images\n\n### Authority Docker Image\n```\ndocker build -f Dockerfile-auth -t authority .\n```\n\n### Broker Docker Image\n```\ndocker build -f Dockerfile-broker -t broker .\n```\n\n### Orchestrator Docker Image\n```\ndocker build -f Dockerfile-orchestrator -t orchestrator .\n```\n\n## Configuration pre-requisites\n- Kafka Configuration\n  - Request topic, consumer and producer credentials for each Actor from [Song](ywsong2@g.uky.edu) \n  - Request Hosts running the Actors to be added to Kafka Brokers and Schema Registry Firewall\n  - Make sure to configure consumer.group.id different for each actor\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Fabric Control Framework",
    "version": "1.4.7",
    "project_urls": {
        "Homepage": "https://github.com/fabric-testbed/ControlFramework"
    },
    "split_keywords": [
        "swagger",
        "fabric control framework"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "76544ea4d632b42d46b4344b9ead1248fee0e04ce887f09bff02105b8bd8b223",
                "md5": "5f8ecb527ae4b40050467d13484b437e",
                "sha256": "8b55fce7b740d578eec195fa8d6e292e4793825266f576858e0d57e7a8e997de"
            },
            "downloads": -1,
            "filename": "fabric_cf-1.4.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5f8ecb527ae4b40050467d13484b437e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 808424,
            "upload_time": "2023-05-19T19:51:01",
            "upload_time_iso_8601": "2023-05-19T19:51:01.839473Z",
            "url": "https://files.pythonhosted.org/packages/76/54/4ea4d632b42d46b4344b9ead1248fee0e04ce887f09bff02105b8bd8b223/fabric_cf-1.4.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0b8f8dd32758c2b7a961ab6f20f7d13362818faacd03f259df0efb7bf1ed341f",
                "md5": "695c2d24123f78188c5a65ff5b3d9a1d",
                "sha256": "c56d4d55b0af71bf61bd5ff89561f36e336ada8a26b157aef6547e382acc6e03"
            },
            "downloads": -1,
            "filename": "fabric-cf-1.4.7.tar.gz",
            "has_sig": false,
            "md5_digest": "695c2d24123f78188c5a65ff5b3d9a1d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 405350,
            "upload_time": "2023-05-19T19:51:04",
            "upload_time_iso_8601": "2023-05-19T19:51:04.839291Z",
            "url": "https://files.pythonhosted.org/packages/0b/8f/8dd32758c2b7a961ab6f20f7d13362818faacd03f259df0efb7bf1ed341f/fabric-cf-1.4.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-19 19:51:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "fabric-testbed",
    "github_project": "ControlFramework",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    "==",
                    "3.3.2"
                ]
            ]
        },
        {
            "name": "psycopg2-binary",
            "specs": []
        },
        {
            "name": "sqlalchemy",
            "specs": []
        },
        {
            "name": "waitress",
            "specs": []
        },
        {
            "name": "prometheus_client",
            "specs": []
        },
        {
            "name": "connexion",
            "specs": []
        },
        {
            "name": "swagger-ui-bundle",
            "specs": []
        },
        {
            "name": "fabric_fss_utils",
            "specs": [
                [
                    "==",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": []
        },
        {
            "name": "fabric-message-bus",
            "specs": [
                [
                    "==",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "fabric-fim",
            "specs": [
                [
                    "==",
                    "1.4.13"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "fabric-cf"
}
        
Elapsed time: 0.13050s