infrastructure.cluster.x-k8s.io/v1beta2

Package v1beta2 contains API Schema definitions for the infrastructure v1beta2 API group.

Resource Types:

OpenStackCluster

OpenStackCluster is the Schema for the openstackclusters API.

Field Description
apiVersion
string
infrastructure.cluster.x-k8s.io/v1beta2
kind
string
OpenStackCluster
metadata
Kubernetes meta/v1.ObjectMeta

metadata is the standard object metadata.

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
OpenStackClusterSpec

spec is the desired state of the OpenStackCluster.



managedSubnets
[]SubnetSpec
(Optional)

managedSubnets describe OpenStack Subnets to be created. Cluster actuator will create a network, subnets with the defined CIDR, and a router connected to these subnets. Currently only one IPv4 subnet is supported. If you leave this empty, no network will be created.

subnets
[]SubnetParam
(Optional)

subnets specifies existing subnets to use if not ManagedSubnets are specified. All subnets must be in the network specified by Network. There can be zero, one, or two subnets. If no subnets are specified, all subnets in Network will be used. If 2 subnets are specified, one must be IPv4 and the other IPv6.

managedRouter
ManagedRouter
(Optional)

managedRouter specifies attributes of the router. The values are used only if the Cluster actuator creates the router.

router
RouterParam
(Optional)

router specifies an existing router to be used if ManagedSubnets are specified. If specified, no new router will be created.

managedNetwork
ManagedNetwork
(Optional)

managedNetwork specifies attributes of the network. The values are used only if the Cluster actuator creates the network.

network
NetworkParam
(Optional)

network specifies an existing network to use if no ManagedSubnets are specified.

externalNetwork
NetworkParam
(Optional)

externalNetwork is the OpenStack Network to be used to get public internet to the VMs. This option is ignored if DisableExternalNetwork is set to true.

If ExternalNetwork is defined it must refer to exactly one external network.

If ExternalNetwork is not defined or is empty the controller will use any existing external network as long as there is only one. It is an error if ExternalNetwork is not defined and there are multiple external networks unless DisableExternalNetwork is also set.

If ExternalNetwork is not defined and there are no external networks the controller will proceed as though DisableExternalNetwork was set.

disableExternalNetwork
bool
(Optional)

disableExternalNetwork specifies whether or not to attempt to connect the cluster to an external network. This allows for the creation of clusters when connecting to an external network is not possible or desirable, e.g. if using a provider network.

apiServerLoadBalancer
APIServerLoadBalancer
(Optional)

apiServerLoadBalancer configures the optional LoadBalancer for the APIServer. If not specified, no load balancer will be created for the API server.

disableAPIServerFloatingIP
bool
(Optional)

disableAPIServerFloatingIP determines whether or not to attempt to attach a floating IP to the API server. This allows for the creation of clusters when attaching a floating IP to the API server (and hence, in many cases, exposing the API server to the internet) is not possible or desirable, e.g. if using a shared VLAN for communication between management and workload clusters or when the management cluster is inside the project network. This option requires that the API server use a VIP on the cluster network so that the underlying machines can change without changing ControlPlaneEndpoint.Host. When using a managed load balancer, this VIP will be managed automatically. If not using a managed load balancer, cluster configuration will fail without additional configuration to manage the VIP on the control plane machines, which falls outside of the scope of this controller.

apiServerFloatingIP
string
(Optional)

apiServerFloatingIP is the floatingIP which will be associated with the API server. The floatingIP will be created if it does not already exist. If not specified, a new floatingIP is allocated. This field is not used if DisableAPIServerFloatingIP is set to true.

apiServerFixedIP
string
(Optional)

apiServerFixedIP is the fixed IP which will be associated with the API server. In the case where the API server has a floating IP but not a managed load balancer, this field is not used. If a managed load balancer is used and this field is not specified, a fixed IP will be dynamically allocated for the load balancer. If a managed load balancer is not used AND the API server floating IP is disabled, this field MUST be specified and should correspond to a pre-allocated port that holds the fixed IP to be used as a VIP.

apiServerPort
uint16
(Optional)

apiServerPort is the port on which the listener on the APIServer will be created. If specified, it must be an integer between 0 and 65535.

managedSecurityGroups
ManagedSecurityGroups
(Optional)

managedSecurityGroups determines whether OpenStack security groups for the cluster will be managed by the OpenStack provider or whether pre-existing security groups will be specified as part of the configuration. By default, the managed security groups have rules that allow the Kubelet, etcd, and the Kubernetes API server to function correctly. It’s possible to add additional rules to the managed security groups. When defined to an empty struct, the managed security groups will be created with the default rules.

tags
[]string
(Optional)

tags to set on all resources in cluster which support tags

controlPlaneEndpoint
sigs.k8s.io/cluster-api/api/core/v1beta2.APIEndpoint
(Optional)

controlPlaneEndpoint represents the endpoint used to communicate with the control plane. It is normally populated automatically by the OpenStackCluster controller during cluster provisioning. If it is set on creation the control plane endpoint will use the values set here in preference to values set elsewhere. ControlPlaneEndpoint cannot be modified after ControlPlaneEndpoint.Host has been set.

controlPlaneAvailabilityZones
[]string
(Optional)

controlPlaneAvailabilityZones is the set of availability zones which control plane machines may be deployed to.

controlPlaneOmitAvailabilityZone
bool
(Optional)

controlPlaneOmitAvailabilityZone causes availability zone to be omitted when creating control plane nodes, allowing the Nova scheduler to make a decision on which availability zone to use based on other scheduling constraints

bastion
Bastion
(Optional)

bastion is the OpenStack instance to login the nodes

As a rolling update is not ideal during a bastion host session, we prevent changes to a running bastion configuration. To make changes, it’s required to first set enabled: false which will remove the bastion and then changes can be made.

identityRef
OpenStackIdentityReference

identityRef is a reference to a secret holding OpenStack credentials to be used when reconciling this cluster. It is also to reconcile machines unless overridden in the machine spec.

status
OpenStackClusterStatus

status is the observed state of the OpenStackCluster.

OpenStackClusterTemplate

OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.

Field Description
apiVersion
string
infrastructure.cluster.x-k8s.io/v1beta2
kind
string
OpenStackClusterTemplate
metadata
Kubernetes meta/v1.ObjectMeta

metadata is the standard object metadata.

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
OpenStackClusterTemplateSpec

spec is the desired state of the OpenStackClusterTemplate.



template
OpenStackClusterTemplateResource

template is the OpenStackClusterTemplate resource data.

OpenStackMachine

OpenStackMachine is the Schema for the openstackmachines API.

Field Description
apiVersion
string
infrastructure.cluster.x-k8s.io/v1beta2
kind
string
OpenStackMachine
metadata
Kubernetes meta/v1.ObjectMeta

metadata is the standard object metadata.

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
OpenStackMachineSpec

spec is the desired state of the OpenStackMachine.



providerID
string

providerID is the unique identifier as specified by the cloud provider.

flavor
FlavorParam

flavor is the flavor to use for this machine.

image
ImageParam

image is the image to use for the server instance. If the rootVolume is specified, this will be used when creating the root volume.

sshKeyName
string

sshKeyName is the name of the SSH key to inject in the instance.

ports
[]PortOpts

ports to be attached to the server instance. They are created if a port with the given name does not already exist. If not specified a default port will be added for the default cluster network.

securityGroups
[]SecurityGroupParam

securityGroups is a list of security groups to assign to the instance.

