Welcome to AIOrchestra OpenStack plugin’s documentation!

Contents:

AIOrchestra. OpenSource OpenStack TOSCA orchestration

What is TOSCA?

The TOSCA Simple Profile in YAML specifies a rendering of TOSCA which aims to provide a more accessible syntax as well as a more concise and incremental expressiveness of the TOSCA DSL in order to minimize the learning curve and speed the adoption of the use of TOSCA to portably describe cloud applications. This proposal describes a YAML rendering for TOSCA. YAML is a human friendly data serialization standard with a syntax much easier to read and edit than XML. As there are a number of DSLs encoded in YAML, a YAML encoding of the TOSCA DSL makes TOSCA more accessible by these communities. This proposal prescribes an isomorphic rendering in YAML of a subset of the TOSCA v1.0 ensuring that TOSCA semantics are preserved and can be transformed from XML to YAML or from YAML to XML. Additionally, in order to streamline the expression of TOSCA semantics, the YAML rendering is sought to be more concise and compact through the use of the YAML syntax.

More information can be regarding TOSCA simple profile can be found at its home page.

What is OpenStack?

Feel free to find lots of articles and posts regarding this question. But the most authoritative is OpenStack official web site.

AIOrchestra. OpenSource OpenStack TOSCA orchestration plugin

TOSCA simple profile

AIOrchestra OpenStack plugin relays on TOSCA simple profile as bases. Plugin has several categories of types:

node types
artifacts
capabilities
relationships

Types

AIOrchestra OpenStack plugin implements next node types:

tosca.nodes.openstack.authorization
tosca.nodes.openstack.ssh_keypair
tosca.nodes.openstack.compute
tosca.nodes.openstack.network
tosca.nodes.openstack.network.subnet
tosca.nodes.openstack.network.port
tosca.nodes.openstack.network.router
tosca.nodes.openstack.network.floating_ip
tosca.nodes.openstack.network.port.security_group
tosca.nodes.openstack.network.port.security_group.rule
tosca.nodes.openstack.network.load_balancer
tosca.nodes.openstack.compute.file

AIOrchestra OpenStack plugin implements next artifacts:

tosca.artifacts.openstack.image
tosca.artifacts.openstack.compute.injection_file
tosca.artifacts.openstack.compute.userdata

AIOrchestra OpenStack plugin implements next ralationships:

tosca.relationships.openstack.inject_auth
tosca.relationships.openstack.ssh_keypair_provider
tosca.relationships.openstack.compute.injected_with
tosca.relationships.openstack.network.linked
tosca.relationships.openstack.compute.port.bind
tosca.relationships.openstack.network.port.bind
tosca.relationships.openstack.network.router.bind
tosca.relationships.openstack.network.router.link
tosca.relationships.openstack.network.floating_ip.provider
tosca.relationships.openstack.network.floating_ip
tosca.relationships.openstack.network.port.floating_ip
tosca.relationships.openstack.network.port.security_group.rule
tosca.relationships.openstack.network.port.security_group.attached
tosca.relationships.openstack.network.load_balancer.member

AIOrchestra OpenStack plugin implements next ralationships:

tosca.capabilities.openstack.network.load_balancer.endpoint
tosca.capabilities.openstack.network.load_balancer.member.endpoint
tosca.capabilities.openstack.network.port.bindable
tosca.capabilities.openstack.network.port.security_group.attachable
tosca.capabilities.openstack.network.port.security_group.rule.attachable
tosca.capabilities.openstack.auth.attachable
tosca.capabilities.openstack.compute.ssh.attachable
tosca.capabilities.openstack.flavor

Types definition can be found here.

AIOrchestra. OpenSource OpenStack TOSCA orchestration plugin. Nodes.

tosca.nodes.openstack.authorization

This node represents authorization mechanism for OpenStack using Keystone and its service catalog. Type definition: tosca.nodes.openstack.authorization

Properties:

