Module openstack

  • License: Apache 2.0

  • Version: 5.1.1

Typedefs

typedef openstack::admin_state
  • Base type string

  • Type constraint ((self == 'up') or (self == 'down'))

typedef openstack::bdm_destination_type
  • Base type string

  • Type constraint (self in ['local', 'volume'])

typedef openstack::bdm_device_type
  • Base type string

  • Type constraint (self in ['cdrom', 'disk'])

typedef openstack::bdm_role
  • Base type string

  • Type constraint (self in ['cdrom', 'data', 'boot'])

typedef openstack::bdm_source_type
  • Base type string

  • Type constraint (self in ['image', 'volume', 'snapshot', 'blank'])

typedef openstack::container_format
  • Base type string

  • Type constraint (self in ['ami', 'ari', 'aki', 'bare', 'ovf', 'ova', 'docker'])

typedef openstack::direction
  • Base type string

  • Type constraint ((self == 'ingress') or (self == 'egress'))

typedef openstack::disk_format
  • Base type string

  • Type constraint (self in ['ami', 'ari', 'aki', 'vhd', 'vhdx', 'vmdk', 'raw', 'qcow2', 'vdi', 'iso', 'ploop'])

typedef openstack::ipv6_mode
  • Base type string

  • Type constraint (self in ['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'])

typedef openstack::mac_addr
  • Base type string

  • Type constraint std::validate_type('pydantic.constr',self,{'regex': '^([0-9a-fA-F]{2})(:[0-9a-fA-F]{2}){5}|$', 'strict': True})

typedef openstack::protocol
  • Base type string

  • Type constraint (self in ['tcp', 'udp', 'icmp', 'sctp', 'all'])

typedef openstack::visibility
  • Base type string

  • Type constraint (self in ['public', 'private'])

Entities

entity openstack::AddressPair

Parents: std::Entity

An address pair that is added to a host port

attribute std::ipv4_network address

The address range that is allowed on this port (network interface)

attribute openstack::mac_addr? mac=null

The following implements statements select implementations for this entity:

entity openstack::BlockDevice

Parents: std::Entity

A block device attached to a VirtualMachine via block_device_mapping_v2.

attribute openstack::bdm_source_type source_type='image'

image, volume, snapshot, or blank.

attribute openstack::bdm_destination_type? destination_type=null

local = ephemeral disk, volume = Cinder volume.

attribute openstack::bdm_device_type? device_type=null

cdrom or disk.

attribute string? disk_bus=null

Override the bus: virtio, ide, scsi, etc. Nova picks a sensible default when omitted.

attribute string? uuid=null

Glance image id, Cinder volume id, or snapshot id. Required for image/volume/snapshot; not used for blank.

attribute int? boot_index=null

0 = primary boot device, -1 = not bootable.

attribute bool delete_on_termination=true

Destroy the Cinder volume when the VM is deleted.

attribute int? volume_size=null

Size in GB. Required for source_type=”blank”. For image/snapshot sources Nova derives the size from image.min_disk (or ceil(image.size)) when omitted.

relation openstack::VirtualMachine vm [1]

other end: openstack::VirtualMachine.block_devices [0:*]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

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 int ram

Memory in MB for the flavor

attribute int vcpus

Number of VCPUs for the flavor

attribute int 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 int ephemeral=0

Ephemeral disk size in GB

attribute int swap=0

Swap space in MB

attribute float rxtx_factor=1.0

RX/TX factor

attribute bool is_public=true

Whether the flavor is publicly visible

attribute dict extra_specs={}

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:

entity openstack::FloatingIP

Parents: openstack::OpenStackResource

attribute string name
attribute std::ipv4_address 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:

entity openstack::Group

Parents: openstack::OpenStackResource

A group in openstack. Groups allow managing access for multiple users together.

attribute string name

The name of the group. The name of the group has to be unique within a domain.

attribute string description=''

A description of the group.

attribute string domain='Default'

The domain in which the group exists.

relation openstack::Provider provider [1]

other end: openstack::Provider.groups [0:*]