trunk
bool

trunk specifies whether the server instance is created on a trunk port or not.

tags
[]string

tags which will be added to the machine and all dependent resources which support them. These are in addition to Tags defined on the cluster. Requires Nova api 2.52 minimum!

serverMetadata
[]ServerMetadata

serverMetadata is a list of key/value pairs to add to the server instance.

configDrive
bool

configDrive enables config drive support.

rootVolume
RootVolume

rootVolume is the volume metadata to boot from.

additionalBlockDevices
[]AdditionalBlockDevice
(Optional)

additionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

serverGroup
ServerGroupParam
(Optional)

serverGroup is the server group to assign the machine to.

identityRef
OpenStackIdentityReference
(Optional)

identityRef is a reference to a secret holding OpenStack credentials to be used when reconciling this machine. If not specified, the credentials specified in the cluster will be used.

floatingIPPoolRef
Kubernetes core/v1.TypedLocalObjectReference
(Optional)

floatingIPPoolRef is a reference to a IPPool that will be assigned to an IPAddressClaim. Once the IPAddressClaim is fulfilled, the FloatingIP will be assigned to the OpenStackMachine.

schedulerHintAdditionalProperties
[]SchedulerHintAdditionalProperty
(Optional)

schedulerHintAdditionalProperties are arbitrary key/value pairs that provide additional hints to the OpenStack scheduler. These hints can influence how instances are placed on the infrastructure, such as specifying certain host aggregates or availability zones.

status
OpenStackMachineStatus

status is the observed state of the OpenStackMachine.

OpenStackMachineTemplate

OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.

Field Description
apiVersion
string
infrastructure.cluster.x-k8s.io/v1beta2
kind
string
OpenStackMachineTemplate
metadata
Kubernetes meta/v1.ObjectMeta

metadata is the standard object metadata.

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
OpenStackMachineTemplateSpec

spec is the desired state of the OpenStackMachineTemplate.



template
OpenStackMachineTemplateResource

template is the OpenStackMachineTemplate resource data.

status
OpenStackMachineTemplateStatus

status is the observed state of the OpenStackMachineTemplate.

APIServerLoadBalancer

(Appears on: OpenStackClusterSpec)

Field Description
enabled
bool

enabled defines whether a load balancer should be created. This value defaults to true if an APIServerLoadBalancer is given.

There is no reason to set this to false. To disable creation of the API server loadbalancer, omit the APIServerLoadBalancer field in the cluster spec instead.

additionalPorts
[]int
(Optional)

additionalPorts adds additional tcp ports to the load balancer.

allowedCIDRs
[]string
(Optional)

allowedCIDRs restrict access to all API-Server listeners to the given address CIDRs.

provider
string
(Optional)

provider specifies name of a specific Octavia provider to use for the API load balancer. The Octavia default will be used if it is not specified.

network
NetworkParam
(Optional)

network defines which network should the load balancer be allocated on.

subnets
[]SubnetParam
(Optional)

subnets define which subnets should the load balancer be allocated on. It is expected that subnets are located on the network specified in this resource. Only the first element is taken into account. kubebuilder:validation:MaxLength:=2

availabilityZone
string
(Optional)

availabilityZone is the failure domain that will be used to create the APIServerLoadBalancer Spec.

flavor
string
(Optional)

flavor is the flavor name that will be used to create the APIServerLoadBalancer Spec.

monitor
APIServerLoadBalancerMonitor
(Optional)

monitor contains configuration for the load balancer health monitor.

APIServerLoadBalancerMonitor

(Appears on: APIServerLoadBalancer)

APIServerLoadBalancerMonitor contains configuration for the load balancer health monitor.

Field Description
delay
int
(Optional)

delay is the time in seconds between sending probes to members.

timeout
int
(Optional)

timeout is the maximum time in seconds for a monitor to wait for a connection to be established before it times out.

maxRetries
int
(Optional)

maxRetries is the number of successful checks before changing the operating status of the member to ONLINE.

maxRetriesDown
int
(Optional)

maxRetriesDown is the number of allowed check failures before changing the operating status of the member to ERROR.

AdditionalBlockDevice

(Appears on: OpenStackMachineSpec)

AdditionalBlockDevice is a block device to attach to the server.

Field Description
name
string

name of the block device in the context of a machine. If the block device is a volume, the Cinder volume will be named as a combination of the machine name and this name. Also, this name will be used for tagging the block device. Information about the block device tag can be obtained from the OpenStack metadata API or the config drive. Name cannot be ‘root’, which is reserved for the root volume.

sizeGiB
int

sizeGiB is the size of the block device in gibibytes (GiB).

storage
BlockDeviceStorage

storage specifies the storage type of the block device and additional storage options.

AddressPair

(Appears on: ResolvedPortSpecFields)

Field Description
ipAddress
string

ipAddress is the IP address of the allowed address pair. Depending on the configuration of Neutron, it may be supported to specify a CIDR instead of a specific IP address.

macAddress
string
(Optional)

macAddress is the MAC address of the allowed address pair. If not specified, the MAC address will be the MAC address of the port.

AllocationPool

(Appears on: SubnetSpec)

Field Description
start
string

start represents the start of the AllocationPool, that is the lowest IP of the pool.

end
string

end represents the end of the AlloctionPool, that is the highest IP of the pool.

Bastion

(Appears on: OpenStackClusterSpec)

Bastion represents basic information about the bastion node. If you enable bastion, the spec has to be specified.

Field Description
enabled
bool
(Optional)

enabled means that bastion is enabled. The bastion is enabled by default if this field is not specified. Set this field to false to disable the bastion.

It is not currently possible to remove the bastion from the cluster spec without first disabling it by setting this field to false and waiting until the bastion has been deleted.

spec
OpenStackMachineSpec

spec for the bastion itself



availabilityZone
string
(Optional)

availabilityZone is the failure domain that will be used to create the Bastion Spec.

floatingIP
string
(Optional)

floatingIP which will be associated to the bastion machine. It’s the IP address, not UUID. The floating IP should already exist and should not be associated with a port. If FIP of this address does not exist, CAPO will try to create it, but by default only OpenStack administrators have privileges to do so.

BastionStatus

(Appears on: OpenStackClusterStatus)

Field Description
id
string

id is the unique identifier of the bastion.

name
string

name is the name of the bastion.

sshKeyName
string

sshKeyName is the name of the SSH key used for the bastion.

state
InstanceState

state is the current state of the bastion.

ip
string

ip is the IP address of the bastion.

floatingIP
string

floatingIP is the floating IP address of the bastion.

resolved
ResolvedMachineSpec
(Optional)

resolved contains parts of the bastion’s machine spec with all external references fully resolved.

resources
MachineResources
(Optional)

resources contains references to OpenStack resources created for the bastion.

BindingProfile

(Appears on: ResolvedPortSpecFields)

Field Description
ovsHWOffload
bool
(Optional)

ovsHWOffload enables or disables the OVS hardware offload feature. This flag is not required on OpenStack clouds since Yoga as Nova will set it automatically when the port is attached. See: https://bugs.launchpad.net/nova/+bug/2020813

trustedVF
bool
(Optional)

trustedVF enables or disables the “trusted mode” for the VF.

BlockDeviceStorage

(Appears on: AdditionalBlockDevice)

BlockDeviceStorage is the storage type of a block device to create and contains additional storage options.

Field Description
type
BlockDeviceType

type is the type of block device to create. This can be either “Volume” or “Local”.