username - OpenStack user name
password - OpenStack user password
project_name - OpenStack user project name
auth_url - OpenStack Keystone auth URL
region_name - OpenStack auth region
user_domain_name - OpenStack user domain name
project_domain_name - OpenStack user project domain name

Attributes:

auth_properties - represents auth properties mapping for further authorization purposes
auth_token - represents auth token for passwordless authorization

Capabilities:

tosca.capabilities.openstack.auth.attachable - means that this node can be attached to any other node

tosca.nodes.openstack.ssh_keypair

This node represents OpenStack Nova SSH key pair. Type definition: tosca.nodes.openstack.ssh_keypair Properties:

use_connection_pool - this property passed not Nova client
compute_api_version - Nova compute API version
use_existing - weather to use existing key or create a new one
name - SSH key pair name
public_key - SSH public key

Attributes:

id - SSH key ID
name - SSH key name
public_key - SSH public key
private_key_content - SSH private key content

tosca.nodes.openstack.compute

This node represents OpenStack Nova compute instance. Type definition: tosca.nodes.openstack.compute Properties:

use_connection_pool - this property passed not Nova client
compute_api_version - Nova compute API version
compute_name - Nova Compute instance future name
compute_id - existing Nova compute instance ID
availability_zone - Nova compute instance availability zone
config_drive - weather to use config drive during boot or not

Attributes:

compute_id - Nova compute instance ID
networks - attached networks
ports - attached network ports

Capabilities:

host - represents capacity details (i.e - flavor)
binding - represents network binding
os - represents Operating system distron details
scalable - weather node is scalable or not

Artifacts:

image_ref - represents Glance image ID
userdata - represents Nova boot userdata script

tosca.nodes.openstack.network

This node represents OpenStack Neutron network. Type definition: tosca.nodes.openstack.network Properties:

is_external - weather network is has access to internet
network_name - Neutron network name
network_id - existing Neutron network ID

Attributes:

network_id - Neutron network ID
network_name - Neutron network name
subnets - Neutron network subnets

Capabilities:

link - meas that this node can be linked to others

tosca.nodes.openstack.network.subnet

This node represents OpenStack Neutron network subnet. Type definition: tosca.nodes.openstack.network.subnet Properties:

ip_version - subnet IP version
cidr - subnet CIDR
start_ip - pool range start IP
end_ip - pool range end IP
gateway_ip - subnet gateway IP
network_name - subnet name
network_id - existing subnet ID
segmentation_id - subnet segmentation ID
network_type - network type
physical_network - physical network
dhcp_enabled - weather is to enable DHCP for subnet or not
dns_nameservers - DNS name servers

Attributes:

link_id - linked network ID
network_id - subnet ID
network_name - subnet name

Capabilities:

link - meas that this node can be linked to others

Requirements:

link - network link requirement

tosca.nodes.openstack.network.port

This node represents OpenStack Neutron network port. Type definition: tosca.nodes.openstack.network.port Properties:

port_name - name to assign
port_id - existing port ID
ip_address - IP address to assign
order - assign order to compute instance
is_default - weather if this port is default
ip_range_start - lower bound of IP address
ip_range_end - upper bound of IP address

Attributes:

ip_address - port IP address

Requirements:

binding - to which node port must be assigned
link - to each network/subnet this port belongs

tosca.nodes.openstack.network.router

This node represents OpenStack Neutron network router. Type definition: tosca.nodes.openstack.network.router Properties:

router_name - name to assign
router_id - existing router ID

Attributes:

router_id - router ID

Capabilities:

link - means router can be assigned to networks

Requirements:

link - actual network link

tosca.nodes.openstack.network.floating_ip

This node represents OpenStack Neutron network floating IP. Type definition: tosca.nodes.openstack.network.floating_ip Properties:

floating_ip_id - existing floatin IP ID

Attributes:

fixed_ip_address - port internal fixed IP address
floating_ip_address - floating IP address
port_id - assigned port ID
router_id - router ID to which network with floating pool attached

Capabilities:

binding - means floating IP can be attached

Requirements:

link - network with floating pool
binding - port to attach floating IP