relation openstack::GroupRole group_roles [0:*]

other end: openstack::GroupRole.group [0:1]

The following implements statements select implementations for this entity:

entity openstack::GroupRole

Parents: openstack::OpenStackResource

A role assignment for a group on a project. This entity is used to connect groups to projects with a specific role, allowing group-based access control in OpenStack.

attribute string role

The name of the role to assign to the group.

attribute string group_name

The name of the group to assign the role to.

attribute string group_domain='Default'

The domain in which the group exists.

attribute string domain=''

The domain in which the role exists. Leave empty for a global role (applies across all domains).

relation openstack::Provider provider [1]

other end: openstack::Provider.group_roles [0:*]

relation openstack::Project project [1]

other end: openstack::Project.group_roles [0:*]

relation openstack::Group group [0:1]

other end: openstack::Group.group_roles [0:*]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

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:

entity openstack::Host

Parents: std::Host, openstack::VMAttributes

attribute bool purged=false

Set whether this Host should exist or not.

attribute bool purge_on_delete=false

Purge this Host when it is deleted from the configuration model.

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:

entity openstack::HostAggregateMetadata

Parents: openstack::OpenStackResource

A single metadata item (key/value) on a Nova host aggregate.

Each instance manages exactly one key on the named aggregate and leaves all other keys untouched, so multiple instances - and multiple consumers - can safely manage different keys on the same aggregate. Purging the resource removes the key from the aggregate again.

A typical use case is the AggregateMultiTenancyIsolation scheduler filter, where keys of the form filter_tenant_id_<suffix> pin projects to an aggregate.

attribute string aggregate

Name of the host aggregate to manage the metadata on. The aggregate must already exist; this resource does not create or delete it.

attribute string key

The metadata key to manage.

attribute string value

The value to set for key.

relation openstack::Provider provider [1]

other end: openstack::Provider.host_aggregate_metadata [0:*]

The following implements statements select implementations for this entity:

entity openstack::HostPort

Parents: openstack::Port

A port attached to a VM

attribute std::ipv4_address? address=null

An optional fixed IPv4 to request. When omitted neutron assigns one; leave unset for an IPv6-only port. Ignored when dhcp is true.

attribute std::ipv6_address? address_v6=null

An optional fixed IPv6 to request from an IPv6 subnet on the port’s network. When omitted no IPv6 is requested. Ignored when dhcp is true.

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 int 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 int 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 int wait=5

The number of seconds to wait between retries.

relation openstack::SubnetBase subnet [1]

other end: openstack::SubnetBase.host_ports [0:*]

relation openstack::VirtualMachine vm [1]

other end: openstack::VirtualMachine.ports [0:*]

relation openstack::SecurityGroup security_groups [0:*]
Rel security_groups:

The security groups to enforce on this port. When left empty (the default), the port’s security groups are left unmanaged for backward compatibility: existing groups (including the Neutron default group) are kept untouched and never cleared. Requires portsecurity to be enabled.

relation openstack::FloatingIP floating_ips [0:*]