volume
BlockDeviceVolume
(Optional)

volume contains additional storage options for a volume block device.

BlockDeviceType (string alias)

(Appears on: BlockDeviceStorage)

BlockDeviceType defines the type of block device to create.

Value Description

"Local"

LocalBlockDevice is an ephemeral block device attached to the server.

"Volume"

VolumeBlockDevice is a volume block device attached to the server.

BlockDeviceVolume

(Appears on: BlockDeviceStorage, RootVolume)

BlockDeviceVolume contains additional storage options for a volume block device.

Field Description
type
string
(Optional)

type is the Cinder volume type of the volume. If omitted, the default Cinder volume type that is configured in the OpenStack cloud will be used.

availabilityZone
VolumeAvailabilityZone
(Optional)

availabilityZone is the volume availability zone to create the volume in. If not specified, the volume will be created without an explicit availability zone.

ClusterInitialization

(Appears on: OpenStackClusterStatus)

ClusterInitialization represents the initialization status of the cluster.

Field Description
provisioned
bool
(Optional)

provisioned is set to true when the initial provisioning of the cluster infrastructure is completed. The value of this field is never updated after provisioning is completed.

ExternalRouterIPParam

(Appears on: ManagedRouter)

Field Description
fixedIP
string

fixedIP is the FixedIP in the corresponding subnet.

subnet
SubnetParam

subnet is the subnet in which the FixedIP is used for the Gateway of this router.

FilterByNeutronTags

(Appears on: NetworkFilter, RouterFilter, SecurityGroupFilter, SubnetFilter)

Field Description
tags
[]NeutronTag
(Optional)

tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.

tagsAny
[]NeutronTag
(Optional)

tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.

notTags
[]NeutronTag
(Optional)

notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.

notTagsAny
[]NeutronTag
(Optional)

notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.

FixedIP

(Appears on: PortOpts)

Field Description
subnet
SubnetParam
(Optional)

subnet is an openstack subnet query that will return the id of a subnet to create the fixed IP of a port in. This query must not return more than one subnet.

ipAddress
string
(Optional)

ipAddress is a specific IP address to assign to the port. If Subnet is also specified, IPAddress must be a valid IP address in the subnet. If Subnet is not specified, IPAddress must be a valid IP address in any subnet of the port’s network.

FlavorFilter

(Appears on: FlavorParam)

FlavorFilter describes a query for a flavor. If defined, the combination of attributes should return exactly one flavor, if not an error will be raised.

Field Description
name
string
(Optional)

name is the name of the desired flavor.

FlavorParam

(Appears on: OpenStackMachineSpec)

FlavorParam describes a nova flavor. It can be specified by ID or filter

Field Description
id
string
(Optional)

id is the uuid of the flavor. ID will not be validated before use.

filter
FlavorFilter
(Optional)

filter describes a query for a flavor.

IdentityRefProvider

IdentityRefProvider is an interface for obtaining OpenStack credentials from an API object

ImageFilter

(Appears on: ImageParam)

ImageFilter describes a query for an image.

Field Description
name
string
(Optional)

name is the name of the desired image. If specified, the combination of name and tags must return a single matching image or an error will be raised.

tags
[]string
(Optional)

tags are the tags associated with the desired image. If specified, the combination of name and tags must return a single matching image or an error will be raised.

ImageParam

(Appears on: OpenStackMachineSpec)

ImageParam describes a glance image. It can be specified by ID, filter, or a reference to an ORC Image.

Field Description
id
string
(Optional)

id is the uuid of the image. ID will not be validated before use.

filter
ImageFilter
(Optional)

filter describes a query for an image. If specified, the combination of name and tags must return a single matching image or an error will be raised.

imageRef
ResourceReference
(Optional)

imageRef is a reference to an ORC Image in the same namespace as the referring object.

InstanceState (string alias)

(Appears on: BastionStatus, OpenStackMachineStatus)

InstanceState describes the state of an OpenStack instance.

LoadBalancer

(Appears on: OpenStackClusterStatus)

LoadBalancer represents basic information about the associated OpenStack LoadBalancer.

Field Description
name
string

name is the name of the load balancer.

id
string

id is the unique identifier of the load balancer.

ip
string

ip is the IP address of the load balancer.

internalIP
string

internalIP is the internal IP address of the load balancer.

allowedCIDRs
[]string
(Optional)

allowedCIDRs is a list of CIDRs that are allowed to access the load balancer.

tags
[]string
(Optional)

tags is a list of tags on the load balancer.

loadBalancerNetwork
NetworkStatusWithSubnets
(Optional)

loadBalancerNetwork contains information about network and/or subnets which the loadbalancer is allocated on. If subnets are specified within the LoadBalancerNetwork currently only the first subnet in the list is taken into account.

MachineInitialization

(Appears on: OpenStackMachineStatus)

MachineInitialization contains information about the initialization status of the machine.

Field Description
provisioned
bool
(Optional)

provisioned is set to true when the initial provisioning of the machine infrastructure is completed. The value of this field is never updated after provisioning is completed.

MachineResources

(Appears on: BastionStatus, OpenStackMachineStatus)

Field Description
ports
[]PortStatus
(Optional)

ports is the status of the ports created for the machine.

ManagedNetwork

(Appears on: OpenStackClusterSpec)

ManagedNetwork specifies attributes of the network.

Field Description
mtu
int
(Optional)

mtu sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. This value will be used only if the Cluster actuator creates the network. If left empty, the network will have the default MTU defined in Openstack network service. To use this field, the Openstack installation requires the net-mtu neutron API extension.

disablePortSecurity
bool
(Optional)

disablePortSecurity disables the port security of the network created for the Kubernetes cluster, which also disables SecurityGroups

ManagedRouter

(Appears on: OpenStackClusterSpec)

ManagedRouter specifies attributes of the router.

Field Description
externalIPs
[]ExternalRouterIPParam
(Optional)

externalIPs is a list of external IPs to assign to the router. This is necessary if the router needs a fixed ip in a specific subnet. Each entry specifies a fixed IP and the subnet it should be allocated from.

ManagedSecurityGroupName (string alias)

(Appears on: SecurityGroupRuleSpec)

ManagedSecurityGroups

(Appears on: OpenStackClusterSpec)

ManagedSecurityGroups defines the desired state of security groups and rules for the cluster.

Field Description
clusterNodesSecurityGroupRules
[]SecurityGroupRuleSpec
(Optional)

clusterNodesSecurityGroupRules defines the rules that should be applied to all cluster nodes, excluding the bastion host.

controlPlaneNodesSecurityGroupRules
[]SecurityGroupRuleSpec
(Optional)

controlPlaneNodesSecurityGroupRules defines the rules that should be applied to control plane nodes.

workerNodesSecurityGroupRules
[]SecurityGroupRuleSpec
(Optional)

workerNodesSecurityGroupRules defines the rules that should be applied to worker nodes.

allowAllInClusterTraffic
bool

allowAllInClusterTraffic allows all ingress and egress traffic between cluster nodes when set to true.

NetworkFilter

(Appears on: NetworkParam)

NetworkFilter specifies a query to select an OpenStack network. At least one property must be set.

Field Description
name
string

name filters networks by name.

description
string

description filters networks by description.

projectID
string

projectID filters networks by project ID.

FilterByNeutronTags
FilterByNeutronTags

(Members of FilterByNeutronTags are embedded into this type.)

NetworkParam

(Appears on: APIServerLoadBalancer, OpenStackClusterSpec, PortOpts)

