Module openstack¶
License: Apache 2.0
Version: 3.2.0
Author: Inmanta <code@inmanta.com>
This module requires compiler version 2017.1 or higher
Upstream project: https://github.com/inmanta/openstack.git
Typedefs¶
-
typedef
openstack::admin_state
¶ Base type
string
Type constraint
((self == 'up') or (self == 'down'))
-
typedef
openstack::direction
¶ Base type
string
Type constraint
((self == 'ingress') or (self == 'egress'))
Entities¶
-
entity
openstack::AddressPair
¶ Parents:
std::Entity
An address pair that is added to a host port
-
attribute ip::cidr
address
¶ The address range that is allowed on this port (network interface)
-
attribute net::mac_addr
mac
¶
The following implements statements select implementations for this entity:
std::none
constrainttrue
-
attribute ip::cidr
-
entity
openstack::EndPoint
¶ Parents:
openstack::OpenStackResource
-
attribute string
region
¶
-
attribute string
internal_url
¶
-
attribute string
public_url
¶
-
attribute string
admin_url
¶
-
attribute string
service_id
¶
-
relation openstack::Service
service
[1]¶ other end:
openstack::Service.endpoint [0:1]
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.endpoints [0:*]
The following implementations are defined for this entity:
The following implements statements select implementations for this entity:
openstack::endPoint
,openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::Flavor
¶ Parents:
openstack::OpenStackResource
A machine flavor for OpenStack VMs
-
attribute string
name
¶ Descriptive name of the flavor. While OpenStack does not consider the name unique, this module does.
-
attribute number
ram
¶ Memory in MB for the flavor
-
attribute number
vcpus
¶ Number of VCPUs for the flavor
-
attribute number
disk
¶ Size of local disk in GB
-
attribute string
flavor_id
=null¶ OpenStack unique ID. You can use the reserved value “auto” to have Nova generate a UUID for the flavor in cases where you cannot simply pass null.
-
attribute number
ephemeral
=0¶ Ephemeral disk size in GB
-
attribute number
swap
=0¶ Swap space in MB
-
attribute number
rxtx_factor
=1.0¶ RX/TX factor
-
attribute bool
is_public
=true¶ Whether the flavor is publicly visible
-
attribute dict
extra_specs
=Dict()¶ Set extra specs on a flavor. See https://docs.openstack.org/nova/rocky/admin/flavors.html
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.flavors [0:*]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::FloatingIP
¶ Parents:
openstack::OpenStackResource
-
attribute string
name
¶
-
attribute ip::ip
address
¶
-
attribute bool
force_ip
=false¶
-
relation openstack::Project
project
[1]¶ other end:
openstack::Project.floating_ips [0:*]
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.floating_ips [0:*]
-
relation openstack::Network
external_network
[1]¶ other end:
openstack::Network.floating_ips [0:*]
-
relation openstack::HostPort
port
[1]¶ other end:
openstack::HostPort.floating_ips [0:*]
The following implementations are defined for this entity:
The following implements statements select implementations for this entity:
openstack::fipName
,openstack::providerRequire
constrainttrue
openstack::fipAddr
constraint(not force_ip)
-
attribute string
-
entity
openstack::GroupRule
¶ Parents:
openstack::SecurityRule
-
relation openstack::SecurityGroup
remote_group
[1]¶ other end:
openstack::SecurityGroup.remote_group_rules [0:*]
The following implements statements select implementations for this entity:
std::none
constrainttrue
-
relation openstack::SecurityGroup
-
entity
openstack::Host
¶ Parents:
ip::Host
,openstack::VMAttributes
-
attribute bool
purged
=false¶
-
relation openstack::VirtualMachine
vm
[1]¶ other end:
openstack::VirtualMachine.host [0:1]
-
relation openstack::Subnet
subnet
[0:1]¶
-
relation ssh::Key
key_pair
[1]¶
-
relation openstack::Project
project
[1]¶
-
relation openstack::Provider
provider
[1]¶
-
relation openstack::SecurityGroup
security_groups
[0:*]¶
The following implementations are defined for this entity:
The following implements statements select implementations for this entity:
openstack::eth0Port
constraintsubnet is defined
std::hostDefaults
,openstack::openstackVM
constrainttrue
openstack::userData
constraintinstall_agent
-
attribute bool
-
entity
openstack::HostPort
¶ Parents:
openstack::Port
A port attached to a VM
-
attribute string
name
¶ The name of the host port.
-
attribute bool
portsecurity
=true¶ Enable or disable port security (security groups and spoofing filters)
-
attribute bool
dhcp
=true¶ Enable dhcp for this port or not for this port
-
attribute number
port_index
=0¶ The index of the port. This determines the order of the interfaces on the virtual machine. 0 means no specific order.
-
attribute number
retries
=20¶ A hostport can only be attached to a VM when it is in an active state. The handler will skip this port when the VM is not ready. To speed up deployments, the handler can retry this number of times before skipping the resource.
-
attribute number
wait
=5¶ The number of seconds to wait between retries.
-
relation openstack::Subnet
subnet
[1]¶ other end:
openstack::Subnet.host_ports [0:*]
-
relation openstack::VirtualMachine
vm
[1]¶ other end:
openstack::VirtualMachine.ports [0:*]
-
relation openstack::FloatingIP
floating_ips
[0:*]¶ other end:
openstack::FloatingIP.port [1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::IPrule
¶ Parents:
openstack::SecurityRule
-
attribute ip::cidr
remote_prefix
¶
The following implements statements select implementations for this entity:
std::none
constrainttrue
-
attribute ip::cidr
-
entity
openstack::Network
¶ Parents:
openstack::OpenStackResource
A neutron network owned by a project
-
attribute string
name
¶
-
attribute bool
external
=false¶
-
attribute string
physical_network
=''¶
-
attribute string
network_type
=''¶
-
attribute number
segmentation_id
=0¶
-
attribute bool
vlan_transparent
=null¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.networks [0:*]
-
relation openstack::Project
project
[1]¶ other end:
openstack::Project.networks [0:*]
-
relation openstack::Subnet
subnets
[0:*]¶ other end:
openstack::Subnet.network [1]
-
relation openstack::Router
routers
[0:*]¶ other end:
openstack::Router.ext_gateway [0:1]
-
relation openstack::FloatingIP
floating_ips
[0:*]¶ other end:
openstack::FloatingIP.external_network [1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::OpenStackResource
¶ Parents:
std::PurgeableResource
,std::ManagedResource
The following implementations are defined for this entity:
-
entity
openstack::Port
¶ Parents:
openstack::OpenStackResource
A port on a network
-
attribute ip::ip
address
¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.ports [0:*]
-
relation openstack::Project
project
[1]¶ other end:
openstack::Project.ports [0:*]
-
relation openstack::AddressPair
allowed_address_pairs
[0:*]¶
-
attribute ip::ip
-
entity
openstack::Project
¶ Parents:
openstack::OpenStackResource
A project / tenant in openstack
-
attribute string
name
¶
-
attribute bool
enabled
=true¶
-
attribute string
description
=''¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.projects [0:*]
-
relation openstack::Role
roles
[0:*]¶ Each user can have multiple roles
other end:
openstack::Role.project [1]
-
relation openstack::Network
networks
[0:*]¶ other end:
openstack::Network.project [1]
-
relation openstack::Port
ports
[0:*]¶ other end:
openstack::Port.project [1]
-
relation openstack::Subnet
subnets
[0:*]¶ other end:
openstack::Subnet.project [1]
-
relation openstack::Router
routers
[0:*]¶ other end:
openstack::Router.project [1]
-
relation openstack::SecurityGroup
security_groups
[0:*]¶ other end:
openstack::SecurityGroup.project [1]
-
relation openstack::FloatingIP
floating_ips
[0:*]¶ other end:
openstack::FloatingIP.project [1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::Provider
¶ Parents:
std::Entity
The configuration for accessing an Openstack based IaaS
-
attribute string
name
¶
-
attribute string
connection_url
¶
-
attribute string
username
¶
-
attribute string
password
¶
-
attribute string
tenant
¶
-
attribute string
token
=''¶
-
attribute string
admin_url
=''¶
-
attribute bool
auto_agent
=true¶
-
relation openstack::Project
projects
[0:*]¶ other end:
openstack::Project.provider [1]
-
relation openstack::User
users
[0:*]¶ other end:
openstack::User.provider [1]
-
relation openstack::Role
roles
[0:*]¶ other end:
openstack::Role.provider [1]
-
relation openstack::Service
services
[0:*]¶ other end:
openstack::Service.provider [1]
-
relation openstack::EndPoint
endpoints
[0:*]¶ other end:
openstack::EndPoint.provider [1]
-
relation openstack::Network
networks
[0:*]¶ other end:
openstack::Network.provider [1]
-
relation openstack::Port
ports
[0:*]¶ other end:
openstack::Port.provider [1]
-
relation openstack::Subnet
subnets
[0:*]¶ other end:
openstack::Subnet.provider [1]
-
relation openstack::Router
routers
[0:*]¶ other end:
openstack::Router.provider [1]
-
relation openstack::SecurityGroup
security_groups
[0:*]¶ other end:
openstack::SecurityGroup.provider [1]
-
relation openstack::FloatingIP
floating_ips
[0:*]¶ other end:
openstack::FloatingIP.provider [1]
-
relation openstack::VirtualMachine
virtual_machines
[0:*]¶ other end:
openstack::VirtualMachine.provider [1]
-
relation openstack::Flavor
flavors
[0:*]¶ other end:
openstack::Flavor.provider [1]
The following implementations are defined for this entity:
The following implements statements select implementations for this entity:
std::none
constrainttrue
openstack::agentConfig
constraintauto_agent
-
attribute string
-
entity
openstack::Role
¶ Parents:
openstack::OpenStackResource
A role in openstack. A role defines membership of a user in a project. This entity is used to connect users to projects. With this, it implicitly defines the role.
-
attribute string
role_id
¶
-
attribute string
role
¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.roles [0:*]
-
relation openstack::Project
project
[1]¶ Each user can have multiple roles
other end:
openstack::Project.roles [0:*]
-
relation openstack::User
user
[1]¶ other end:
openstack::User.roles [0:*]
The following implementations are defined for this entity:
The following implements statements select implementations for this entity:
openstack::roleImpl
,openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::Route
¶ Parents:
std::Entity
A routing rule to add
-
attribute ip::cidr
destination
¶
-
attribute ip::ip
nexthop
¶
-
relation openstack::Router
router
[0:1]¶ other end:
openstack::Router.routes [0:*]
The following implements statements select implementations for this entity:
std::none
constrainttrue
-
attribute ip::cidr
-
entity
openstack::Router
¶ Parents:
openstack::OpenStackResource
A router
-
attribute openstack::admin_state
admin_state
='up'¶
-
attribute string
name
¶
-
attribute bool
ha
=false¶
-
attribute bool
distributed
=false¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.routers [0:*]
-
relation openstack::Project
project
[1]¶ other end:
openstack::Project.routers [0:*]
-
relation openstack::RouterPort
ports
[0:*]¶ other end:
openstack::RouterPort.router [1]
-
relation openstack::Subnet
subnets
[0:*]¶ other end:
openstack::Subnet.router [0:1]
-
relation openstack::Network
ext_gateway
[0:1]¶ other end:
openstack::Network.routers [0:*]
-
relation openstack::Route
routes
[0:*]¶ other end:
openstack::Route.router [0:1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute openstack::admin_state
-
entity
openstack::RouterPort
¶ Parents:
openstack::Port
A port attached to a router
-
attribute string
name
¶
-
relation openstack::Subnet
subnet
[1]¶ other end:
openstack::Subnet.routers [0:*]
-
relation openstack::Router
router
[1]¶ other end:
openstack::Router.ports [0:*]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::SecurityGroup
¶ Parents:
openstack::OpenStackResource
-
attribute string
description
=''¶
-
attribute string
name
¶
-
attribute bool
manage_all
=true¶
-
attribute number
retries
=10¶ A security group can only be deleted when it is no longer in use. The API confirms the delete of a virtual machine for example, but it might still be in progress. This results in a failure to delete the security group. To speed up deployments, the handler can retry this number of times before skipping the resource.
-
attribute number
wait
=5¶ The number of seconds to wait between retries.
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.security_groups [0:*]
-
relation openstack::Project
project
[1]¶ other end:
openstack::Project.security_groups [0:*]
-
relation openstack::VirtualMachine
virtual_machines
[0:*]¶
-
relation openstack::GroupRule
remote_group_rules
[0:*]¶ other end:
openstack::GroupRule.remote_group [1]
-
relation openstack::SecurityRule
rules
[0:*]¶ other end:
openstack::SecurityRule.group [1]
The following implementations are defined for this entity:
The following implements statements select implementations for this entity:
openstack::sg
,openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::SecurityRule
¶ Parents:
std::Entity
A filter rule in the a security group
-
attribute ip::protocol
ip_protocol
¶ The type of ip protocol to allow. Currently this support tcp/udp/icmp/sctp or all
-
attribute ip::port
port_min
=0¶
-
attribute ip::port
port_max
=0¶
-
attribute ip::port
port
=0¶
-
attribute openstack::direction
direction
¶
-
relation openstack::SecurityGroup
group
[1]¶ other end:
openstack::SecurityGroup.rules [0:*]
-
attribute ip::protocol
-
entity
openstack::Service
¶ Parents:
openstack::OpenStackResource
-
attribute string
name
¶
-
attribute string
type
¶
-
attribute string
description
¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.services [0:*]
-
relation openstack::EndPoint
endpoint
[0:1]¶ other end:
openstack::EndPoint.service [1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::Subnet
¶ Parents:
openstack::OpenStackResource
A neutron network subnet
-
attribute ip::cidr
network_address
¶
-
attribute bool
dhcp
¶
-
attribute string
name
¶
-
attribute string
allocation_start
=''¶
-
attribute string
allocation_end
=''¶
-
attribute ip::ip
dns_servers
=List()¶
-
attribute ip::ip
gateway_ip
¶
-
relation openstack::RouterPort
routers
[0:*]¶ other end:
openstack::RouterPort.subnet [1]
-
relation openstack::HostPort
host_ports
[0:*]¶ other end:
openstack::HostPort.subnet [1]
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.subnets [0:*]
-
relation openstack::Project
project
[1]¶ other end:
openstack::Project.subnets [0:*]
-
relation openstack::Network
network
[1]¶ other end:
openstack::Network.subnets [0:*]
-
relation openstack::Router
router
[0:1]¶ other end:
openstack::Router.subnets [0:*]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute ip::cidr
-
entity
openstack::User
¶ Parents:
openstack::OpenStackResource
A user in openstack. A handler for this entity type is loaded by agents.
-
attribute string
name
¶ The name of the user. The name of the user has to be unique on a specific IaaS. The handler will use this name to query for the exact user and its ID.
-
attribute string
email
¶ The email address of the user to use.
-
attribute bool
enabled
=true¶ Enable or disable this user
-
attribute string
password
=''¶ The password for this user. The handler will always reset back to this password. The handler will ignore this attribute when an empty string is set.
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.users [0:*]
-
relation openstack::Role
roles
[0:*]¶ other end:
openstack::Role.user [1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
-
attribute string
-
entity
openstack::VMAttributes
¶ Parents:
platform::UserdataVM
Entity with vm attributes that can be used for a virtual machine and a host
-
attribute string
flavor
¶ The uuid of the flavor
-
attribute string
image
¶ The uuid of the image
-
attribute string
user_data
¶ The user_data script to pass
-
attribute dict
metadata
=Dict()¶ A dict of metadata items
-
attribute dict
personality
=Dict()¶ A dict of files (personality)
-
attribute bool
config_drive
=false¶ Attach a configuration drive to the vm
-
attribute bool
install_agent
=false¶ Create a script and pass it as user_data to install the inmanta agent at boot time.
-
attribute string
-
entity
openstack::VirtualMachine
¶ Parents:
openstack::OpenStackResource
,openstack::VMAttributes
-
attribute string
name
¶
-
relation openstack::HostPort
ports
[0:*]¶ other end:
openstack::HostPort.vm [1]
-
relation openstack::SecurityGroup
security_groups
[0:*]¶
-
relation openstack::HostPort
eth0_port
[1]¶
-
relation ssh::Key
key_pair
[1]¶
-
relation openstack::Project
project
[1]¶
-
relation openstack::Provider
provider
[1]¶ other end:
openstack::Provider.virtual_machines [0:*]
-
relation openstack::Host
host
[0:1]¶ other end:
openstack::Host.vm [1]
The following implements statements select implementations for this entity:
openstack::providerRequire
constrainttrue
openstack::userData
constraintinstall_agent
-
attribute string
Implementations¶
-
implementation
openstack::agentConfig
¶
-
implementation
openstack::endPoint
¶
-
implementation
openstack::eth0Port
¶
-
implementation
openstack::fipAddr
¶
-
implementation
openstack::fipName
¶
-
implementation
openstack::openstackVM
¶
-
implementation
openstack::providerRequire
¶
-
implementation
openstack::roleImpl
¶
-
implementation
openstack::sg
¶
-
implementation
openstack::userData
¶
Plugins¶
-
openstack.
find_flavor
(provider: openstack::Provider, vcpus: number, ram: number, pinned: bool=False) → string¶ Find the flavor that matches the closest to the resources requested.
- Parameters
vcpus – The number of virtual cpus in the flavor
ram – The amount of ram in gigabyte
pinned – Wether the CPUs need to be pinned (#vcpu == #pcpu)
-
openstack.
find_image
(provider: openstack::Provider, os: std::OS, name: string=None) → string¶ Search for an image that matches the given operating system. This plugin uses the os_distro and os_version tags of an image and the name and version attributes of the OS parameter.
If multiple images match, the most recent image is returned.
- Parameters
provider – The provider to query for an image
os – The operating system and version (using os_distro and os_version metadata)
name – An optional string that the image name should contain
Resources¶
-
class
openstack.
EndPoint
¶ An endpoint for a service
Resource for entity
openstack::EndPoint
Id attribute
service_id
Agent name
provider.name
Handlers
openstack.EndpointHandler
-
class
openstack.
Flavor
¶ A flavor is an available hardware configuration for a server.
Resource for entity
openstack::Flavor
Id attribute
name
Agent name
provider.name
Handlers
openstack.FlavorHandler
-
class
openstack.
FloatingIP
¶ A floating ip
Resource for entity
openstack::FloatingIP
Id attribute
name
Agent name
provider.name
Handlers
openstack.FloatingIPHandler
-
class
openstack.
HostPort
¶ A port in a router
Resource for entity
openstack::HostPort
Id attribute
name
Agent name
provider.name
Handlers
openstack.HostPortHandler
-
class
openstack.
Network
¶ This class represents a network in neutron
Resource for entity
openstack::Network
Id attribute
name
Agent name
provider.name
Handlers
openstack.NetworkHandler
-
class
openstack.
Project
¶ This class represents a project in keystone
Resource for entity
openstack::Project
Id attribute
name
Agent name
provider.name
Handlers
openstack.ProjectHandler
-
class
openstack.
Role
¶ A role that adds a user to a project
Resource for entity
openstack::Role
Id attribute
role_id
Agent name
provider.name
Handlers
openstack.RoleHandler
-
class
openstack.
Router
¶ This class represent a router in neutron
Resource for entity
openstack::Router
Id attribute
name
Agent name
provider.name
Handlers
openstack.RouterHandler
-
class
openstack.
RouterPort
¶ A port in a router
Resource for entity
openstack::RouterPort
Id attribute
name
Agent name
provider.name
Handlers
openstack.RouterPortHandler
-
class
openstack.
SecurityGroup
¶ A security group in an OpenStack tenant
Resource for entity
openstack::SecurityGroup
Id attribute
name
Agent name
provider.name
Handlers
openstack.SecurityGroupHandler
-
class
openstack.
Service
¶ A service for which endpoints can be registered
Resource for entity
openstack::Service
Id attribute
name
Agent name
provider.name
Handlers
openstack.ServiceHandler
-
class
openstack.
Subnet
¶ This class represent a subnet in neutron
Resource for entity
openstack::Subnet
Id attribute
name
Agent name
provider.name
Handlers
openstack.SubnetHandler
-
class
openstack.
User
¶ A user in keystone
Resource for entity
openstack::User
Id attribute
name
Agent name
provider.name
Handlers
openstack.UserHandler
-
class
openstack.
VirtualMachine
¶ A virtual machine managed by a hypervisor or IaaS
Resource for entity
openstack::VirtualMachine
Id attribute
name
Agent name
provider.name
Handlers
openstack.VirtualMachineHandler
Handlers¶
-
class
openstack.
FlavorHandler
¶ Handler name
openstack
Handler for entity
openstack::Flavor
-
class
openstack.
VirtualMachineHandler
¶ Handler name
openstack
Handler for entity
openstack::VirtualMachine
-
class
openstack.
NetworkHandler
¶ Handler name
openstack
Handler for entity
openstack::Network
-
class
openstack.
RouterHandler
¶ Handler name
openstack
Handler for entity
openstack::Router
-
class
openstack.
SubnetHandler
¶ Handler name
openstack
Handler for entity
openstack::Subnet
-
class
openstack.
RouterPortHandler
¶ Handler name
openstack
Handler for entity
openstack::RouterPort
-
class
openstack.
HostPortHandler
¶ Handler name
openstack
Handler for entity
openstack::HostPort
-
class
openstack.
SecurityGroupHandler
¶ Handler name
openstack
Handler for entity
openstack::SecurityGroup
-
class
openstack.
FloatingIPHandler
¶ Handler name
openstack
Handler for entity
openstack::FloatingIP
-
class
openstack.
ProjectHandler
¶ Handler name
openstack
Handler for entity
openstack::Project
-
class
openstack.
UserHandler
¶ Handler name
openstack
Handler for entity
openstack::User
-
class
openstack.
RoleHandler
¶ creates roles and user, project, role assocations
Handler name
openstack
Handler for entity
openstack::Role
-
class
openstack.
ServiceHandler
¶ Handler name
openstack
Handler for entity
openstack::Service
-
class
openstack.
EndpointHandler
¶ Handler name
openstack
Handler for entity
openstack::EndPoint