other end: openstack::FloatingIP.port [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity openstack::IPrule

Parents: openstack::SecurityRule

attribute std::ipv4_network remote_prefix

The following implements statements select implementations for this entity:

entity openstack::Image

Parents: openstack::OpenStackResource

A machine image for OpenStack VMs

attribute string name

Name for the flavor. Inmanta treats image names as unique per provider.

attribute string? uri=null

a link to the download location of the image. Mutually exclusive with file.

attribute string? file=null

an absolute path to a local image file on the agent machine. Mutually exclusive with uri. Uploaded directly to Glance; the ‘glance-direct’ import method is used instead when the cloud exposes it.

attribute openstack::container_format? container_format='bare'

Must be one of [null, ami, ari, aki, bare, ovf, ova, docker].

attribute openstack::disk_format? disk_format='qcow2'

Must be one of [null, ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso, ploop].

attribute std::uuid? image_id=null

uuid to identify the image. Auto set by OpenStack if not set.

attribute openstack::visibility visibility='public'

Whether the image is visible across all projects. Can either be public or private. Shared and community are currently not implemented.

attribute bool protected=false

Whether the image can be deleted or not. Inmanta will never delete protected images.

attribute dict metadata={}

Various metadata passed as a dict.

attribute bool skip_on_deploy=true

When set, inmanta will not wait for the image to be deployed and mark it as skipped.

attribute bool purge_on_delete=false

When set to true, the image will be removed when no longer present in the model.

relation openstack::Provider provider [1]

other end: openstack::Provider.images [0:*]

The following implements statements select implementations for this entity:

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 bool port_security_enabled=true
attribute int segmentation_id=0
attribute bool shared=false
attribute bool? vlan_transparent=null
attribute int? mtu=null
attribute string qos_policy=''
relation openstack::Provider provider [1]

other end: openstack::Provider.networks [0:*]

relation openstack::Project project [1]

other end: openstack::Project.networks [0:*]

relation openstack::SubnetBase subnets [0:*]

other end: openstack::SubnetBase.network [1]

relation openstack::NetworkPort network_ports [0:*]

other end: openstack::NetworkPort.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:

entity openstack::NetworkPort

Parents: openstack::Port

A standalone neutron port, managed directly on a network and not bound to a router or a virtual machine. This mirrors the openstack port create --network <network> <name> command and is suitable as the parent port of a TrunkNetwork.

attribute bool portsecurity=true

Enable or disable port security (security groups and spoofing filters).

attribute std::ipv4_address? address=null

An optional fixed ip address for the port. When omitted, neutron assigns one from the network. When set, a subnet must be provided.

attribute string? mac_address=null

An optional MAC address for the port. When omitted, neutron assigns one. It is typed as a plain string (not the mac_addr typedef) so it can hold a fact reference resolved at deploy time, e.g. future::std::create_fact_reference(parent_port, "mac_address") to make a trunk sub-port share its parent port’s MAC. Set only at creation; neutron does not allow changing it afterwards.

relation openstack::Network network [1]

other end: openstack::Network.network_ports [0:*]

relation openstack::Subnet subnet [0:1]

other end: openstack::Subnet.network_ports [0:*]

The following implements statements select implementations for this entity:

entity openstack::OpenStackResource

Parents: std::PurgeableResource, std::ManagedResource

Base class for all openstack resources

attribute bool send_event=true

Forced to default true. This means that all resources that subscribe to this resource will run their process events / reload.

The following implementations are defined for this entity:

entity openstack::Port

Parents: openstack::OpenStackResource

A port on a network

attribute string name

The name of the port.

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:*]
relation openstack::TrunkNetwork trunk [0:1]

other end: openstack::TrunkNetwork.parent_port [1]

relation openstack::TrunkPort trunk_subport [0:1]

other end: openstack::TrunkPort.port [1]

entity openstack::Project

Parents: openstack::OpenStackResource

A project in openstack

attribute string name
attribute bool enabled=true
attribute string description=''
attribute string domain='Default'
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::GroupRole group_roles [0:*]

other end: openstack::GroupRole.project [1]

relation openstack::ProjectQuota quota [0:1]

other end: openstack::ProjectQuota.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::SubnetBase subnets [0:*]

other end: openstack::SubnetBase.project [1]

relation openstack::QoSPolicy qos_policies [0:*]

other end: openstack::QoSPolicy.project [1]

relation openstack::TrunkNetwork trunks [0:*]

other end: openstack::TrunkNetwork.project [1]

relation openstack::TrunkPort trunk_ports [0:*]

other end: openstack::TrunkPort.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:

entity openstack::ProjectQuota

Parents: openstack::OpenStackResource

Quota limits for an OpenStack project across compute, storage, and network services. All quota values are optional - if not specified, they will not be managed.

attribute int? cores=null

Number of allowed CPU cores (compute)

attribute int? ram=null

Amount of allowed RAM in MB (compute)

attribute int? instances=null

Number of allowed instances (compute)

attribute int? injected_file_size=null

Maximum size of injected file content in bytes (compute)

attribute int? injected_path_size=null