NetworkParam specifies an OpenStack network. It may be specified by either ID or Filter, but not both.

Field Description
id
string
(Optional)

id is the ID of the network to use. If ID is provided, the other filters cannot be provided. Must be in UUID format.

filter
NetworkFilter
(Optional)

filter specifies a filter to select an OpenStack network. If provided, cannot be empty.

NetworkStatus

(Appears on: NetworkStatusWithSubnets, OpenStackClusterStatus)

NetworkStatus contains basic information about an existing neutron network.

Field Description
name
string

name is the name of the network.

id
string

id is the unique identifier of the network.

tags
[]string
(Optional)

tags is a list of tags on the network.

NetworkStatusWithSubnets

(Appears on: LoadBalancer, OpenStackClusterStatus)

NetworkStatusWithSubnets represents basic information about an existing neutron network and an associated set of subnets.

Field Description
NetworkStatus
NetworkStatus

(Members of NetworkStatus are embedded into this type.)

subnets
[]Subnet

subnets is a list of subnets associated with the default cluster network. Machines which use the default cluster network will get an address from all of these subnets.

NeutronTag (string alias)

(Appears on: FilterByNeutronTags)

NeutronTag represents a tag on a Neutron resource. It may not be empty and may not contain commas.

NodeInfo

(Appears on: OpenStackMachineTemplateStatus)

NodeInfo contains information about the node’s architecture and operating system.

Field Description
operatingSystem
string
(Optional)

operatingSystem is a string representing the operating system of the node. This may be a string like ‘linux’ or ‘windows’.

OpenStackClusterSpec

(Appears on: OpenStackCluster, OpenStackClusterTemplateResource)

OpenStackClusterSpec defines the desired state of OpenStackCluster.

Field Description
managedSubnets
[]SubnetSpec
(Optional)

managedSubnets describe OpenStack Subnets to be created. Cluster actuator will create a network, subnets with the defined CIDR, and a router connected to these subnets. Currently only one IPv4 subnet is supported. If you leave this empty, no network will be created.

subnets
[]SubnetParam
(Optional)

subnets specifies existing subnets to use if not ManagedSubnets are specified. All subnets must be in the network specified by Network. There can be zero, one, or two subnets. If no subnets are specified, all subnets in Network will be used. If 2 subnets are specified, one must be IPv4 and the other IPv6.

managedRouter
ManagedRouter
(Optional)

managedRouter specifies attributes of the router. The values are used only if the Cluster actuator creates the router.

router
RouterParam
(Optional)

router specifies an existing router to be used if ManagedSubnets are specified. If specified, no new router will be created.

managedNetwork
ManagedNetwork
(Optional)

managedNetwork specifies attributes of the network. The values are used only if the Cluster actuator creates the network.

network
NetworkParam
(Optional)

network specifies an existing network to use if no ManagedSubnets are specified.

externalNetwork
NetworkParam
(Optional)

externalNetwork is the OpenStack Network to be used to get public internet to the VMs. This option is ignored if DisableExternalNetwork is set to true.

If ExternalNetwork is defined it must refer to exactly one external network.

If ExternalNetwork is not defined or is empty the controller will use any existing external network as long as there is only one. It is an error if ExternalNetwork is not defined and there are multiple external networks unless DisableExternalNetwork is also set.

If ExternalNetwork is not defined and there are no external networks the controller will proceed as though DisableExternalNetwork was set.

disableExternalNetwork
bool
(Optional)

disableExternalNetwork specifies whether or not to attempt to connect the cluster to an external network. This allows for the creation of clusters when connecting to an external network is not possible or desirable, e.g. if using a provider network.

apiServerLoadBalancer
APIServerLoadBalancer
(Optional)

apiServerLoadBalancer configures the optional LoadBalancer for the APIServer. If not specified, no load balancer will be created for the API server.

disableAPIServerFloatingIP
bool
(Optional)

disableAPIServerFloatingIP determines whether or not to attempt to attach a floating IP to the API server. This allows for the creation of clusters when attaching a floating IP to the API server (and hence, in many cases, exposing the API server to the internet) is not possible or desirable, e.g. if using a shared VLAN for communication between management and workload clusters or when the management cluster is inside the project network. This option requires that the API server use a VIP on the cluster network so that the underlying machines can change without changing ControlPlaneEndpoint.Host. When using a managed load balancer, this VIP will be managed automatically. If not using a managed load balancer, cluster configuration will fail without additional configuration to manage the VIP on the control plane machines, which falls outside of the scope of this controller.

apiServerFloatingIP
string
(Optional)

apiServerFloatingIP is the floatingIP which will be associated with the API server. The floatingIP will be created if it does not already exist. If not specified, a new floatingIP is allocated. This field is not used if DisableAPIServerFloatingIP is set to true.

apiServerFixedIP
string
(Optional)

apiServerFixedIP is the fixed IP which will be associated with the API server. In the case where the API server has a floating IP but not a managed load balancer, this field is not used. If a managed load balancer is used and this field is not specified, a fixed IP will be dynamically allocated for the load balancer. If a managed load balancer is not used AND the API server floating IP is disabled, this field MUST be specified and should correspond to a pre-allocated port that holds the fixed IP to be used as a VIP.

apiServerPort
uint16
(Optional)

apiServerPort is the port on which the listener on the APIServer will be created. If specified, it must be an integer between 0 and 65535.

managedSecurityGroups
ManagedSecurityGroups
(Optional)

managedSecurityGroups determines whether OpenStack security groups for the cluster will be managed by the OpenStack provider or whether pre-existing security groups will be specified as part of the configuration. By default, the managed security groups have rules that allow the Kubelet, etcd, and the Kubernetes API server to function correctly. It’s possible to add additional rules to the managed security groups. When defined to an empty struct, the managed security groups will be created with the default rules.

tags
[]string
(Optional)

tags to set on all resources in cluster which support tags

controlPlaneEndpoint
sigs.k8s.io/cluster-api/api/core/v1beta2.APIEndpoint
(Optional)

controlPlaneEndpoint represents the endpoint used to communicate with the control plane. It is normally populated automatically by the OpenStackCluster controller during cluster provisioning. If it is set on creation the control plane endpoint will use the values set here in preference to values set elsewhere. ControlPlaneEndpoint cannot be modified after ControlPlaneEndpoint.Host has been set.

controlPlaneAvailabilityZones
[]string
(Optional)

controlPlaneAvailabilityZones is the set of availability zones which control plane machines may be deployed to.

controlPlaneOmitAvailabilityZone
bool
(Optional)

controlPlaneOmitAvailabilityZone causes availability zone to be omitted when creating control plane nodes, allowing the Nova scheduler to make a decision on which availability zone to use based on other scheduling constraints

bastion
Bastion
(Optional)

bastion is the OpenStack instance to login the nodes

As a rolling update is not ideal during a bastion host session, we prevent changes to a running bastion configuration. To make changes, it’s required to first set enabled: false which will remove the bastion and then changes can be made.

identityRef
OpenStackIdentityReference

identityRef is a reference to a secret holding OpenStack credentials to be used when reconciling this cluster. It is also to reconcile machines unless overridden in the machine spec.

OpenStackClusterStatus

(Appears on: OpenStackCluster)

OpenStackClusterStatus defines the observed state of OpenStackCluster.

Field Description
conditions
[]Kubernetes meta/v1.Condition
(Optional)

