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