Maximum size of injected file path in bytes (compute)

attribute int? injected_files=null

Number of allowed injected files (compute)

attribute int? key_pairs=null

Number of allowed key pairs (compute)

attribute int? properties=null

Number of allowed metadata properties per instance (compute)

attribute int? server_groups=null

Number of allowed server groups (compute)

attribute int? server_group_members=null

Number of allowed members per server group (compute)

attribute int? gigabytes=null

Size of volumes and snapshots in GB (storage)

attribute int? volumes=null

Number of allowed volumes (storage)

attribute int? snapshots=null

Number of allowed snapshots (storage)

attribute int? backups=null

Number of allowed backups (storage)

attribute int? backup_gigabytes=null

Size of backups in GB (storage)

attribute int? per_volume_gigabytes=null

Maximum size per volume in GB (storage)

attribute int? floating_ips=null

Number of allowed floating IPs (network)

attribute int? networks=null

Number of allowed networks (network)

attribute int? ports=null

Number of allowed ports (network)

attribute int? routers=null

Number of allowed routers (network)

attribute int? security_groups=null

Number of allowed security groups (network)

attribute int? security_group_rules=null

Number of allowed security group rules (network)

attribute int? subnets=null

Number of allowed subnets (network)

attribute int? subnet_pools=null

Number of allowed subnet pools (network)

attribute int? rbac_policies=null

Number of allowed RBAC policies (network)

relation openstack::Provider provider [1]

other end: openstack::Provider.quotas [0:*]

relation openstack::Project project [1]

other end: openstack::Project.quota [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity openstack::Provider

Parents: std::Entity

The configuration for accessing an Openstack based IaaS

attribute string name
attribute string connection_url
attribute bool verify_cert=true

Indicates whether the SSL/TLS certificate should be verified.

attribute string username
attribute string password
attribute string project_name
attribute string user_domain_name='Default'
attribute string project_domain_name='Default'
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::Group groups [0:*]

other end: openstack::Group.provider [1]

relation openstack::Role roles [0:*]

other end: openstack::Role.provider [1]

relation openstack::GroupRole group_roles [0:*]

other end: openstack::GroupRole.provider [1]

relation openstack::ProjectQuota quotas [0:*]

other end: openstack::ProjectQuota.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::SubnetBase subnets [0:*]

other end: openstack::SubnetBase.provider [1]

relation openstack::QoSPolicy qos_policies [0:*]

other end: openstack::QoSPolicy.provider [1]

relation openstack::TrunkNetwork trunks [0:*]

other end: openstack::TrunkNetwork.provider [1]

relation openstack::TrunkPort trunk_ports [0:*]

other end: openstack::TrunkPort.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]

relation openstack::HostAggregateMetadata host_aggregate_metadata [0:*]

other end: openstack::HostAggregateMetadata.provider [1]

relation openstack::Image images [0:*]

other end: openstack::Image.provider [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity openstack::QoSPolicy

Parents: openstack::OpenStackResource

A Neutron QoS policy, optionally containing a DSCP marking rule.

QoS policies are containers for rules that can be attached to networks or ports. When a dscp_mark is provided the handler will automatically create (or update / delete) the DSCP marking rule inside the policy.

attribute string name

Name of the QoS policy. Must be unique per project.

attribute string? description=null

Optional human-readable description.

attribute bool shared=false

When true the policy is visible to all projects.

attribute int? dscp_mark=null

Optional DSCP value to stamp on packets. Valid values per RFC 2474: 0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 46, 48, 56. When null no DSCP marking rule is managed.

relation openstack::Provider provider [1]

other end: openstack::Provider.qos_policies [0:*]

relation openstack::Project project [1]

other end: openstack::Project.qos_policies [0:*]

The following implements statements select implementations for this entity:

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

The name of the role.

attribute string domain=''

The domain in which the role exists. Leave empty for a global role (applies across all domains).

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:

entity openstack::Route

Parents: std::Entity

A routing rule to add

attribute std::ipv4_network destination
attribute std::ipv4_address nexthop
relation openstack::Router router [0:1]

other end: openstack::Router.routes [0:*]

The following implements statements select implementations for this entity:

entity openstack::RouteV6

Parents: std::Entity

attribute std::ipv6_network destination
attribute std::ipv6_address nexthop
relation openstack::SubnetV6 subnet [0:1]

other end: openstack::SubnetV6.routes [0:*]

The following implements statements select implementations for this entity:

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:

entity openstack::RouterPort

Parents: openstack::Port

A port attached to a router

attribute std::ipv4_address address
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:

entity openstack::SecurityGroup

Parents: openstack::OpenStackResource

attribute string description=''
attribute string name
attribute bool manage_all=true
attribute int 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 int 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:*]