conditions defines current service state of the OpenStackCluster. This field surfaces into Cluster’s status.conditions[InfrastructureReady] condition. The Ready condition must surface issues during the entire lifecycle of the OpenStackCluster (both during initial provisioning and after the initial provisioning is completed).

initialization
ClusterInitialization
(Optional)

initialization contains information about the initialization status of the cluster.

network
NetworkStatusWithSubnets
(Optional)

network contains information about the created OpenStack Network.

externalNetwork
NetworkStatus
(Optional)

externalNetwork contains information about the external network used for default ingress and egress traffic.

router
Router
(Optional)

router describes the default cluster router

apiServerLoadBalancer
LoadBalancer
(Optional)

apiServerLoadBalancer describes the api server load balancer if one exists

failureDomains
[]sigs.k8s.io/cluster-api/api/core/v1beta2.FailureDomain
(Optional)

failureDomains represent OpenStack availability zones

controlPlaneSecurityGroup
SecurityGroupStatus
(Optional)

controlPlaneSecurityGroup contains the information about the OpenStack Security Group that needs to be applied to control plane nodes.

workerSecurityGroup
SecurityGroupStatus
(Optional)

workerSecurityGroup contains the information about the OpenStack Security Group that needs to be applied to worker nodes.

bastionSecurityGroup
SecurityGroupStatus
(Optional)

bastionSecurityGroup contains the information about the OpenStack Security Group that needs to be applied to worker nodes.

bastion
BastionStatus
(Optional)

bastion contains the information about the deployed bastion host

OpenStackClusterTemplateResource

(Appears on: OpenStackClusterTemplateSpec)

OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.

Field Description
spec
OpenStackClusterSpec

spec is the desired state of the OpenStackCluster.



managedSubnets
[]SubnetSpec
(Optional)

managedSubnets describe OpenStack Subnets to be created. Cluster actuator will create a network, subnets with the defined CIDR, and a router connected to these subnets. Currently only one IPv4 subnet is supported. If you leave this empty, no network will be created.

subnets
[]SubnetParam
(Optional)

subnets specifies existing subnets to use if not ManagedSubnets are specified. All subnets must be in the network specified by Network. There can be zero, one, or two subnets. If no subnets are specified, all subnets in Network will be used. If 2 subnets are specified, one must be IPv4 and the other IPv6.

managedRouter
ManagedRouter
(Optional)

managedRouter specifies attributes of the router. The values are used only if the Cluster actuator creates the router.

router
RouterParam
(Optional)

router specifies an existing router to be used if ManagedSubnets are specified. If specified, no new router will be created.

managedNetwork
ManagedNetwork
(Optional)

managedNetwork specifies attributes of the network. The values are used only if the Cluster actuator creates the network.

network
NetworkParam
(Optional)

network specifies an existing network to use if no ManagedSubnets are specified.

externalNetwork
NetworkParam
(Optional)

externalNetwork is the OpenStack Network to be used to get public internet to the VMs. This option is ignored if DisableExternalNetwork is set to true.

If ExternalNetwork is defined it must refer to exactly one external network.

If ExternalNetwork is not defined or is empty the controller will use any existing external network as long as there is only one. It is an error if ExternalNetwork is not defined and there are multiple external networks unless DisableExternalNetwork is also set.

If ExternalNetwork is not defined and there are no external networks the controller will proceed as though DisableExternalNetwork was set.

disableExternalNetwork
bool
(Optional)

disableExternalNetwork specifies whether or not to attempt to connect the cluster to an external network. This allows for the creation of clusters when connecting to an external network is not possible or desirable, e.g. if using a provider network.

apiServerLoadBalancer
APIServerLoadBalancer
(Optional)

apiServerLoadBalancer configures the optional LoadBalancer for the APIServer. If not specified, no load balancer will be created for the API server.

disableAPIServerFloatingIP
bool
(Optional)

disableAPIServerFloatingIP determines whether or not to attempt to attach a floating IP to the API server. This allows for the creation of clusters when attaching a floating IP to the API server (and hence, in many cases, exposing the API server to the internet) is not possible or desirable, e.g. if using a shared VLAN for communication between management and workload clusters or when the management cluster is inside the project network. This option requires that the API server use a VIP on the cluster network so that the underlying machines can change without changing ControlPlaneEndpoint.Host. When using a managed load balancer, this VIP will be managed automatically. If not using a managed load balancer, cluster configuration will fail without additional configuration to manage the VIP on the control plane machines, which falls outside of the scope of this controller.

apiServerFloatingIP
string
(Optional)

apiServerFloatingIP is the floatingIP which will be associated with the API server. The floatingIP will be created if it does not already exist. If not specified, a new floatingIP is allocated. This field is not used if DisableAPIServerFloatingIP is set to true.

apiServerFixedIP
string
(Optional)

apiServerFixedIP is the fixed IP which will be associated with the API server. In the case where the API server has a floating IP but not a managed load balancer, this field is not used. If a managed load balancer is used and this field is not specified, a fixed IP will be dynamically allocated for the load balancer. If a managed load balancer is not used AND the API server floating IP is disabled, this field MUST be specified and should correspond to a pre-allocated port that holds the fixed IP to be used as a VIP.

apiServerPort
uint16
(Optional)

apiServerPort is the port on which the listener on the APIServer will be created. If specified, it must be an integer between 0 and 65535.

managedSecurityGroups
ManagedSecurityGroups
(Optional)

managedSecurityGroups determines whether OpenStack security groups for the cluster will be managed by the OpenStack provider or whether pre-existing security groups will be specified as part of the configuration. By default, the managed security groups have rules that allow the Kubelet, etcd, and the Kubernetes API server to function correctly. It’s possible to add additional rules to the managed security groups. When defined to an empty struct, the managed security groups will be created with the default rules.

tags
[]string
(Optional)

tags to set on all resources in cluster which support tags

controlPlaneEndpoint
sigs.k8s.io/cluster-api/api/core/v1beta2.APIEndpoint
(Optional)

controlPlaneEndpoint represents the endpoint used to communicate with the control plane. It is normally populated automatically by the OpenStackCluster controller during cluster provisioning. If it is set on creation the control plane endpoint will use the values set here in preference to values set elsewhere. ControlPlaneEndpoint cannot be modified after ControlPlaneEndpoint.Host has been set.

controlPlaneAvailabilityZones
[]string
(Optional)

controlPlaneAvailabilityZones is the set of availability zones which control plane machines may be deployed to.

controlPlaneOmitAvailabilityZone
bool
(Optional)

controlPlaneOmitAvailabilityZone causes availability zone to be omitted when creating control plane nodes, allowing the Nova scheduler to make a decision on which availability zone to use based on other scheduling constraints

bastion
Bastion
(Optional)

bastion is the OpenStack instance to login the nodes

As a rolling update is not ideal during a bastion host session, we prevent changes to a running bastion configuration. To make changes, it’s required to first set enabled: false which will remove the bastion and then changes can be made.

identityRef
OpenStackIdentityReference

identityRef is a reference to a secret holding OpenStack credentials to be used when reconciling this cluster. It is also to reconcile machines unless overridden in the machine spec.

OpenStackClusterTemplateSpec

(Appears on: OpenStackClusterTemplate)

OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.

Field Description
template
OpenStackClusterTemplateResource

template is the OpenStackClusterTemplate resource data.

OpenStackIdentityReference

(Appears on: OpenStackClusterSpec, OpenStackMachineSpec)

OpenStackIdentityReference is a reference to an infrastructure provider identity to be used to provision cluster resources.

