v1alpha7

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 6, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

package v1alpha7 contains API Schema definitions for the infrastructure v1alpha7 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Index

Constants

View Source
const (
	// InstanceReadyCondition reports on current status of the OpenStack instance. Ready indicates the instance is in a Running state.
	InstanceReadyCondition clusterv1.ConditionType = "InstanceReady"

	// WaitingForClusterInfrastructureReason used when machine is waiting for cluster infrastructure to be ready before proceeding.
	WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure"
	// WaitingForBootstrapDataReason used when machine is waiting for bootstrap data to be ready before proceeding.
	WaitingForBootstrapDataReason = "WaitingForBootstrapData"
	// InvalidMachineSpecReason used when the machine spec is invalid.
	InvalidMachineSpecReason = "InvalidMachineSpec"
	// InstanceCreateFailedReason used when creating the instance failed.
	InstanceCreateFailedReason = "InstanceCreateFailed"
	// InstanceNotFoundReason used when the instance couldn't be retrieved.
	InstanceNotFoundReason = "InstanceNotFound"
	// InstanceStateErrorReason used when the instance is in error state.
	InstanceStateErrorReason = "InstanceStateError"
	// InstanceDeletedReason used when the instance is in a deleted state.
	InstanceDeletedReason = "InstanceDeleted"
	// InstanceNotReadyReason used when the instance is in a pending state.
	InstanceNotReadyReason = "InstanceNotReady"
	// InstanceDeleteFailedReason used when deleting the instance failed.
	InstanceDeleteFailedReason = "InstanceDeleteFailed"
	// OpenstackErrorReason used when there is an error communicating with OpenStack.
	OpenStackErrorReason = "OpenStackError"
)
View Source
const (
	// APIServerIngressReadyCondition reports on the current status of the network ingress (Loadbalancer, Floating IP) for Control Plane machines. Ready indicates that the instance can receive requests.
	APIServerIngressReadyCondition clusterv1.ConditionType = "APIServerIngressReadyCondition"

	// LoadBalancerMemberErrorReason used when the instance could not be added as a loadbalancer member.
	LoadBalancerMemberErrorReason = "LoadBalancerMemberError"
	// FloatingIPErrorReason used when the floating ip could not be created or attached.
	FloatingIPErrorReason = "FloatingIPError"
)
View Source
const (
	// ClusterFinalizer allows ReconcileOpenStackCluster to clean up OpenStack resources associated with OpenStackCluster before
	// removing it from the apiserver.
	ClusterFinalizer = "openstackcluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer allows ReconcileOpenStackMachine to clean up OpenStack resources associated with OpenStackMachine before
	// removing it from the apiserver.
	MachineFinalizer = "openstackmachine.infrastructure.cluster.x-k8s.io"
)
View Source
const OpenStackMachineTemplateImmutableMsg = "" /* 177-byte string literal not displayed */

OpenStackMachineTemplateImmutableMsg ...

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha7"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	// InstanceStateBuilding is the string representing an instance in a building state.
	InstanceStateBuilding = InstanceState("BUILDING")

	// InstanceStateActive is the string representing an instance in an active state.
	InstanceStateActive = InstanceState("ACTIVE")

	// InstanceStateError is the string representing an instance in an error state.
	InstanceStateError = InstanceState("ERROR")

	// InstanceStateStopped is the string representing an instance in a stopped state.
	InstanceStateStopped = InstanceState("STOPPED")

	// InstanceStateShutoff is the string representing an instance in a shutoff state.
	InstanceStateShutoff = InstanceState("SHUTOFF")

	// InstanceStateDeleted is the string representing an instance in a deleted state.
	InstanceStateDeleted = InstanceState("DELETED")
)

Functions

This section is empty.

Types

type APIServerLoadBalancer

type APIServerLoadBalancer struct {
	// Enabled defines whether a load balancer should be created.
	Enabled bool `json:"enabled,omitempty"`
	// AdditionalPorts adds additional tcp ports to the load balancer.
	AdditionalPorts []int `json:"additionalPorts,omitempty"`
	// AllowedCIDRs restrict access to all API-Server listeners to the given address CIDRs.
	AllowedCIDRs []string `json:"allowedCidrs,omitempty"`
	// Octavia Provider Used to create load balancer
	Provider string `json:"provider,omitempty"`
}

func (*APIServerLoadBalancer) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerLoadBalancer.

func (*APIServerLoadBalancer) DeepCopyInto