other end: openstack::VirtualMachine.security_groups [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:

entity openstack::SecurityRule

Parents: std::Entity

A filter rule in the a security group

attribute openstack::protocol ip_protocol

The type of ip protocol to allow. Currently this support tcp/udp/icmp/sctp or all

attribute std::port port_min=0
attribute std::port port_max=0
attribute std::port port=0
attribute openstack::direction direction
relation openstack::SecurityGroup group [1]

other end: openstack::SecurityGroup.rules [0:*]

entity openstack::SimpleBlockDevice

Parents: std::Entity

A simplified block device for VMs. Specify a role; the underlying BlockDevice settings are derived automatically.

“boot” Boot volume from a Glance image. Requires uuid. “cdrom” CD-ROM from a Glance image. Requires uuid. “data” Blank data volume. Requires volume_size.

attribute openstack::bdm_role role

boot, cdrom, or data.

attribute string? uuid=null

Glance image id. Required for boot and cdrom.

attribute int? volume_size=null

Size in GB. Required for data.

attribute string? disk_bus=null

Override the bus: virtio, ide, scsi, etc.

attribute bool delete_on_termination=true

Destroy the volume when the VM is deleted.

relation openstack::VirtualMachine vm [1]

other end: openstack::VirtualMachine.simple_block_devices [0:*]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity openstack::Subnet

Parents: openstack::SubnetBase

Neutron IPv4 network subnet.

attribute std::ipv4_network network_address

IPv4 CIDR for the subnet (e.g., 192.0.2.0/24)

attribute std::ipv4_address[] dns_servers=List()

Optional list of IPv4 DNS resolvers for this subnet.

attribute std::ipv4_address? gateway_ip=null

Gateway IP to set explicitly. If null/omitted and disable_gateway_ip=false, Neutron may select a default gateway (typically the first usable IP).

attribute dict host_routes={}

Static routes pushed to hosts via DHCP. Each key is a destination CIDR and the value is the nexthop IP address. E.g. {“10.0.0.0/8”: “192.168.1.1”}.

relation openstack::RouterPort routers [0:*]

other end: openstack::RouterPort.subnet [1]

relation openstack::NetworkPort network_ports [0:*]

other end: openstack::NetworkPort.subnet [0:1]

relation openstack::Router router [0:1]

other end: openstack::Router.subnets [0:*]

The following implements statements select implementations for this entity:

entity openstack::SubnetBase

Parents: openstack::OpenStackResource

A neutron subnet

attribute string name
attribute bool dhcp
attribute string allocation_start=''
attribute string allocation_end=''
attribute bool disable_gateway_ip=false
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:*]

The following implements statements select implementations for this entity:

entity openstack::SubnetV6

Parents: openstack::SubnetBase

A neutron IPv6 network subnet

attribute std::ipv6_network network_address
attribute std::ipv6_address[] dns_servers=List()
attribute std::ipv6_address? gateway_ip=null

The gateway IP to set on this subnet. If set to null, Neutron may select a default. Example subnet: 2001:db8:1::/64, gateway: 2001:db8:1::1

attribute openstack::ipv6_mode? ipv6_ra_mode=null

OpenStack CLI –ipv6-ra-mode (slaac/dhcpv6-stateful/dhcpv6-stateless)

attribute openstack::ipv6_mode? ipv6_address_mode=null