Field Description
type
string

type specifies the identity reference type. Defaults to Secret for backward compatibility.

name
string

name is the name of a Secret (type=Secret) in the same namespace as the resource being provisioned, or the name of an OpenStackClusterIdentity (type=ClusterIdentity). The Secret must contain a key named clouds.yaml which contains an OpenStack clouds.yaml file. The Secret may optionally contain a key named cacert containing a PEM-encoded CA certificate.

cloudName
string

cloudName specifies the name of the entry in the clouds.yaml file to use.

region
string
(Optional)

region specifies an OpenStack region to use. If specified, it overrides any value in clouds.yaml. If specified for an OpenStackMachine, its value will be included in providerID.

OpenStackMachineSpec

(Appears on: OpenStackMachine, Bastion, OpenStackMachineTemplateResource)

OpenStackMachineSpec defines the desired state of OpenStackMachine.

Field Description
providerID
string

providerID is the unique identifier as specified by the cloud provider.

flavor
FlavorParam

flavor is the flavor to use for this machine.

image
ImageParam

image is the image to use for the server instance. If the rootVolume is specified, this will be used when creating the root volume.

sshKeyName
string

sshKeyName is the name of the SSH key to inject in the instance.

ports
[]PortOpts

ports to be attached to the server instance. They are created if a port with the given name does not already exist. If not specified a default port will be added for the default cluster network.

securityGroups
[]SecurityGroupParam

securityGroups is a list of security groups to assign to the instance.

trunk
bool

trunk specifies whether the server instance is created on a trunk port or not.

tags
[]string

tags which will be added to the machine and all dependent resources which support them. These are in addition to Tags defined on the cluster. Requires Nova api 2.52 minimum!

serverMetadata
[]ServerMetadata

serverMetadata is a list of key/value pairs to add to the server instance.

configDrive
bool

configDrive enables config drive support.

rootVolume
RootVolume

rootVolume is the volume metadata to boot from.

additionalBlockDevices
[]AdditionalBlockDevice
(Optional)

additionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

serverGroup
ServerGroupParam
(Optional)

serverGroup is the server group to assign the machine to.

identityRef
OpenStackIdentityReference
(Optional)

identityRef is a reference to a secret holding OpenStack credentials to be used when reconciling this machine. If not specified, the credentials specified in the cluster will be used.

floatingIPPoolRef
Kubernetes core/v1.TypedLocalObjectReference
(Optional)

floatingIPPoolRef is a reference to a IPPool that will be assigned to an IPAddressClaim. Once the IPAddressClaim is fulfilled, the FloatingIP will be assigned to the OpenStackMachine.

schedulerHintAdditionalProperties
[]SchedulerHintAdditionalProperty
(Optional)

schedulerHintAdditionalProperties are arbitrary key/value pairs that provide additional hints to the OpenStack scheduler. These hints can influence how instances are placed on the infrastructure, such as specifying certain host aggregates or availability zones.

OpenStackMachineStatus

(Appears on: OpenStackMachine)

OpenStackMachineStatus defines the observed state of OpenStackMachine.

Field Description
conditions
[]Kubernetes meta/v1.Condition
(Optional)

conditions defines current service state of the OpenStackMachine. This field surfaces into Machine’s status.conditions[InfrastructureReady] condition. The Ready condition must surface issues during the entire lifecycle of the OpenStackMachine (both during initial provisioning and after the initial provisioning is completed).

initialization
MachineInitialization
(Optional)

initialization contains information about the initialization status of the machine.

instanceID
string
(Optional)

instanceID is the OpenStack instance ID for this machine.

addresses
[]Kubernetes core/v1.NodeAddress
(Optional)

addresses contains the OpenStack instance associated addresses.

instanceState
InstanceState
(Optional)

instanceState is the state of the OpenStack instance for this machine. This field is not set anymore by the OpenStackMachine controller. Instead, it’s set by the OpenStackServer controller.

resolved
ResolvedMachineSpec
(Optional)

resolved contains parts of the machine spec with all external references fully resolved.

resources
MachineResources
(Optional)

resources contains references to OpenStack resources created for the machine.

OpenStackMachineTemplateResource

(Appears on: OpenStackMachineTemplateSpec)

OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.

Field Description
spec
OpenStackMachineSpec

spec is the specification of the desired behavior of the machine.



providerID
string

providerID is the unique identifier as specified by the cloud provider.

flavor
FlavorParam

flavor is the flavor to use for this machine.

image
ImageParam

image is the image to use for the server instance. If the rootVolume is specified, this will be used when creating the root volume.

sshKeyName
string

sshKeyName is the name of the SSH key to inject in the instance.

ports
[]PortOpts

ports to be attached to the server instance. They are created if a port with the given name does not already exist. If not specified a default port will be added for the default cluster network.

securityGroups
[]SecurityGroupParam

securityGroups is a list of security groups to assign to the instance.

trunk
bool

trunk specifies whether the server instance is created on a trunk port or not.

tags
[]string

tags which will be added to the machine and all dependent resources which support them. These are in addition to Tags defined on the cluster. Requires Nova api 2.52 minimum!

serverMetadata
[]ServerMetadata

serverMetadata is a list of key/value pairs to add to the server instance.

configDrive
bool

configDrive enables config drive support.

rootVolume
RootVolume

rootVolume is the volume metadata to boot from.

additionalBlockDevices
[]AdditionalBlockDevice
(Optional)

additionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

serverGroup
ServerGroupParam
(Optional)

serverGroup is the server group to assign the machine to.

identityRef
OpenStackIdentityReference
(Optional)

identityRef is a reference to a secret holding OpenStack credentials to be used when reconciling this machine. If not specified, the credentials specified in the cluster will be used.

floatingIPPoolRef
Kubernetes core/v1.TypedLocalObjectReference
(Optional)

floatingIPPoolRef is a reference to a IPPool that will be assigned to an IPAddressClaim. Once the IPAddressClaim is fulfilled, the FloatingIP will be assigned to the OpenStackMachine.

schedulerHintAdditionalProperties
[]SchedulerHintAdditionalProperty
(Optional)

schedulerHintAdditionalProperties are arbitrary key/value pairs that provide additional hints to the OpenStack scheduler. These hints can influence how instances are placed on the infrastructure, such as specifying certain host aggregates or availability zones.

OpenStackMachineTemplateSpec

(Appears on: OpenStackMachineTemplate)

OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.

Field Description
template
OpenStackMachineTemplateResource

template is the OpenStackMachineTemplate resource data.

OpenStackMachineTemplateStatus

(Appears on: OpenStackMachineTemplate)

OpenStackMachineTemplateStatus defines the observed state of OpenStackMachineTemplate.

Field Description
conditions
[]Kubernetes meta/v1.Condition
(Optional)

conditions defines current service state of the OpenStackMachineTemplate. The Ready condition must surface issues during the entire lifecycle of the OpenStackMachineTemplate. (both during initial provisioning and after the initial provisioning is completed).

capacity
Kubernetes core/v1.ResourceList
(Optional)

capacity defines the resource capacity for this machine. This value is used for autoscaling from zero operations as defined in: https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md

nodeInfo,omitempty,omitzero
NodeInfo
(Optional)

nodeInfo contains information about the node’s operating system.

PortOpts

(Appears on: OpenStackMachineSpec)

Field Description
network
NetworkParam
(Optional)

network is a query for an openstack network that the port will be created or discovered on. This will fail if the query returns more than one network.

