Skip to content

SAT Capacity Specification

Spec

The specification for Capacity has the following fields.

The specification is not entirely finalised or fixed. Field names and types may change over the course of the project.

OverallCapacity

Used for specfying the total available resource offered from a capacity.

Capabilities

capacity

Available raw compute resources (vCPUs, memory, disk, bandwidth).

num-cpus

integer
Number of vCPUs offered by the capacity

mem-size

integer
Memory size (GB) offered by the capacity

disk-size

integer
Disk size (GB) offered by the capacity

bandwidth

integer
Network bandwidth (Mbps) offered by the capacity

Capacity

The base type for capacity nodes, representing a provider's offering.

Properties

ssh_user

string
SSH user for accessing the instance.

ingress-rules

list
Ingress port rules

egress-rules

list
Egress port rules

Capabilities

host

Used to specify the hardware specification of a specific instance flavour in a capacity.

num-cpus

integer (required)
Number of vCPUs

mem-size

integer (required)
Memory size (GB)

disk-size

integer (required)
Disk size (GB)

bandwidth

integer (required)
Network bandwidth (Mbps)

architecture

string
CPU architecture (e.g., x86_64, arm64)

capacity

Used to specify the available resource offered from a capacity, in terms of number of instances of a given flavour.

instances

integer
Number of instances of this type offered by the capacity

os

Used to specify the operating system of a specific instance flavour in a capacity.

type

string (required)
Operating system type (e.g. Linux, Windows)

version

string (required)
Operating system version

distribution

string (required)
Operating system distribution (e.g. Ubuntu, Amazon Linux)

network

Used to specify network information of a specific instance flavour in a capacity.

type

string (required)
Network type (e.g. 4G, 5G, Ethernet)

ipv6_enabled

boolean (required)
Whether IPv6 is enabled

ipv4_enabled

boolean (required)
Whether IPv4 is enabled

subnet

string
Subnet CIDR

explicit-tcp-allow

list (required)
TCP ports explicitly allowed. Defaults to ALL.
default: ['ALL']

explicit-udp-allow

list (required)
UDP ports explicitly allowed. Defaults to ALL.
default: ['ALL']

resource

Used to specify higher-level information about the instance flavour being offered by the capacity.

provider

string (required)
Resource provider. Typically a cloud provider or, in the case of edge, an organisation (e.g. aws, openstack, uow)

capacity-provider

string (required)
Capacity provider, always an organisation (e.g. uow, sztaki, fuelics)

type

string (required)
Resource type (e.g. cloud, edge)

compute

string (required)
Compute service type (e.g., nova, ec2)

labels

map
Any labels associated with the resource

pricing

Used to specify the cost of a specific instance flavour in a capacity.

cost

float (required)
Cost per hour in EUR

locality

Used to specify the location of a specific instance flavour in a capacity.

continent

string (required)
Continent where the resource is located

country

string (required)
Country where the resource is located

city

string (required)
City where the resource is located

energy

Used to specify the energy consumption of a specific instance flavour in a capacity.

consumption

float (required)
Energy consumption in watts per hour

powered-type

string
Type of power used (e.g., renewable, non-renewable)

energy-type

string
Specific type of energy (e.g., solar, wind, coal)

trust

Used to specify the trust level of a specific instance flavour in a capacity.

level

float (required)
Trust level
default: 0.5

CloudCapacity

The Swarmchestrate Cloud Capacity Node

Properties

cloud

string (required)
Cloud provider identifier.

Capabilities

resource
type

Setting a default, knowing that all instances of this type will be cloud-based.
default: cloud

EdgeCapacity

The Swarmchestrate Edge Capacity Node

Properties

ip

string
IP of edge node

credentials

map
Map of credentials (e.g. token, basic auth)

key_name

string
The name of the SSH key pair used to access the instance.

ssh_auth_method

string
SSH authentication method (e.g. key, password)

Capabilities

resource
type

Setting a default, knowing that all instances of this type will be edge-based.
default: edge

compute

Setting the default to edge, as above.
default: edge

OpenStackCapacity

A Nova compute node from OpenStack

Properties

cloud

Setting the cloud property default to openstack.

image_id

string (required)
The ID of the image used to launch the instance.

network_id

string (required)
The ID of the network connected by this instance

flavor_name

string (required)
The type of OpenStack instance (e.g., m2.medium) specifying compute resources.

volume_size

integer (required)
Size of instance disk volume in GB

project_id

string
OpenStack project ID

use_block_device

boolean
Whether to use a block device for the instance.

key_name

string
The name of the SSH key pair used to access the instance.

security_group

string
A security group ID that controls inbound and outbound traffic for the instance.

security_groups

list
A list of security group IDs that control inbound and outbound traffic for the instance.

Capabilities

resource
compute

Setting a default, given that OpenStack Nova is providing the compute.
default: nova

EC2Capacity

An base EC2 compute node from AWS

Properties

cloud

Setting the cloud property default to aws.

ami

string (required)
The Amazon Machine ID of the image used to launch the instance.

instance_type

string (required)
The AWS instance type (e.g., t2.micro) specifying compute resources.

key_name

string
The name of the SSH key pair used to access the instance.

security_group

string
A security group ID that controls inbound and outbound traffic for the instance.

security_groups

list
A list of security group IDs that control inbound and outbound traffic for the instance.

Capabilities

resource
compute

Setting a default, given that AWS EC2 is providing the compute.
default: ec2