OpenStack CLI –ipv6-address-mode (slaac/dhcpv6-stateful/dhcpv6-stateless)

attribute dict host_routes={}

Static routes pushed to hosts via DHCP. Each key is a destination CIDR and the value is the nexthop IP address. E.g. {“2001:db8:2::/64”: “2001:db8:1::1”}.

relation openstack::RouteV6 routes [0:*]

other end: openstack::RouteV6.subnet [0:1]

The following implements statements select implementations for this entity:

entity openstack::TrunkNetwork

Parents: openstack::OpenStackResource

A neutron trunk. A trunk groups a parent port together with a set of subports (see TrunkPort) so that a single VM interface can carry traffic for multiple networks using VLAN tagging.

The trunk is built on top of an existing parent port. That port can be a standalone NetworkPort or a HostPort attached to a virtual machine. The parent port is managed separately.

attribute string name

The name of the trunk. Must be unique per project.

attribute string description=''

An optional human-readable description.

attribute bool admin_state_up=true

The administrative state of the trunk.

relation openstack::Provider provider [1]

other end: openstack::Provider.trunks [0:*]

relation openstack::Project project [1]

other end: openstack::Project.trunks [0:*]

relation openstack::Port parent_port [1]

other end: openstack::Port.trunk [0:1]

relation openstack::TrunkPort sub_ports [0:*]

other end: openstack::TrunkPort.trunk [1]

The following implements statements select implementations for this entity:

entity openstack::TrunkPort

Parents: openstack::OpenStackResource

A subport of a TrunkNetwork. It attaches an existing port (a NetworkPort or HostPort) to the trunk with the configured segmentation type and id (typically a VLAN). The referenced port is managed separately; this resource only manages the trunk subport attachment, not the port itself.

attribute string name

The name of the subport. Must be unique per project.

attribute string segmentation_type='vlan'

The segmentation technology, e.g. “vlan”.

attribute int segmentation_id

The segmentation id (e.g. the VLAN id).

relation openstack::Provider provider [1]

other end: openstack::Provider.trunk_ports [0:*]

relation openstack::Project project [1]

other end: openstack::Project.trunk_ports [0:*]

relation openstack::TrunkNetwork trunk [1]

other end: openstack::TrunkNetwork.sub_ports [0:*]

relation openstack::Port port [1]

other end: openstack::Port.trunk_subport [0:1]

The following implements statements select implementations for this entity:

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=null

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.

attribute string domain='Default'

The domain in which the user exists.

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:

entity openstack::VMAttributes

Parents: std::Entity

Entity with vm attributes that can be used for a virtual machine and a host

attribute string flavor

The name of the flavor

attribute string? image=null

The uuid of the image

attribute string user_data

The user_data script to pass

attribute dict metadata={}

A dict of metadata items

attribute dict personality={}

A dict of files (personality)

attribute bool config_drive=false

Attach a configuration drive to the vm

attribute string? availability_zone=null

Nova availability zone to schedule the VM in. When null, Nova chooses.

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:*]