description
string
(Optional)

description is a human-readable description for the port.

nameSuffix
string
(Optional)

nameSuffix will be appended to the name of the port if specified. If unspecified, instead the 0-based index of the port in the list is used.

fixedIPs
[]FixedIP
(Optional)

fixedIPs is a list of pairs of subnet and/or IP address to assign to the port. If specified, these must be subnets of the port’s network.

securityGroups
[]SecurityGroupParam
(Optional)

securityGroups is a list of the names, uuids, filters or any combination these of the security groups to assign to the instance.

tags
[]string
(Optional)

tags applied to the port (and corresponding trunk, if a trunk is configured.) These tags are applied in addition to the instance’s tags, which will also be applied to the port.

trunk
bool
(Optional)

trunk specifies whether trunking is enabled at the port level. If not provided the value is inherited from the machine, or false for a bastion host.

ResolvedPortSpecFields
ResolvedPortSpecFields

(Members of ResolvedPortSpecFields are embedded into this type.)

PortStatus

(Appears on: MachineResources)

Field Description
id
string

id is the unique identifier of the port.

ResolvedFixedIP

(Appears on: ResolvedPortSpec)

ResolvedFixedIP is a FixedIP with the Subnet resolved to an ID.

Field Description
subnet
string
(Optional)

subnet is the ID of a subnet to create the fixed IP of a port in.

ipAddress
string
(Optional)

ipAddress is a specific IP address to assign to the port. If SubnetID is also specified, IPAddress must be a valid IP address in the subnet. If Subnet is not specified, IPAddress must be a valid IP address in any subnet of the port’s network.

ResolvedMachineSpec

(Appears on: BastionStatus, OpenStackMachineStatus)

ResolvedMachineSpec contains resolved references to resources required by the machine.

Field Description
serverGroupID
string
(Optional)

serverGroupID is the ID of the server group the machine should be added to and is calculated based on ServerGroupFilter.

imageID
string
(Optional)

imageID is the ID of the image to use for the machine and is calculated based on ImageFilter.

flavorID
string
(Optional)

flavorID is the ID of the flavor to use.

ports
[]ResolvedPortSpec
(Optional)

ports is the fully resolved list of ports to create for the machine.

ResolvedPortSpec

(Appears on: ResolvedMachineSpec)

ResolvedPortSpec is a PortOpts with all contained references fully resolved.

Field Description
name
string

name is the name of the port.

description
string

description is a human-readable description for the port.

networkID
string

networkID is the ID of the network the port will be created in.

tags
[]string
(Optional)

tags applied to the port (and corresponding trunk, if a trunk is configured.)

trunk
bool
(Optional)

trunk specifies whether trunking is enabled at the port level.

fixedIPs
[]ResolvedFixedIP
(Optional)

fixedIPs is a list of pairs of subnet and/or IP address to assign to the port. If specified, these must be subnets of the port’s network.

securityGroups
[]string
(Optional)

securityGroups is a list of security group IDs to assign to the port.

ResolvedPortSpecFields
ResolvedPortSpecFields

(Members of ResolvedPortSpecFields are embedded into this type.)

ResolvedPortSpecFields

(Appears on: PortOpts, ResolvedPortSpec)

ResolvePortSpecFields is a convenience struct containing all fields of a PortOpts which don’t contain references which need to be resolved, and can therefore be shared with ResolvedPortSpec.

Field Description
adminStateUp
bool
(Optional)

adminStateUp specifies whether the port should be created in the up (true) or down (false) state. The default is up.

macAddress
string
(Optional)

macAddress specifies the MAC address of the port. If not specified, the MAC address will be generated.

allowedAddressPairs
[]AddressPair
(Optional)

allowedAddressPairs is a list of address pairs which Neutron will allow the port to send traffic from in addition to the port’s addresses. If not specified, the MAC Address will be the MAC Address of the port. Depending on the configuration of Neutron, it may be supported to specify a CIDR instead of a specific IP address.

hostID
string
(Optional)

hostID specifies the ID of the host where the port resides.

vnicType
string
(Optional)

vnicType specifies the type of vNIC which this port should be attached to. This is used to determine which mechanism driver(s) to be used to bind the port. The valid values are normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder, smart-nic and remote-managed, although these values will not be validated in this API to ensure compatibility with future neutron changes or custom implementations. What type of vNIC is actually available depends on deployments. If not specified, the Neutron default value is used.

profile
BindingProfile
(Optional)

profile is a set of key-value pairs that are used for binding details. We intentionally don’t expose this as a map[string]string because we only want to enable the users to set the values of the keys that are known to work in OpenStack Networking API. See https://docs.openstack.org/api-ref/network/v2/index.html?expanded=create-port-detail#create-port To set profiles, your tenant needs permissions rule:create_port, and rule:create_port:binding:profile

disablePortSecurity
bool
(Optional)

disablePortSecurity enables or disables the port security when set. When not set, it takes the value of the corresponding field at the network level.

propagateUplinkStatus
bool
(Optional)

propagateUplinkStatus enables or disables the propagate uplink status on the port.

valueSpecs
[]ValueSpec
(Optional)

valueSpecs are extra parameters to include in the API request with OpenStack. This is an extension point for the API, so what they do and if they are supported, depends on the specific OpenStack implementation.

ResourceReference

(Appears on: ImageParam)

Field Description
name
string

name is the name of the referenced resource

RootVolume

(Appears on: OpenStackMachineSpec)

Field Description
sizeGiB
int

sizeGiB is the size of the block device in gibibytes (GiB).

BlockDeviceVolume
BlockDeviceVolume

(Members of BlockDeviceVolume are embedded into this type.)

Router

(Appears on: OpenStackClusterStatus)

Router represents basic information about the associated OpenStack Neutron Router.

Field Description
name
string

name is the name of the router.

id
string

id is the unique identifier of the router.

tags
[]string
(Optional)

tags is a list of tags on the router.

ips
[]string
(Optional)

ips is a list of IP addresses assigned to the router.

RouterFilter

(Appears on: RouterParam)

RouterFilter specifies a query to select an OpenStack router. At least one property must be set.

Field Description
name
string

name filters routers by name.

description
string

description filters routers by description.

projectID
string

projectID filters routers by project ID.

FilterByNeutronTags
FilterByNeutronTags

(Members of FilterByNeutronTags are embedded into this type.)

RouterParam

(Appears on: OpenStackClusterSpec)

RouterParam specifies an OpenStack router to use. It may be specified by either ID or filter, but not both.

Field Description
id
string
(Optional)

id is the ID of the router to use. If ID is provided, the other filters cannot be provided. Must be in UUID format.

filter
RouterFilter

filter specifies a filter to select an OpenStack router. If provided, cannot be empty.

SchedulerHintAdditionalProperty

(Appears on: OpenStackMachineSpec)

SchedulerHintAdditionalProperty represents a single additional property for a scheduler hint. It includes a Name to identify the property and a Value that can be of various types.

Field Description
name
string

name is the name of the scheduler hint property. It is a unique identifier for the property.

value
SchedulerHintAdditionalValue

value is the value of the scheduler hint property, which can be of various types (e.g., bool, string, int). The type is indicated by the Value.Type field.

SchedulerHintAdditionalValue

(Appears on: SchedulerHintAdditionalProperty)

SchedulerHintAdditionalValue represents the value of a scheduler hint property. The value can be of various types: Bool, String, or Number. The Type field indicates the type of the value being used.

Field Description
type
SchedulerHintValueType