tosca.nodes.openstack.network.port.security_group

This node represents OpenStack Neutron network port security group. Type definition: tosca.nodes.openstack.network.port.security_group Properties:

security_group_name - name to assign
security_group_id - existing security group ID
description - security group description

Attributes:

security_group_id - security group ID

tosca.nodes.openstack.network.port.security_group.rule

This node represents OpenStack Neutron network port security group rule. Type definition: tosca.nodes.openstack.network.port.security_group.rule Properties:

direction - ingress or egress direction
ethertype - IP version
port_range_min - access port range lower bound
port_range_max - access port range upper bound
protocol - OSI transport layer protocol
remote_ip_prefix - CIDR

tosca.nodes.openstack.network.load_balancer

This node represents OpenStack Neutron subnet IP range load balancer. Type definition: tosca.nodes.openstack.network.load_balancer Properties:

algorithm
protocol
protocol_port

Capabilities:

client - means load balancer can be used by specific network link

Requirements:

application - compute instance

tosca.nodes.openstack.compute.file

This node represents OpenStack Nova injection file. Type definition: tosca.nodes.openstack.compute.file Properties:

source - local file path
destination - remote file path where source file will be injected

AIOrchestra. OpenSource OpenStack TOSCA orchestration plugin. Artifacts.

tosca.artifacts.openstack.image

Artifact tosca.artifacts.openstack.image represents Glance image. Properties:

image - Glane image ID

tosca.artifacts.openstack.compute.injection_file

Artifact tosca.artifacts.openstack.compute.injection_file represents injection file (alternative to file injection node type). Properties:

source - local file path
destination - remote path to inject source file

tosca.artifacts.openstack.compute.userdata

Artifact tosca.artifacts.openstack.compute.userdata represents Nova boot user data script. Properties:

script - local file script path

AIOrchestra. OpenSource OpenStack TOSCA orchestration plugin. Relationships.

tosca.relationships.openstack.inject_auth

This relationship must be used with every OpenStack node type in requirements for authorization purposes Allowed target type: tosca.nodes.openstack.authorization

tosca.relationships.openstack.ssh_keypair_provider

This relationship must be used whenever SSH key attributes are required Allowed target type: tosca.nodes.openstack.ssh_keypair

tosca.relationships.openstack.compute.injected_with

This relationship must be used for compute boot file injection Allowed target type: tosca.nodes.openstack.compute.file

tosca.relationships.openstack.network.linked

This relationship must be used for network linkin Allowed target type: tosca.nodes.openstack.network, tosca.nodes.openstack.network.subnet

tosca.relationships.openstack.compute.port.bind

This relationship must be used for port binding to compute instance Allowed target type: tosca.nodes.openstack.compute

tosca.relationships.openstack.network.port.bind

This relationship must be used for binding compute instance to port Allowed target type: tosca.nodes.openstack.network.port

tosca.relationships.openstack.network.router.bind

This relationship must used for binding network to router Allowed target type: tosca.nodes.openstack.network

tosca.relationships.openstack.network.floating_ip.provider

This relationship must be used whenever floating IP address is needed Allowed target types: tosca.nodes.openstack.network.floating_ip

tosca.relationships.openstack.network.floating_ip

This relationship must be used when picking network with floating pool Allowed target type: tosca.nodes.openstack.network

tosca.relationships.openstack.network.port.floating_ip

This relationship must be used for attaching floating IP to port Allowed target type: tosca.nodes.openstack.network.port

tosca.relationships.openstack.network.port.security_group.rule

This relationship must be used for attaching rule to security group Allowed target types: tosca.nodes.openstack.network.port.security_group.rule

tosca.relationships.openstack.network.port.security_group.attached

This relationship must be used for attaching security group to port Allowed target type: tosca.nodes.openstack.network.port.security_group

tosca.relationships.openstack.network.load_balancer.member

This relationship must be used for attaching compute instances to load balancer Allowed target types: tosca.nodes.openstack.compute

Indices and tables