other end: openstack::SecurityGroup.virtual_machines [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::Flavor flavor_rel [0:1]
relation openstack::Host host [0:1]

other end: openstack::Host.vm [1]

relation openstack::BlockDevice block_devices [0:*]

other end: openstack::BlockDevice.vm [1]

relation openstack::SimpleBlockDevice simple_block_devices [0:*]

other end: openstack::SimpleBlockDevice.vm [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

Implementations

implementation openstack::agentConfig
implementation openstack::bdmImageExclusive
implementation openstack::bdmUuidRequired
implementation openstack::bdmVolumeSizeRequired
implementation openstack::eth0Port
implementation openstack::fipAddr
implementation openstack::fipName
implementation openstack::flavorFromRelation
implementation openstack::groupRoleImpl
implementation openstack::noSecurityGroupsWhenPortSecurityDisabled
implementation openstack::openstackVM
implementation openstack::projectRequire
implementation openstack::providerRequire
implementation openstack::roleImpl
implementation openstack::sg
implementation openstack::simpleBlockDeviceBoot
implementation openstack::simpleBlockDeviceCdrom
implementation openstack::simpleBlockDeviceData
implementation openstack::simpleBlockDeviceUuidRequired
implementation openstack::simpleBlockDeviceVolumeSizeRequired

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

openstack.image_size_gb(provider: 'openstack::Provider', image_id: 'string') 'int'

Return the size of a Glance image in GB, rounded up.

Parameters:
  • provider – The OpenStack provider to connect to.

  • image_id – The Glance image ID (e.g. from std::getfact(image, “image_id”)).

Resources

class openstack.compute.flavor.Flavor

A flavor is an available hardware configuration for a server.

class openstack.network.floating_ip.FloatingIP

A floating ip

class openstack.identity.group.Group

A group in keystone

class openstack.identity.group_role.GroupRole

A role assignment that adds a group to a project with a specific role.

class openstack.compute.host_aggregate.HostAggregateMetadata

A single key/value metadata item on a Nova host aggregate.

class openstack.compute.host_port.HostPort

A port attached to a VM.

class openstack.image.image.Image
class openstack.network.network.Network

This class represents a network in neutron

class openstack.network.network_port.NetworkPort

A standalone neutron port, not bound to a router or a virtual machine

class openstack.identity.project.Project

This class represents a project in keystone

class openstack.quota.quota.ProjectQuota

This class represents quota limits for an OpenStack project across compute, storage, and network services.

class openstack.network.qos_policy.QoSPolicy

A Neutron QoS policy with an optional embedded DSCP marking rule.

class openstack.identity.role.Role

A role that adds a user to a project

class openstack.network.router.Router

This class represent a router in neutron

class openstack.network.router_port.RouterPort

A port in a router

class openstack.network.security_group.SecurityGroup

A security group in an OpenStack project

class openstack.network.subnet.Subnet

This class represent a subnet in neutron

class openstack.network.subnet_v6.SubnetV6

This class represent an ipv6 subnet in neutron

class openstack.network.trunk_network.TrunkNetwork

A neutron trunk built on top of an existing parent port

class openstack.network.trunk_port.TrunkPort

A subport of a trunk: it attaches an existing port to a trunk with a segmentation type and id. The referenced port is managed separately.

class openstack.identity.user.User

A user in keystone

class openstack.compute.virtual_machine.VirtualMachine

A virtual machine managed by a hypervisor or IaaS

Handlers

class openstack.compute.flavor.FlavorHandler
class openstack.compute.host_aggregate.HostAggregateMetadataHandler

Manage a single metadata key on a host aggregate.

create/update -> set the key to the desired value delete -> remove the key (Nova removes a key when its value is None),

leaving any other keys on the aggregate untouched

class openstack.compute.host_port.HostPortHandler

Manage a neutron port on a VM. Its subnet relation may be an IPv4 or an IPv6 (SubnetBase) subnet, so a port can live on an IPv6-only network.

class openstack.compute.virtual_machine.VirtualMachineHandler
class openstack.identity.group.GroupHandler
class openstack.identity.group_role.GroupRoleHandler

Handler for group-based role assignments on projects.

class openstack.identity.project.ProjectHandler
class openstack.identity.role.RoleHandler

creates roles and user, project, role assocations

class openstack.identity.user.UserHandler
class openstack.image.image.ImageHandler
class openstack.network.floating_ip.FloatingIPHandler
class openstack.network.network.NetworkHandler
class openstack.network.network_port.NetworkPortHandler
class openstack.network.qos_policy.QoSPolicyHandler
class openstack.network.router.RouterHandler
class openstack.network.router_port.RouterPortHandler
class openstack.network.security_group.SecurityGroupHandler
class openstack.network.subnet.SubnetHandler
class openstack.network.subnet_v6.SubnetV6Handler
class openstack.network.trunk_network.TrunkNetworkHandler
class openstack.network.trunk_port.TrunkPortHandler
class openstack.quota.quota.ProjectQuotaHandler

Handler for managing OpenStack project quotas across compute, storage, and network services.