func (in *APIServerLoadBalancer) DeepCopyInto(out *APIServerLoadBalancer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AdditionalBlockDevice

type AdditionalBlockDevice struct {
	// 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 string `json:"name"`

	// SizeGiB is the size of the block device in gibibytes (GiB).
	SizeGiB int `json:"sizeGiB"`

	// Storage specifies the storage type of the block device and
	// additional storage options.
	Storage BlockDeviceStorage `json:"storage"`
}

AdditionalBlockDevice is a block device to attach to the server.

func (*AdditionalBlockDevice) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalBlockDevice.

func (*AdditionalBlockDevice) DeepCopyInto

func (in *AdditionalBlockDevice) DeepCopyInto(out *AdditionalBlockDevice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddressPair

type AddressPair struct {
	IPAddress  string `json:"ipAddress,omitempty"`
	MACAddress string `json:"macAddress,omitempty"`
}

func (*AddressPair) DeepCopy

func (in *AddressPair) DeepCopy() *AddressPair

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressPair.

func (*AddressPair) DeepCopyInto

func (in *AddressPair) DeepCopyInto(out *AddressPair)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Bastion

type Bastion struct {
	//+optional
	Enabled bool `json:"enabled"`

	// Instance for the bastion itself
	Instance OpenStackMachineSpec `json:"instance,omitempty"`

	//+optional
	AvailabilityZone string `json:"availabilityZone,omitempty"`
}

Bastion represents basic information about the bastion node.

func (*Bastion) DeepCopy

func (in *Bastion) DeepCopy() *Bastion

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bastion.

func (*Bastion) DeepCopyInto

func (in *Bastion) DeepCopyInto(out *Bastion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BastionStatus

type BastionStatus struct {
	ID         string        `json:"id,omitempty"`
	Name       string        `json:"name,omitempty"`
	SSHKeyName string        `json:"sshKeyName,omitempty"`
	State      InstanceState `json:"state,omitempty"`
	IP         string        `json:"ip,omitempty"`
	FloatingIP string        `json:"floatingIP,omitempty"`
}

func (*BastionStatus) DeepCopy

func (in *BastionStatus) DeepCopy() *BastionStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BastionStatus.

func (*BastionStatus) DeepCopyInto

func (in *BastionStatus) DeepCopyInto(out *BastionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BindingProfile

type BindingProfile struct {
	// OVSHWOffload enables or disables the OVS hardware offload feature.
	OVSHWOffload bool `json:"ovsHWOffload,omitempty"`

	// TrustedVF enables or disables the “trusted mode” for the VF.
	TrustedVF bool `json:"trustedVF,omitempty"`
}

func (*BindingProfile) DeepCopy

func (in *BindingProfile) DeepCopy() *BindingProfile

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BindingProfile.

func (*BindingProfile) DeepCopyInto

func (in *BindingProfile) DeepCopyInto(out *BindingProfile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BlockDeviceStorage

type BlockDeviceStorage struct {
	// Type is the type of block device to create.
	// This can be either "Volume" or "Local".
	// +unionDiscriminator
	Type BlockDeviceType `json:"type"`

	// Volume contains additional storage options for a volume block device.
	// +optional
	// +unionMember,optional
	Volume *BlockDeviceVolume `json:"volume,omitempty"`
}

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

func (*BlockDeviceStorage) DeepCopy

func (in *BlockDeviceStorage) DeepCopy() *BlockDeviceStorage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceStorage.

func (*BlockDeviceStorage) DeepCopyInto

func (in *BlockDeviceStorage) DeepCopyInto(out *BlockDeviceStorage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BlockDeviceType

type BlockDeviceType string

BlockDeviceType defines the type of block device to create.

const (
	// LocalBlockDevice is an ephemeral block device attached to the server.
	LocalBlockDevice BlockDeviceType = "Local"

	// VolumeBlockDevice is a volume block device attached to the server.
	VolumeBlockDevice BlockDeviceType = "Volume"
)

type BlockDeviceVolume

type BlockDeviceVolume struct {
	// 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.
	// +optional
	Type string `json:"type,omitempty"`

	// AvailabilityZone is the volume availability zone to create the volume in.
	// If omitted, the availability zone of the server will be used.
	// The availability zone must NOT contain spaces otherwise it will lead to volume that belongs
	// to this availability zone register failure, see kubernetes/cloud-provider-openstack#1379 for
	// further information.
	// +optional
	AvailabilityZone string `json:"availabilityZone,omitempty"`
}

BlockDeviceVolume contains additional storage options for a volume block device.

func (*BlockDeviceVolume) DeepCopy

func (in *BlockDeviceVolume) DeepCopy() *BlockDeviceVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceVolume.

func (*BlockDeviceVolume) DeepCopyInto

func (in *BlockDeviceVolume) DeepCopyInto(out *BlockDeviceVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalRouterIPParam

type ExternalRouterIPParam struct {
	// The FixedIP in the corresponding subnet
	FixedIP string `json:"fixedIP,omitempty"`
	// The subnet in which the FixedIP is used for the Gateway of this router
	Subnet SubnetFilter `json:"subnet"`
}

func (*ExternalRouterIPParam) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalRouterIPParam.

func (*ExternalRouterIPParam) DeepCopyInto

func (in *ExternalRouterIPParam) DeepCopyInto(out *ExternalRouterIPParam)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FixedIP

type FixedIP struct {
	// 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.
	Subnet    *SubnetFilter `json:"subnet"`
	IPAddress string        `json:"ipAddress,omitempty"`
}

func (*FixedIP) DeepCopy

func (in *FixedIP) DeepCopy() *FixedIP

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedIP.

func (*FixedIP) DeepCopyInto

func (in *FixedIP) DeepCopyInto(out *FixedIP)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceState

type InstanceState string

InstanceState describes the state of an OpenStack instance.

type LoadBalancer

type LoadBalancer struct {
	Name       string `json:"name"`
	ID         string `json:"id"`
	IP         string `json:"ip"`
	InternalIP string `json:"internalIP"`
	//+optional
	AllowedCIDRs []string `json:"allowedCIDRs,omitempty"`
	//+optional
	Tags []string `json:"tags,omitempty"`
}

LoadBalancer represents basic information about the associated OpenStack LoadBalancer.

func (*LoadBalancer) DeepCopy

func (in *LoadBalancer) DeepCopy() *LoadBalancer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.

func (*LoadBalancer) DeepCopyInto

func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkFilter

type NetworkFilter struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	ProjectID   string `json:"projectId,omitempty"`
	ID          string `json:"id,omitempty"`
	Tags        string `json:"tags,omitempty"`
	TagsAny     string `json:"tagsAny,omitempty"`
	NotTags     string `json:"notTags,omitempty"`
	NotTagsAny  string `json:"notTagsAny,omitempty"`
}

func (*NetworkFilter) DeepCopy

func (in *NetworkFilter) DeepCopy() *NetworkFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkFilter.

func (*NetworkFilter) DeepCopyInto

func (in *NetworkFilter) DeepCopyInto(out *NetworkFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NetworkFilter) ToListOpt

func (networkFilter NetworkFilter) ToListOpt() networks.ListOpts

type NetworkStatus

type NetworkStatus struct {
	Name string `json:"name"`
	ID   string `json:"id"`

	//+optional
	Tags []string `json:"tags,omitempty"`
}

NetworkStatus contains basic information about an existing neutron network.

func (*NetworkStatus) DeepCopy

func (in *NetworkStatus) DeepCopy() *NetworkStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.

func (*NetworkStatus) DeepCopyInto

func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkStatusWithSubnets

type NetworkStatusWithSubnets struct {
	NetworkStatus `json:",inline"`

	// 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.
	Subnets []Subnet `json:"subnets,omitempty"`
}

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

func (*NetworkStatusWithSubnets) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatusWithSubnets.

func (*NetworkStatusWithSubnets) DeepCopyInto

func (in *NetworkStatusWithSubnets) DeepCopyInto(out *NetworkStatusWithSubnets)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackCluster

type OpenStackCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OpenStackClusterSpec   `json:"spec,omitempty"`
	Status OpenStackClusterStatus `json:"status,omitempty"`
}

OpenStackCluster is the Schema for the openstackclusters API.

func (*OpenStackCluster) DeepCopy

func (in *OpenStackCluster) DeepCopy() *OpenStackCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackCluster.

func (*OpenStackCluster) DeepCopyInto

func (in *OpenStackCluster) DeepCopyInto(out *OpenStackCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackCluster) DeepCopyObject

func (in *OpenStackCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackCluster) Default

func (r *OpenStackCluster) Default()

Default satisfies the defaulting webhook interface.

func (*OpenStackCluster) Hub

func (*OpenStackCluster) Hub()

Hub marks OpenStackCluster as a conversion hub.

func (*OpenStackCluster) SetupWebhookWithManager

func (r *OpenStackCluster) SetupWebhookWithManager(mgr manager.Manager) error

func (*OpenStackCluster) ValidateCreate

func (r *OpenStackCluster) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*OpenStackCluster) ValidateDelete

func (r *OpenStackCluster) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*OpenStackCluster) ValidateUpdate

func (r *OpenStackCluster) ValidateUpdate(oldRaw runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type OpenStackClusterList

type OpenStackClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackCluster `json:"items"`
}

OpenStackClusterList contains a list of OpenStackCluster.

func (*OpenStackClusterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterList.

func (*OpenStackClusterList) DeepCopyInto

func (in *OpenStackClusterList) DeepCopyInto(out *OpenStackClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackClusterList) DeepCopyObject

func (in *OpenStackClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackClusterList) Hub

func (*OpenStackClusterList) Hub()

Hub marks OpenStackClusterList as a conversion hub.

func (*OpenStackClusterList) SetupWebhookWithManager

func (r *OpenStackClusterList) SetupWebhookWithManager(mgr manager.Manager) error

type OpenStackClusterSpec

type OpenStackClusterSpec struct {
	// The name of the cloud to use from the clouds secret
	// +optional
	CloudName string `json:"cloudName"`

	// NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a
	// network, a subnet with NodeCIDR, and a router connected to this subnet.
	// If you leave this empty, no network will be created.
	NodeCIDR string `json:"nodeCidr,omitempty"`

	// If NodeCIDR is set this option can be used to detect an existing router.
	// If specified, no new router will be created.
	// +optional
	Router *RouterFilter `json:"router,omitempty"`

	// If NodeCIDR cannot be set this can be used to detect an existing network.
	Network NetworkFilter `json:"network,omitempty"`

	// If NodeCIDR cannot be set this can be used to detect an existing subnet.
	Subnet SubnetFilter `json:"subnet,omitempty"`

	// NetworkMTU 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 leaved 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.
	// +optional
	NetworkMTU int `json:"networkMtu,omitempty"`

	// DNSNameservers is the list of nameservers for OpenStack Subnet being created.
	// Set this value when you need create a new network/subnet while the access
	// through DNS is required.
	// +listType=set
	DNSNameservers []string `json:"dnsNameservers,omitempty"`
	// ExternalRouterIPs is an array of externalIPs on the respective subnets.
	// This is necessary if the router needs a fixed ip in a specific subnet.
	ExternalRouterIPs []ExternalRouterIPParam `json:"externalRouterIPs,omitempty"`
	// ExternalNetworkID is the ID of an external OpenStack Network. This is necessary
	// to get public internet to the VMs.
	// +optional
	ExternalNetworkID string `json:"externalNetworkId,omitempty"`

	// APIServerLoadBalancer configures the optional LoadBalancer for the APIServer.
	// It must be activated by setting `enabled: true`.
	// +optional
	APIServerLoadBalancer APIServerLoadBalancer `json:"apiServerLoadBalancer,omitempty"`

	// 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.
	// +optional
	DisableAPIServerFloatingIP bool `json:"disableAPIServerFloatingIP"`

	// 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.
	APIServerFloatingIP string `json:"apiServerFloatingIP,omitempty"`

	// 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.
	APIServerFixedIP string `json:"apiServerFixedIP,omitempty"`

	// APIServerPort is the port on which the listener on the APIServer
	// will be created
	APIServerPort int `json:"apiServerPort,omitempty"`

	// 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, the
	// Kubernetes API server and the Calico CNI plugin to function correctly.
	// +optional
	ManagedSecurityGroups bool `json:"managedSecurityGroups"`

	// AllowAllInClusterTraffic is only used when managed security groups are in use.
	// If set to true, the rules for the managed security groups are configured so that all
	// ingress and egress between cluster nodes is permitted, allowing CNIs other than
	// Calico to be used.
	// +optional
	AllowAllInClusterTraffic bool `json:"allowAllInClusterTraffic"`

	// DisablePortSecurity disables the port security of the network created for the
	// Kubernetes cluster, which also disables SecurityGroups
	DisablePortSecurity bool `json:"disablePortSecurity,omitempty"`

	// Tags for all resources in cluster
	// +listType=set
	Tags []string `json:"tags,omitempty"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`

	// ControlPlaneAvailabilityZones is the az to deploy control plane to
	// +listType=set
	ControlPlaneAvailabilityZones []string `json:"controlPlaneAvailabilityZones,omitempty"`

	// Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler
	// to make a decision on which az to use based on other scheduling constraints
	ControlPlaneOmitAvailabilityZone bool `json:"controlPlaneOmitAvailabilityZone,omitempty"`

	// 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. Set `enabled: false` to
	// make changes.
	//+optional
	Bastion *Bastion `json:"bastion,omitempty"`

	// IdentityRef is a reference to a identity to be used when reconciling this cluster
	// +optional
	IdentityRef *OpenStackIdentityReference `json:"identityRef,omitempty"`
}

OpenStackClusterSpec defines the desired state of OpenStackCluster.

func (*OpenStackClusterSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterSpec.

func (*OpenStackClusterSpec) DeepCopyInto

func (in *OpenStackClusterSpec) DeepCopyInto(out *OpenStackClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackClusterStatus

type OpenStackClusterStatus struct {
	Ready bool `json:"ready"`

	// Network contains information about the created OpenStack Network.
	Network *NetworkStatusWithSubnets `json:"network,omitempty"`

	// externalNetwork contains information about the external network used for default ingress and egress traffic.
	ExternalNetwork *NetworkStatus `json:"externalNetwork,omitempty"`

	// Router describes the default cluster router
	Router *Router `json:"router,omitempty"`

	// APIServerLoadBalancer describes the api server load balancer if one exists
	APIServerLoadBalancer *LoadBalancer `json:"apiServerLoadBalancer,omitempty"`

	// FailureDomains represent OpenStack availability zones
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`

	// ControlPlaneSecurityGroups contains all the information about the OpenStack
	// Security Group that needs to be applied to control plane nodes.
	// TODO: Maybe instead of two properties, we add a property to the group?
	ControlPlaneSecurityGroup *SecurityGroup `json:"controlPlaneSecurityGroup,omitempty"`

	// WorkerSecurityGroup contains all the information about the OpenStack Security
	// Group that needs to be applied to worker nodes.
	WorkerSecurityGroup *SecurityGroup `json:"workerSecurityGroup,omitempty"`

	BastionSecurityGroup *SecurityGroup `json:"bastionSecurityGroup,omitempty"`

	Bastion *BastionStatus `json:"bastion,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the OpenStackCluster and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the OpenStackCluster's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of
	// OpenStackClusters can be added as events to the OpenStackCluster object
	// and/or logged in the controller's output.
	// +optional
	FailureReason *capierrors.ClusterStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the OpenStackCluster and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the OpenStackCluster's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of
	// OpenStackClusters can be added as events to the OpenStackCluster object
	// and/or logged in the controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// AvailableServerIPs is a list of the Control Plane IP adds that can be used to register further nodes.
	AvailableServerIPs []string `json:"availableServerIPs,omitempty"`
}

OpenStackClusterStatus defines the observed state of OpenStackCluster.

func (*OpenStackClusterStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterStatus.

func (*OpenStackClusterStatus) DeepCopyInto

func (in *OpenStackClusterStatus) DeepCopyInto(out *OpenStackClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackClusterTemplate

type OpenStackClusterTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec OpenStackClusterTemplateSpec `json:"spec,omitempty"`
}

OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.

func (*OpenStackClusterTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterTemplate.

func (*OpenStackClusterTemplate) DeepCopyInto

func (in *OpenStackClusterTemplate) DeepCopyInto(out *OpenStackClusterTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackClusterTemplate) DeepCopyObject

func (in *OpenStackClusterTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackClusterTemplate) Default

func (r *OpenStackClusterTemplate) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*OpenStackClusterTemplate) Hub

func (*OpenStackClusterTemplate) Hub()

Hub marks OpenStackClusterTemplate as a conversion hub.

func (*OpenStackClusterTemplate) SetupWebhookWithManager

func (r *OpenStackClusterTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*OpenStackClusterTemplate) ValidateCreate

func (r *OpenStackClusterTemplate) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*OpenStackClusterTemplate) ValidateDelete

func (r *OpenStackClusterTemplate) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*OpenStackClusterTemplate) ValidateUpdate

func (r *OpenStackClusterTemplate) ValidateUpdate(oldRaw runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type OpenStackClusterTemplateList

type OpenStackClusterTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackClusterTemplate `json:"items"`
}

OpenStackClusterTemplateList contains a list of OpenStackClusterTemplate.

func (*OpenStackClusterTemplateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterTemplateList.

func (*OpenStackClusterTemplateList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackClusterTemplateList) DeepCopyObject

func (in *OpenStackClusterTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackClusterTemplateList) Hub

Hub marks OpenStackClusterTemplateList as a conversion hub.

type OpenStackClusterTemplateResource

type OpenStackClusterTemplateResource struct {
	Spec OpenStackClusterSpec `json:"spec"`
}

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

func (*OpenStackClusterTemplateResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterTemplateResource.

func (*OpenStackClusterTemplateResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackClusterTemplateSpec

type OpenStackClusterTemplateSpec struct {
	Template OpenStackClusterTemplateResource `json:"template"`
}

OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.

func (*OpenStackClusterTemplateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackClusterTemplateSpec.

func (*OpenStackClusterTemplateSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackIdentityReference

type OpenStackIdentityReference struct {
	// Kind of the identity. Must be supported by the infrastructure
	// provider and may be either cluster or namespace-scoped.
	// +kubebuilder:validation:MinLength=1
	Kind string `json:"kind"`

	// Name of the infrastructure identity to be used.
	// Must be either a cluster-scoped resource, or namespaced-scoped
	// resource the same namespace as the resource(s) being provisioned.
	Name string `json:"name"`
}

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

func (*OpenStackIdentityReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackIdentityReference.

func (*OpenStackIdentityReference) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackMachine

type OpenStackMachine struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OpenStackMachineSpec   `json:"spec,omitempty"`
	Status OpenStackMachineStatus `json:"status,omitempty"`
}

OpenStackMachine is the Schema for the openstackmachines API.

func (*OpenStackMachine) DeepCopy

func (in *OpenStackMachine) DeepCopy() *OpenStackMachine

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachine.

func (*OpenStackMachine) DeepCopyInto

func (in *OpenStackMachine) DeepCopyInto(out *OpenStackMachine)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackMachine) DeepCopyObject

func (in *OpenStackMachine) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackMachine) Default

func (r *OpenStackMachine) Default()

Default satisfies the defaulting webhook interface.

func (*OpenStackMachine) GetConditions

func (r *OpenStackMachine) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the OpenStackMachine resource.

func (*OpenStackMachine) Hub

func (*OpenStackMachine) Hub()

Hub marks OpenStackMachine as a conversion hub.

func (*OpenStackMachine) SetConditions

func (r *OpenStackMachine) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the OpenStackMachine to the predescribed clusterv1.Conditions.

func (*OpenStackMachine) SetFailure

func (r *OpenStackMachine) SetFailure(failureReason errors.MachineStatusError, failureMessage error)

SetFailure sets the OpenStackMachine status failure reason and failure message.

func (*OpenStackMachine) SetupWebhookWithManager

func (r *OpenStackMachine) SetupWebhookWithManager(mgr manager.Manager) error

func (*OpenStackMachine) ValidateCreate

func (r *OpenStackMachine) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*OpenStackMachine) ValidateDelete

func (r *OpenStackMachine) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*OpenStackMachine) ValidateUpdate

func (r *OpenStackMachine) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type OpenStackMachineList

type OpenStackMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackMachine `json:"items"`
}

OpenStackMachineList contains a list of OpenStackMachine.

func (*OpenStackMachineList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineList.

func (*OpenStackMachineList) DeepCopyInto

func (in *OpenStackMachineList) DeepCopyInto(out *OpenStackMachineList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackMachineList) DeepCopyObject

func (in *OpenStackMachineList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackMachineList) Hub

func (*OpenStackMachineList) Hub()

Hub marks OpenStackMachineList as a conversion hub.

func (*OpenStackMachineList) SetupWebhookWithManager

func (r *OpenStackMachineList) SetupWebhookWithManager(mgr manager.Manager) error

type OpenStackMachineSpec

type OpenStackMachineSpec struct {
	// ProviderID is the unique identifier as specified by the cloud provider.
	ProviderID *string `json:"providerID,omitempty"`

	// InstanceID is the OpenStack instance ID for this machine.
	InstanceID *string `json:"instanceID,omitempty"`

	// The name of the cloud to use from the clouds secret
	// +optional
	CloudName string `json:"cloudName"`

	// The flavor reference for the flavor for your server instance.
	Flavor string `json:"flavor"`

	// The name of the image to use for your server instance.
	// If the RootVolume is specified, this will be ignored and use rootVolume directly.
	Image string `json:"image,omitempty"`

	// The uuid of the image to use for your server instance.
	// if it's empty, Image name will be used
	ImageUUID string `json:"imageUUID,omitempty"`

	// The ssh key to inject in the instance
	SSHKeyName string `json:"sshKeyName,omitempty"`

	// 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.
	Ports []PortOpts `json:"ports,omitempty"`

	// The floatingIP which will be associated to the machine, only used for master.
	// The floatingIP should have been created and haven't been associated.
	FloatingIP string `json:"floatingIP,omitempty"`

	// The names of the security groups to assign to the instance
	SecurityGroups []SecurityGroupFilter `json:"securityGroups,omitempty"`

	// Whether the server instance is created on a trunk port or not.
	Trunk bool `json:"trunk,omitempty"`

	// Machine tags
	// Requires Nova api 2.52 minimum!
	// +listType=set
	Tags []string `json:"tags,omitempty"`

	// Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.
	ServerMetadata map[string]string `json:"serverMetadata,omitempty"`

	// Config Drive support
	ConfigDrive *bool `json:"configDrive,omitempty"`

	// The volume metadata to boot from
	RootVolume *RootVolume `json:"rootVolume,omitempty"`

	// AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance
	// +listType=map
	// +listMapKey=name
	// +optional
	AdditionalBlockDevices []AdditionalBlockDevice `json:"additionalBlockDevices,omitempty"`

	// The server group to assign the machine to
	ServerGroupID string `json:"serverGroupID,omitempty"`

	// IdentityRef is a reference to a identity to be used when reconciling this cluster
	// +optional
	IdentityRef *OpenStackIdentityReference `json:"identityRef,omitempty"`
}

OpenStackMachineSpec defines the desired state of OpenStackMachine.

func (*OpenStackMachineSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineSpec.

func (*OpenStackMachineSpec) DeepCopyInto

func (in *OpenStackMachineSpec) DeepCopyInto(out *OpenStackMachineSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackMachineStatus

type OpenStackMachineStatus struct {
	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// Addresses contains the OpenStack instance associated addresses.
	Addresses []corev1.NodeAddress `json:"addresses,omitempty"`

	// InstanceState is the state of the OpenStack instance for this machine.
	// +optional
	InstanceState *InstanceState `json:"instanceState,omitempty"`

	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

OpenStackMachineStatus defines the observed state of OpenStackMachine.

func (*OpenStackMachineStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineStatus.

func (*OpenStackMachineStatus) DeepCopyInto

func (in *OpenStackMachineStatus) DeepCopyInto(out *OpenStackMachineStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackMachineTemplate

type OpenStackMachineTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec OpenStackMachineTemplateSpec `json:"spec,omitempty"`
}

OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.

func (*OpenStackMachineTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineTemplate.

func (*OpenStackMachineTemplate) DeepCopyInto

func (in *OpenStackMachineTemplate) DeepCopyInto(out *OpenStackMachineTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackMachineTemplate) DeepCopyObject

func (in *OpenStackMachineTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackMachineTemplate) Hub

func (*OpenStackMachineTemplate) Hub()

Hub marks OpenStackMachineTemplate as a conversion hub.

type OpenStackMachineTemplateList

type OpenStackMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackMachineTemplate `json:"items"`
}

OpenStackMachineTemplateList contains a list of OpenStackMachineTemplate.

func (*OpenStackMachineTemplateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineTemplateList.

func (*OpenStackMachineTemplateList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackMachineTemplateList) DeepCopyObject

func (in *OpenStackMachineTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackMachineTemplateList) Hub

Hub marks OpenStackMachineTemplateList as a conversion hub.

func (*OpenStackMachineTemplateList) SetupWebhookWithManager

func (r *OpenStackMachineTemplateList) SetupWebhookWithManager(mgr manager.Manager) error

type OpenStackMachineTemplateResource

type OpenStackMachineTemplateResource struct {
	// Spec is the specification of the desired behavior of the machine.
	Spec OpenStackMachineSpec `json:"spec"`
}

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

func (*OpenStackMachineTemplateResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineTemplateResource.

func (*OpenStackMachineTemplateResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackMachineTemplateSpec

type OpenStackMachineTemplateSpec struct {
	Template OpenStackMachineTemplateResource `json:"template"`
}

OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.

func (*OpenStackMachineTemplateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackMachineTemplateSpec.

func (*OpenStackMachineTemplateSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackMachineTemplateWebhook

type OpenStackMachineTemplateWebhook struct{}

+kubebuilder:object:generate=false

func (*OpenStackMachineTemplateWebhook) SetupWebhookWithManager

func (r *OpenStackMachineTemplateWebhook) SetupWebhookWithManager(mgr manager.Manager) error

func (*OpenStackMachineTemplateWebhook) ValidateCreate

ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type.

func (*OpenStackMachineTemplateWebhook) ValidateDelete

ValidateDelete implements webhook.CustomValidator so a webhook will be registered for the type.

func (*OpenStackMachineTemplateWebhook) ValidateUpdate

ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type.

type PortOpts

type PortOpts struct {
	// 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.
	Network *NetworkFilter `json:"network,omitempty"`
	// Used to make the name of the port unique. If unspecified, instead the 0-based index of the port in the list is used.
	NameSuffix   string `json:"nameSuffix,omitempty"`
	Description  string `json:"description,omitempty"`
	AdminStateUp *bool  `json:"adminStateUp,omitempty"`
	MACAddress   string `json:"macAddress,omitempty"`
	// Specify pairs of subnet and/or IP address. These should be subnets of the network with the given NetworkID.
	FixedIPs []FixedIP `json:"fixedIPs,omitempty"`
	// The names, uuids, filters or any combination these of the security groups to assign to the instance
	SecurityGroupFilters []SecurityGroupFilter `json:"securityGroupFilters,omitempty"`
	AllowedAddressPairs  []AddressPair         `json:"allowedAddressPairs,omitempty"`
	// Enables and disables trunk at port level. If not provided, openStackMachine.Spec.Trunk is inherited.
	Trunk *bool `json:"trunk,omitempty"`

	// The ID of the host where the port is allocated
	HostID string `json:"hostId,omitempty"`

	// The virtual network interface card (vNIC) type that is bound to the neutron port.
	VNICType string `json:"vnicType,omitempty"`

	// 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
	Profile BindingProfile `json:"profile,omitempty"`

	// DisablePortSecurity enables or disables the port security when set.
	// When not set, it takes the value of the corresponding field at the network level.
	DisablePortSecurity *bool `json:"disablePortSecurity,omitempty"`

	// PropageteUplinkStatus enables or disables the propagate uplink status on the port.
	PropagateUplinkStatus *bool `json:"propagateUplinkStatus,omitempty"`

	// 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.
	// +listType=set
	Tags []string `json:"tags,omitempty"`

	// Value specs 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.
	// +optional
	// +listType=map
	// +listMapKey=name
	ValueSpecs []ValueSpec `json:"valueSpecs,omitempty"`
}

func (*PortOpts) DeepCopy

func (in *PortOpts) DeepCopy() *PortOpts

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortOpts.

func (*PortOpts) DeepCopyInto

func (in *PortOpts) DeepCopyInto(out *PortOpts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RootVolume

type RootVolume struct {
	Size             int    `json:"diskSize,omitempty"`
	VolumeType       string `json:"volumeType,omitempty"`
	AvailabilityZone string `json:"availabilityZone,omitempty"`
}

func (*RootVolume) DeepCopy

func (in *RootVolume) DeepCopy() *RootVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootVolume.

func (*RootVolume) DeepCopyInto

func (in *RootVolume) DeepCopyInto(out *RootVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Router

type Router struct {
	Name string `json:"name"`
	ID   string `json:"id"`
	//+optional
	Tags []string `json:"tags,omitempty"`
	//+optional
	IPs []string `json:"ips,omitempty"`
}

Router represents basic information about the associated OpenStack Neutron Router.

func (*Router) DeepCopy

func (in *Router) DeepCopy() *Router

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Router.

func (*Router) DeepCopyInto

func (in *Router) DeepCopyInto(out *Router)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterFilter

type RouterFilter struct {
	ID          string `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	ProjectID   string `json:"projectId,omitempty"`
	Tags        string `json:"tags,omitempty"`
	TagsAny     string `json:"tagsAny,omitempty"`
	NotTags     string `json:"notTags,omitempty"`
	NotTagsAny  string `json:"notTagsAny,omitempty"`
}

func (*RouterFilter) DeepCopy

func (in *RouterFilter) DeepCopy() *RouterFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterFilter.

func (*RouterFilter) DeepCopyInto

func (in *RouterFilter) DeepCopyInto(out *RouterFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (RouterFilter) ToListOpt

func (routerFilter RouterFilter) ToListOpt() routers.ListOpts

type SecurityGroup

type SecurityGroup struct {
	Name  string              `json:"name"`
	ID    string              `json:"id"`
	Rules []SecurityGroupRule `json:"rules"`
}

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

func (*SecurityGroup) DeepCopy

func (in *SecurityGroup) DeepCopy() *SecurityGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroup.

func (*SecurityGroup) DeepCopyInto

func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecurityGroupFilter

type SecurityGroupFilter struct {
	ID          string `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	ProjectID   string `json:"projectId,omitempty"`
	Tags        string `json:"tags,omitempty"`
	TagsAny     string `json:"tagsAny,omitempty"`
	NotTags     string `json:"notTags,omitempty"`
	NotTagsAny  string `json:"notTagsAny,omitempty"`
}

func (*SecurityGroupFilter) DeepCopy

func (in *SecurityGroupFilter) DeepCopy() *SecurityGroupFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupFilter.

func (*SecurityGroupFilter) DeepCopyInto

func (in *SecurityGroupFilter) DeepCopyInto(out *SecurityGroupFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SecurityGroupFilter) ToListOpt

func (securityGroupFilter SecurityGroupFilter) ToListOpt() securitygroups.ListOpts

type SecurityGroupRule

type SecurityGroupRule struct {
	Description     string `json:"description"`
	ID              string `json:"name"`
	Direction       string `json:"direction"`
	EtherType       string `json:"etherType"`
	SecurityGroupID string `json:"securityGroupID"`
	PortRangeMin    int    `json:"portRangeMin"`
	PortRangeMax    int    `json:"portRangeMax"`
	Protocol        string `json:"protocol"`
	RemoteGroupID   string `json:"remoteGroupID"`
	RemoteIPPrefix  string `json:"remoteIPPrefix"`
}

SecurityGroupRule represent the basic information of the associated OpenStack Security Group Role.

func (*SecurityGroupRule) DeepCopy

func (in *SecurityGroupRule) DeepCopy() *SecurityGroupRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupRule.

func (*SecurityGroupRule) DeepCopyInto

func (in *SecurityGroupRule) DeepCopyInto(out *SecurityGroupRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SecurityGroupRule) Equal

Equal checks if two SecurityGroupRules are the same.

type Subnet

type Subnet struct {
	Name string `json:"name"`
	ID   string `json:"id"`

	CIDR string `json:"cidr"`

	//+optional
	Tags []string `json:"tags,omitempty"`
}

Subnet represents basic information about the associated OpenStack Neutron Subnet.

func (*Subnet) DeepCopy

func (in *Subnet) DeepCopy() *Subnet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnet.

func (*Subnet) DeepCopyInto

func (in *Subnet) DeepCopyInto(out *Subnet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubnetFilter

type SubnetFilter struct {
	Name            string `json:"name,omitempty"`
	Description     string `json:"description,omitempty"`
	ProjectID       string `json:"projectId,omitempty"`
	IPVersion       int    `json:"ipVersion,omitempty"`
	GatewayIP       string `json:"gateway_ip,omitempty"`
	CIDR            string `json:"cidr,omitempty"`
	IPv6AddressMode string `json:"ipv6AddressMode,omitempty"`
	IPv6RAMode      string `json:"ipv6RaMode,omitempty"`
	ID              string `json:"id,omitempty"`
	Tags            string `json:"tags,omitempty"`
	TagsAny         string `json:"tagsAny,omitempty"`
	NotTags         string `json:"notTags,omitempty"`
	NotTagsAny      string `json:"notTagsAny,omitempty"`
}

func (*SubnetFilter) DeepCopy

func (in *SubnetFilter) DeepCopy() *SubnetFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetFilter.

func (*SubnetFilter) DeepCopyInto

func (in *SubnetFilter) DeepCopyInto(out *SubnetFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SubnetFilter) ToListOpt

func (subnetFilter SubnetFilter) ToListOpt() subnets.ListOpts

type ValueSpec

type ValueSpec struct {
	// 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.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// Key is the key in the key-value pair.
	// +kubebuilder:validation:Required
	Key string `json:"key"`
	// Value is the value in the key-value pair.
	// +kubebuilder:validation:Required
	Value string `json:"value"`
}

ValueSpec represents a single value_spec key-value pair.

func (*ValueSpec) DeepCopy

func (in *ValueSpec) DeepCopy() *ValueSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueSpec.

func (*ValueSpec) DeepCopyInto

func (in *ValueSpec) DeepCopyInto(out *ValueSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL