Skip to main content

Fabric Control Framework

Project description

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

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

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

Requirements

Python 3.7+

Configuration

Example configuration files for Network AM, VM AM and Broker can be found under config directory:

$ ls -ltr config
total 40
-rw-r--r--  1 komalthareja  staff  4312 Jul 14 14:38 config.net-am.yaml
-rw-r--r--  1 komalthareja  staff  7277 Jul 14 14:38 config.vm-am.yaml
-rw-r--r--  1 komalthareja  staff  3746 Jul 14 14:38 config.broker.yaml
-rw-r--r--  1 komalthareja  staff  3746 Jul 14 14:38 config.orchestrator.yaml

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 .

Devlopment Deployment

Development Deployment requires local Kafa cluster. Below steps specify how to bring up development Kafka Cluster

Kafka Cluster

Generate Credentials

You must generate CA certificates (or use yours if you already have one) and then generate a keystore and truststore for brokers and clients.

cd $(pwd)/secrets
./create-certs.sh
cd -

Set the environment variable for the docker-compose. Copy env.template as .env. Below is shown an example configuration in .env

# docker-compose environment file
#
# When you set the same environment variable in multiple files,
# here’s the priority used by Compose to choose which value to use:
#
#  1. Compose file
#  2. Shell environment variables
#  3. Environment file
#  4. Dockerfile
#  5. Variable is not defined

# Kafka configuration
KAFKA_SSL_SECRETS_DIR=./secrets

Bring up the containers

You can use the docker-compose-kafka.yaml file to bring up a simple Kafka cluster containing

  • broker
  • zookeeper
  • schema registry

Use the below command to bring up the cluster

docker-compose -f docker-compose-kafka.yaml up -d

This should bring up following containers:

     NAMES
df0e3be0b641        confluentinc/cp-schema-registry:latest   "/etc/confluent/dock…"   7 minutes ago       Up 7 minutes        0.0.0.0:8081->8081/tcp                             schemaregistry
82a0a59c117b        confluentinc/cp-kafka:latest             "/etc/confluent/dock…"   7 minutes ago       Up 7 minutes        0.0.0.0:9092->9092/tcp, 0.0.0.0:19092->19092/tcp   broker1
1fea39fedf6a        fabrictestbed/postgres:12.3              "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes        0.0.0.0:8432->5432/tcp                             actordb
c6b824b7d3c6        confluentinc/cp-zookeeper:latest         "/etc/confluent/dock…"   7 minutes ago       Up 7 minutes        2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp         zookeeper

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fabric-cf-0.1.tar.gz (341.2 kB view details)

Uploaded Source

Built Distribution

fabric_cf-0.1-py3-none-any.whl (759.9 kB view details)

Uploaded Python 3

File details

Details for the file fabric-cf-0.1.tar.gz.

File metadata

  • Download URL: fabric-cf-0.1.tar.gz
  • Upload date:
  • Size: 341.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for fabric-cf-0.1.tar.gz
Algorithm Hash digest
SHA256 44a14d39876419a70b9885fecdfa09f75d9b05ac075ff644e6d8a44b688ea79c
MD5 f9e3b3ce141c7f83b7a7fce4b6d491f6
BLAKE2b-256 0d91271e7ed60f95da700eeeb42afb763d79e598d4513e0191993c0e28f9e3f3

See more details on using hashes here.

File details

Details for the file fabric_cf-0.1-py3-none-any.whl.

File metadata

  • Download URL: fabric_cf-0.1-py3-none-any.whl
  • Upload date:
  • Size: 759.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for fabric_cf-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9b523393fcf49d7c8657073975035da7227a89b51af16d91f80246d377fbe57f
MD5 e0a39e8f3af1d94e7062932e1726bf6d
BLAKE2b-256 fd17d6f147d446ffa0597fbf49cf92522f6a8afe320d955527eb8ef420d19182

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page