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.router.link¶
This relationship must be used for linking subnet to router Allowed target type: tosca.nodes.openstack.network.subnet
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