type represents the type of the value. Valid values are Bool, String, and Number.

bool
bool

bool is the boolean value of the scheduler hint, used when Type is “Bool”. This field is required if type is ‘Bool’, and must not be set otherwise.

number
int

number is the integer value of the scheduler hint, used when Type is “Number”. This field is required if type is ‘Number’, and must not be set otherwise.

string
string

string is the string value of the scheduler hint, used when Type is “String”. This field is required if type is ‘String’, and must not be set otherwise.

SchedulerHintValueType (string alias)

(Appears on: SchedulerHintAdditionalValue)

SchedulerHintValueType is the type that represents allowed values for the Type field.

Value Description

"Bool"

"Number"

"String"

SecurityGroupFilter

(Appears on: SecurityGroupParam)

SecurityGroupFilter specifies a query to select an OpenStack security group. At least one property must be set.

Field Description
name
string

name filters security groups by name.

description
string

description filters security groups by description.

projectID
string

projectID filters security groups by project ID.

FilterByNeutronTags
FilterByNeutronTags

(Members of FilterByNeutronTags are embedded into this type.)

SecurityGroupParam

(Appears on: OpenStackMachineSpec, PortOpts)

SecurityGroupParam specifies an OpenStack security group. It may be specified by ID or filter, but not both.

Field Description
id
string
(Optional)

id is the ID of the security group to use. If ID is provided, the other filters cannot be provided. Must be in UUID format.

filter
SecurityGroupFilter
(Optional)

filter specifies a query to select an OpenStack security group. If provided, cannot be empty.

SecurityGroupRuleSpec

(Appears on: ManagedSecurityGroups)

SecurityGroupRuleSpec represent the basic information of the associated OpenStack Security Group Role. For now this is only used for the clusterNodesSecurityGroupRules but when we add other security groups, we’ll need to add a validation because Remote* fields are mutually exclusive.

Field Description
name
string

name of the security group rule. It’s used to identify the rule so it can be patched and will not be sent to the OpenStack API.

description
string
(Optional)

description of the security group rule.

direction
string

direction in which the security group rule is applied. The only values allowed are “ingress” or “egress”. For a compute instance, an ingress security group rule is applied to incoming (ingress) traffic for that instance. An egress rule is applied to traffic leaving the instance.

etherType
string
(Optional)

etherType must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.

portRangeMin
int
(Optional)

portRangeMin is a number in the range that is matched by the security group rule. If the protocol is TCP or UDP, this value must be less than or equal to the value of the portRangeMax attribute.

portRangeMax
int
(Optional)

portRangeMax is a number in the range that is matched by the security group rule. The portRangeMin attribute constrains the portRangeMax attribute.

protocol
string
(Optional)

protocol is the protocol that is matched by the security group rule.

remoteGroupID
string
(Optional)

remoteGroupID is the remote group ID to be associated with this security group rule. You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

remoteIPPrefix
string
(Optional)

remoteIPPrefix is the remote IP prefix to be associated with this security group rule. You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

remoteManagedGroups
[]ManagedSecurityGroupName
(Optional)

remoteManagedGroups is the remote managed groups to be associated with this security group rule. You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

SecurityGroupStatus

(Appears on: OpenStackClusterStatus)

SecurityGroupStatus represents the basic information of the associated OpenStack Neutron Security Group.

Field Description
name
string

name of the security group

id
string

id of the security group

ServerGroupFilter

(Appears on: ServerGroupParam)

ServerGroupFilter specifies a query to select an OpenStack server group. At least one property must be set.

Field Description
name
string

name is the name of a server group to look for.

ServerGroupParam

(Appears on: OpenStackMachineSpec)

ServerGroupParam specifies an OpenStack server group. It may be specified by ID or filter, but not both.

Field Description
id
string

id is the ID of the server group to use.

filter
ServerGroupFilter

filter specifies a query to select an OpenStack server group. If provided, it cannot be empty.

ServerMetadata

(Appears on: OpenStackMachineSpec)

Field Description
key
string

key is the server metadata key

value
string

value is the server metadata value

Subnet

(Appears on: NetworkStatusWithSubnets)

Subnet represents basic information about the associated OpenStack Neutron Subnet.

Field Description
name
string

name is the name of the subnet.

id
string

id is the unique identifier of the subnet.

cidr
string

cidr is the CIDR of the subnet.

tags
[]string
(Optional)

tags is a list of tags on the subnet.

SubnetFilter

(Appears on: SubnetParam)

SubnetFilter specifies a filter to select a subnet. At least one parameter must be specified.

Field Description
name
string

name filters subnets by name.

description
string

description filters subnets by description.

projectID
string

projectID filters subnets by project ID.

ipVersion
int

ipVersion filters subnets by IP version.

gatewayIP
string

gatewayIP filters subnets by gateway IP.

cidr
string

cidr filters subnets by CIDR.

ipv6AddressMode
string

ipv6AddressMode filters subnets by IPv6 address mode.

ipv6RAMode
string

ipv6RAMode filters subnets by IPv6 Router Advertisement mode.

FilterByNeutronTags
FilterByNeutronTags

(Members of FilterByNeutronTags are embedded into this type.)

SubnetParam

(Appears on: APIServerLoadBalancer, ExternalRouterIPParam, FixedIP, OpenStackClusterSpec)

SubnetParam specifies an OpenStack subnet to use. It may be specified by either ID or filter, but not both.

Field Description
id
string
(Optional)

id is the uuid of the subnet. It will not be validated.

filter
SubnetFilter
(Optional)

filter specifies a filter to select the subnet. It must match exactly one subnet.

SubnetSpec

(Appears on: OpenStackClusterSpec)

Field Description
cidr
string

cidr is representing the IP address range used to create the subnet, e.g. 10.0.0.0/24. This field is required when defining a subnet.

dnsNameservers
[]string

dnsNameservers holds a list of DNS server addresses that will be provided when creating the subnet. These addresses need to have the same IP version as CIDR.

allocationPools
[]AllocationPool

allocationPools is an array of AllocationPool objects that will be applied to OpenStack Subnet being created. If set, OpenStack will only allocate these IPs for Machines. It will still be possible to create ports from outside of these ranges manually.

ValueSpec

(Appears on: ResolvedPortSpecFields)

ValueSpec represents a single value_spec key-value pair.

Field Description
name
string

name is the name of the key-value pair. This is just for identifying the pair and will not be sent to the OpenStack API.

key
string

key is the key in the key-value pair.

value
string

value is the value in the key-value pair.

VolumeAZName (string alias)

(Appears on: VolumeAvailabilityZone)

VolumeAZName is the name of a volume availability zone. It may not contain spaces.

VolumeAZSource (string alias)

(Appears on: VolumeAvailabilityZone)

VolumeAZSource specifies where to obtain the availability zone for a volume.

Value Description

"Machine"

"Name"

VolumeAvailabilityZone

(Appears on: BlockDeviceVolume)

VolumeAvailabilityZone specifies the availability zone for a volume.

Field Description
from
VolumeAZSource
(Optional)

from specifies where we will obtain the availability zone for the volume. The options are “Name” and “Machine”. If “Name” is specified then the Name field must also be specified. If “Machine” is specified the volume will use the value of FailureDomain, if any, from the associated Machine.

name
VolumeAZName
(Optional)

name is the name of a volume availability zone to use. It is required if From is “Name”. The volume availability zone name may not contain spaces.


Generated with gen-crd-api-reference-docs.